Tak se zda, ze to co potrebuju se jmenuje Janino (http://www.janino.net). Mrknete na ukazku:

OK, now you are curious... this is how you use the ExpressionEvaluator:

      // Compile the _expression_ once; relatively slow.
      ExpressionEvaluator ee = new ExpressionEvaluator(
          "c > d ? c : d",                     // _expression_
          int.class,                           // expressionType
          new String[] { "c", "d" },           // parameterNames
          new Class[] { int.class, int.class } // parameterTypes
      );

      // Evaluate it with varying parameter values; very fast.
      Integer res = (Integer) ee.evaluate(
          new Object[] {          // parameterValues
              new Integer(10),
              new Integer(11),
          }
      );
      System.out.println("res = " + res);

Compilation of the _expression_ takes 670 microseconds on my machine (2 GHz P4), evaluation 0.35 microseconds (approx. 2000 times faster than compilation).


Tom


Tomas Hubalek napsal(a):
Ahoj,

hledam nejaky interpreter matematickych vyrazu (staci mi jednoduche + - * / plus zavorky). Neco jako:

Interpreter interpreter = Interpreter.compile("(x / y) * 100");

interpreter.setValue("x", 122);
interpreter.setValue("y", 200);

System.out.println(interpreter.eval());

interpreter.setValue("x", 50);
interpreter.setValue("y", 10);

System.out.println(interpreter.eval());

...

Zkousel jsem embedded groovy, ale to je dost pomale (a nebo ho pouzivam spatne ;-)).

Nemate nekdo nejaky tip?

Dik
Tom




Odpovedet emailem