当前位置:  开发笔记 > 编程语言 > 正文

ANTLR v3 C#命名空间

如何解决《ANTLRv3C#命名空间》经验,为你挑选了1个好方法。

希望这是一个非常快的;)我在ANTLR3中编写了一个词法分析器/解析器规范,并且定位于CSharp2目标.生成的代码可以正常工作,但是我无法通过ANTLR将C#输出放入命名空间.

语法文件的相关部分如下:

grammar MyGrammar;

options
{
    language = CSharp2;
    output = AST;
    ASTLabelType = CommonTree;
}

为了生成正确的命名空间,我尝试过:

@namespace { MyNamespace }

@lexer::namespace { MyNamespace }
@parser::namespace { MyNamespace }

但这两个都会产生错误,声称该文件没有规则.

任何帮助表示赞赏.



1> Fionn..:

我将它用于组合词法分析器和解析器(并且它正确地生成命名空间):

grammar Test;

options
{
    language=CSharp2;
}

@lexer::namespace {
    My.Name.Space
}

@parser::namespace {
    My.Name.Space
}


DIGIT   :   '0'..'9';

simple  :    DIGIT EOF;

所以我想知道为什么你的版本不起作用 - 也许你想尝试这个简单的例子,看看它是否适合你.

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有