尽管有必要,Antlr4外部输入?

时间:2016-07-15 02:52:41

标签: grammar antlr4

我是编写Antlr语法的新手,我遇到了一些麻烦。我已将问题简化为以下内容:

这是我的语法:

grammar Test;

prog    :   stmt*       ;
stmt    :   INT NEWLINE ;

INT     :   [0-9]+      ;
NEWLINE :   '\r'? '\n'  ;

我的input.txt只是0\r\n(不是文字'\','r','\','n',而是ASCII码0x0D 0x0A

我收到以下错误:

line 1:1 extraneous input '\r\n' expecting {<EOF>, INT}

如果INT规则要求NEWLINE后跟stmt,那么为什么没有首先匹配INT的其他NEWLINE

如果它是相关的,我正在使用PyCharm和Antlr4插件来进行语法生成。

1 个答案:

答案 0 :(得分:0)

事实证明,这个问题与Python在运行导入已更改模块的模块时的奇怪行为有关(提示:它们不会按原样自动重新加载)。解决方案是在更改语法时简单地重新启动解释器。

对不起,原来的问题没有足够的信息让其他人知道答案。