我需要构建一个自定义规则构建器,并且我想知道如果我能弄清楚语法,ANTLR4是否是构建解析器的合适选择。我想,语法类似于SQL WHERE子句。
我们的API需要接受并向UI返回某种紧凑的表达式(我现在称之为有线格式):
"(&(day-of-week='Monday")(|(manufacturer='Honda')(manufacturer='BMW')))"
UI应该能够将这个紧凑的表达式转换为一些类似于表达式的数据结构,可以从中构建UI,例如:
and
left
day-of-week
equals
Monday
right
or
left
manufacturer
equals
honda
right
manufacturer
equals
BMW
反之亦然 - 我应该能够采用这种结构并将其转换为紧凑形式,以便将其交回API。
我知道ANTLR可以在JavaScript和C#中生成解析器,因此ANTLR能够生成一个JavaScript解析器,它可以采用有线格式表达式并创建一个JavaScript表达式树,并且还可以采用有线格式并生成一个C#表达树?