La réponse était une publication sur le forum de Jeks. J'ai une réponse de Manu. Je pensais que ce n'était pas actif d'autant plus que je ne pouvais pas m'enregistrer dessus - mais ça s'est arrangé.
Mais si quelqu'un a le même problème, les lignes de code suivantes faire fonctionner:
ExpressionParser parser; // we did have = new ExpressionParser(new JeksExpressionSyntax(), null);
JeksInterpreter interpreter; //
Et pour créer l'interprète:
interpreter = new JeksInterpreter() {
@Override
public Object getBinaryOperatorValue (Object binaryOperatorKey, Object param1, Object param2)
{
// Only functions may take a cell set as parameter
if (param1 instanceof JeksCellSet || param2 instanceof JeksCellSet)
throw new IllegalArgumentException();
// Enabled comparison between any type supported by Jeks
else if (binaryOperatorKey.equals (JeksExpressionSyntax.OPERATOR_EQUAL))
return param1 != null && param1.equals (param2)
? Boolean.TRUE : Boolean.FALSE;
// Enabled comparison between any type supported by Jeks
else if (binaryOperatorKey.equals (JeksExpressionSyntax.OPERATOR_DIFFERENT))
return param1 != null && param1.equals (param2) ? Boolean.FALSE : Boolean.TRUE;
else
return super.getBinaryOperatorValue (binaryOperatorKey, param1, param2);
}
};
parser = new ExpressionParser(new JeksExpressionSyntax(), null);
Ce n'est pas à distance du code Java syntaxiquement correct. Est-ce intentionnel? –
Je suppose que c'est. Il est à la recherche d'un évaluateur Java pour un langage non Java (expressions chaînes et mathématiques). –
Jetez un oeil à JEKS: http://www.eteks.com/jeks/en/ –