从鹿角3到鹿角4的转换

  • 本文关键字:转换 antlr4 antlr3 natty
  • 更新时间 :
  • 英文 :


作为一个新手,我在语法谓词方面有很多问题。我一直试图转换这个语法,它是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?)
  ;`

语法谓词和重写规则在ANTLR4中不再受支持。ANTLR4的解析算法应该足够强大,不需要语法谓词,如果您想遍历解析树,请查看这些链接:

  • ANTLR4访问者模式的简单算术示例
  • https://github.com/antlr/antlr4/blob/master/doc/tree-matching.md

所以,你发布的规则在ANTLR4中看起来像这样:

date_time
 : date ( date_time_separator explicit_time )?
 | explicit_time ( time_date_separator date )?
 | relative_time
 ;

相关内容

  • 没有找到相关文章

最新更新