ネット上の利用可能なパーサーを少し見ていますが、私のカスタム表現に最も適しているものは本当に分かりません。 (ANTLRは私のニーズのためにヘビー級には少しのようだが、それだけで最初の印象です)シンプルなカスタム式パーサー
私はそれがうまく形成されていますことを検証する必要があり、次の式があります。
IF(VAR1> VAR2を、15 ; IF(var3 < = var4; 1; 2)) この式は、条件が真の場合は となり、結果が15の場合はその他の式になります。
私はこれがうまく形成されていることを検証するためにのみ必要はありません(など、ネストされたIFを、第一および第二の分岐はIFキーワードが正しく使用されていることを、常に存在すること、余分な括弧...)
何が問題なのですか? –
SpringのSpELパーサーを使用することができます(**の場合は**の代わりに**演算子を使用する必要があります)http://docs.spring.io/spring/docs/current/spring-framework-reference/html/ expressions.html。これは** ExpressionParser parser = new SpelExpressionParser()と同じくらい簡単です。式exp = parser.parseExpression( "1 + 2 *(2 + 7 *(1 + 5))"); System.out.println(exp.getValue()); **は変数やその他の機能をサポートしています。 –