设计之初就想过这个问题,应该怎么处理语法解释。
是否应基于一个语法引擎,如:JavaCC,ANTLR等。
但觉得MeteorTL( [url]http://www.meteortl.org/[/url] )的语法较统一,
比较简单,所以自已实现了DFA自动机解析。
其中,MeteorTL的指令是独特的DSL,
而指令中的表达式则是基于通用MathDSL扩展的。
JavaCC和ANTLR都算是EBNF-AST语法体系定义的经典实现。
Velocity和FreeMarker都使用JavaCC作为语法解释器
Hibernate则使用ANTLR作为HQL的语法解释器
-------------
准备留出策略接口,用自己的DFA作为默认实现。
是否应基于一个语法引擎,如:JavaCC,ANTLR等。
但觉得MeteorTL( [url]http://www.meteortl.org/[/url] )的语法较统一,
比较简单,所以自已实现了DFA自动机解析。
其中,MeteorTL的指令是独特的DSL,
而指令中的表达式则是基于通用MathDSL扩展的。
JavaCC和ANTLR都算是EBNF-AST语法体系定义的经典实现。
Velocity和FreeMarker都使用JavaCC作为语法解释器
Hibernate则使用ANTLR作为HQL的语法解释器
-------------
准备留出策略接口,用自己的DFA作为默认实现。