为什么antlr3 c#解析器方法是私有的?

时间:2011-06-20 12:59:25

标签: c# antlr antlr3

我正在构建一个antlr中的解析器,它可以编译成一个可用的java目标。当我重新定位c#2时,它产生一个解析器,其中所有的解析方法都是私有的,但标有[GrammarRule(“rulename”)]属性。

实际调用解析器的批准方法是什么?

我正在使用ANTLR 3.3 2010年11月30日12:45:30

谢谢, 安迪

1 个答案:

答案 0 :(得分:20)

将至少一个解析器规则设为“public”,如下所示:

grammar T;

options {
  language=CSharp2;
}

public parse
  :  privateRule+ EOF
  ;

privateRule
  :  Token+
  ;

// ...

然后,您可以在生成的解析器上调用parse()

protectedprivate(默认情况下,如果未指定任何内容)也受支持。