希望这是一个非常快的;)我在ANTLR3中编写了一个词法分析器/解析器规范,并且定位于CSharp2目标.生成的代码可以正常工作,但是我无法通过ANTLR将C#输出放入命名空间.
语法文件的相关部分如下:
grammar MyGrammar; options { language = CSharp2; output = AST; ASTLabelType = CommonTree; }
为了生成正确的命名空间,我尝试过:
@namespace { MyNamespace }
和
@lexer::namespace { MyNamespace } @parser::namespace { MyNamespace }
但这两个都会产生错误,声称该文件没有规则.
任何帮助表示赞赏.
我将它用于组合词法分析器和解析器(并且它正确地生成命名空间):
grammar Test; options { language=CSharp2; } @lexer::namespace { My.Name.Space } @parser::namespace { My.Name.Space } DIGIT : '0'..'9'; simple : DIGIT EOF;
所以我想知道为什么你的版本不起作用 - 也许你想尝试这个简单的例子,看看它是否适合你.