@plugin "../plugin.so" (SAbrFunctions). @define ANY -3000000. Object : Teoria (aka Teorias) { + variables: ptr (pointer). + to init named name (string) with-action action (string) executed k = 1 (int) succeeded p = 1 (int): ptr = TeoriaNew(name, action, k, p). + to set-dato-inicial name theName (string) value theValue (float): TeoriaSetDatoInicial(ptr, theName, theValue). + to set-dato-final name theName (string) value theValue (float): TeoriaSetDatoFinal(ptr, theName, theValue). + to get-nombre: return TeoriaGetNombre(ptr). + to get-accion: return TeoriaGetAccion(ptr). - to get-ptr: return ptr. - to set-ptr ptr p (pointer): ptr = p. } Object : SistemaAutonomo { + variables: ptr (pointer). + to init with-max-pasos max-pasos = 4 (int) with-max-teorias max-teorias = 15 (int): ptr = SistemaAutonomoNew(max-pasos, max-teorias). + to add teoria theTeoria (object): SistemaAutonomoAddTeoria(ptr, (theTeoria get-ptr)). + to set-entorno value theValue (float) with-name theName (string): SistemaAutonomoSetValue(ptr, theName, theValue). + to set-dato-final value theValue (float) with-name theName (string): SistemaAutonomoSetDatoFinal(ptr, theName, theValue). + to update-entorno with entorno (hash): nombre (string). foreach nombre in keys(entorno): { self set-entorno value entorno{nombre} with-name nombre. } + to update-datos-finales with datos-finales (hash): nombre (string). foreach nombre in keys(datos-finales): { self set-dato-final value datos-finales{nombre} with-name nombre. } + to plan: SistemaAutonomoPlan(ptr). + to has-next-theory: return SistemaAutonomoHasNextTheory(ptr). + to get-next-theory: t (object). t = new Teoria. t set-ptr ptr SistemaAutonomoGetNextTheory(ptr). return t. + to validate theory theTheory (object): return SistemaAutonomoValidateTheory(ptr, (theTheory get-ptr)). + to destroy: SistemaAutonomoDelete(ptr). }