Antlr生成破坏的C#代码,在声明中缺少变量名称

时间:2012-03-22 16:20:45

标签: antlr antlr3

我有模板语言的语法。

我为Antlr 3.2和CSharp2目标创建了这个并让它工作。

现在我尝试更改为antlr 3.4和CSharp3目标(也尝试过CSharp2)并且在synpred函数中的Parser中出现了一个奇怪的错误。

多个变量声明缺少变量名称:

IToken  = default(IToken)

有些人也有错误的类型

void  = default(void);

应该是

AstParserRuleReturnScope<CommonTree, IToken>  = default(AstParserRuleReturnScope<CommonTree, IToken>);

之前有任何人看过这个,以及可能导致这种情况的原因。

语法和以前一样。

不幸的是我无法分享语法,而且我没有时间创建导致相同错误的测试语法。

我当然可以手动修复错误并且代码可以正常工作,但是在修复它们之后必须通过代码会有点麻烦。

1 个答案:

答案 0 :(得分:1)

我能够通过使用ANTLR代码生成工具(Antlr3.exe)的native .NET version而不是Java版本来解决此问题。具体来说,antlr-dotnet-tool-3.4.1.9004.7z对我有用,而antlr-3.4-complete-no-antlrv2.jar却没有。