Duelo { Definir total_vida=vida+resistencia; vida=total_vida-daño; }
lo que logre convertir a java con mi parseador
public nodo_personaje duelo(nodo_personaje primero,nodo_personaje segundo)
{ int total_vida; primero.vida=total_vida-segundo.daño; return primero; }
de CreateFastScriptEvaluator que está en la documentación de janino, áca esta el ejemplo:
Foo f = (Foo) ScriptEvaluator.createFastScriptEvaluator(
new Scanner(null, new StringReader("return a + b;")),
Foo.class,
new String[] { "a", "b" },
(ClassLoader) null
);
System.out.println("1 + 2 = " + f.bar(1, 2));
nodo es esta clase:
public class nodo { public String cadena="";
public nodo() { }
}
La interface la deje asi
public interface fox { nodo bar(nodo a,nodo b); }
Y para ejecutar:
nodo un_nodo=new nodo(); nodo dos_nodo=new nodo();
un_nodo.cadena="beta"; dos_nodo.cadena="gama";
fox fx = (fox) ScriptEvaluator.createFastScriptEvaluator(
new Scanner(null, new StringReader(""+this.jTextField1.getText())),
fox.class,
new String[] { "a", "b" },
(ClassLoader) null // Use current thread's context class loader );
System.out.println("" + fx.bar(un_nodo,dos_nodo).cadena); //ejecutando
NOTA: ahi puse un jTextField para meter código de java, puse en jtextfield:
a.cadena=a.cadena+"$"+b.cadena; return a; y me ejecuto esa línea y dieron los resultado, de ahí varié el JtextField con if, con else while y funcióno, la verdad me sorprendí que cuando meti otro código, me lo ejecuto a la perfección(siempre y cuando metan código de java correctamente).
hasta llegar a ser ....