Tag: antlrworks

“FOLLOW_set_in_”…在生成的解析器中未定义

我已经为类似Java的DSL编写了一个语法。 虽然它仍然存在一些问题(它不能像我希望的那样识别所有输入),但最让我担心的是生成的C代码是不可编译的。 我使用AntlrWorks 1.5和Antlr 3.5(Antlr 4显然不支持C目标)。 问题在于表达规则。 我有规则prio14Expression到prio0Expression,它处理运算符优先级。 问题是优先级2,它评估前缀和后缀运算符: … prio3Expression: prio2Expression ((‘*’ | ‘/’ | ‘%’) prio2Expression)*; prio2Expression: (‘++’ | ‘–‘ | ‘!’ | ‘+’ | ‘-‘)* prio1Expression (‘++’ | ‘–‘)*; prio1Expression: prio0Expression ( (‘.’ prio0Expression) | (‘(‘ (expression (‘,’ expression)*)? ‘)’) | (‘[‘ expression (‘,’ expression)* ‘]’) )*; prio0Expression: /*(‘(‘) => */(‘(‘ expression […]