因为我是 antlr 的新手,所以我在语法谓词方面有很多问题。我一直在尝试转换这个语法,它是 natty 语法的一部分,以便用 antlr4 解析它,我真的很困惑如何以有意义的方式改变它。
date_time
: (
(date)=>date (date_time_separator explicit_time)?
| explicit_time (time_date_separator date)?
) -> ^(DATE_TIME date? explicit_time?)
| relative_time -> ^(DATE_TIME relative_time?)
;`