2017-07-17 65 views
1

我正在寻找一种方法来添加其他库,我需要在ANTLR4中使用我的代码来达到最终结果,但是我没有找到正确的方法来做到这一点。我怎样才能用ANTLR4导入其他java库?

例如(简单的例子):它分析为“今天”这个词,并打印出日“日期:年月日”

代码就像今天(日期:2017年7月17日),因我必须导入import java.util.*;

grammar Exp; the_day: 'today'; WS : (' ' | '\t' | '\n' | '\r') -> skip;

有没有办法从文件.g4直接做到这一点?或者我必须以另一种方式来做到这一点? 和谢谢

回答

1

你可以通过在词法分析器或分析器头中注入一些代码片段(取决于你需要导入语句的位置)来实现。

这是通过在文法开始处的@lexer::header{...}@parser::header{...}代码块完成的。
所以,如果你想你的库导入解析器类,你只需要在你的语法顶部添加下面的代码片段:

@parser::header { 
    import java.util.*; 
}