我有一张包含许多属性的地图,例如" a"," b"," c" ...
我想定义一个模板,我可以在其中评估表达式,例如
"" &安培;&安培; " B" &安培;&安培; !" C"表示以下内容,
如果
,则为true"a" is in the map, "b" is in the map but "c" is not in the map
否则为
有什么办法在Java中实现这个? JUEL有帮助吗?
编辑:
为了清楚起见,我需要创建一种可配置的语言,您可以在配置文件中定义需要在运行时进行评估的任何类型的表达式。
例如我需要我的java代码来解析一个可能包含任何表达式的文件,例如
"" &安培;&安培; " B"
!(" a"&&" d")
我不知道在编译时需要评估哪些表达式。希望这使得要求更加清晰。
答案 0 :(得分:0)
有什么办法在Java中实现这个?
我会使用像Javacc或Antlr这样的东西:
你将有一个学习曲线,但这应该是一个非常简单/无问题的语法来实现。
JUEL有帮助吗?
可能不是。首先,任何基于JUEL的东西都会接受完整的EL语法。
答案 1 :(得分:0)
基本技术是递归下降,Dijkstra分流码算法,或通过许多系统中的任何一个生成解析器。如果你只需要处理括号,'不','和',以及'或',我自己就不会超越递归下降。