这应该是一个简单的问题。鉴于此解析器规则:
ifStatement
: expr3b=IF logical (~(THEN)) expression* (ELSE expression *)? ENDIF // missing THEN
;
为什么这与这个字符串不匹配?
"IF CODE=\"10\" DUE_DATE < YESTERDAY ENDIF"
(IF
, THEN
, ELSE
, 和ENDIF
是完全按照您所假设的那样定义的标记。logical
并且expression
是其他规则)。