ANTLR@members和lexer
我对ANTLR中的@members规则有问题。我希望覆盖默认错误处理,因此我阅读并编写了以下语法的简单代码:ANTLR@members和lexer,antlr,Antlr,我对ANTLR中的@members规则有问题。我希望覆盖默认错误处理,因此我阅读并编写了以下语法的简单代码: @members { def displayRecognitionError(self, tokenNames, e): print 'Test' } 我的语法中没有@lexer::members或@parser::members。此规则中的代码(python运行时)仅包含在解析器文件中,而不包含在lexer中。是虫子吗?我认为,@members应该根据文档向-lex
@members {
def displayRecognitionError(self, tokenNames, e):
print 'Test'
}
我的语法中没有@lexer::members或@parser::members。此规则中的代码(python运行时)仅包含在解析器文件中,而不包含在lexer中。是虫子吗?我认为,@members应该根据文档向-lexer和parser添加内容。我使用Python运行时,3.1.3
顺便说一句,stackoverflow内联代码是否适用于Opera?在组合语法文件中,
@members
是@parser::members
的缩写
// combined grammar
grammar Foo;
@members {
// only parser members here, equivalent to: @parser::members { ... }
}
@lexer::members {
// lexer members
}
当您使用单独的lexer和/或parser语法时,@members
就足够了:
parser grammar Foo;
@members {
// parser members
}
或
加尔米写道:
顺便问一下,stackoverflow内联代码是否适用于Opera
我想是的,但是关于so本身的问题可以继续问下去
lexer grammar Foo;
@members {
// lexer members
}