Почему методы parser antlr3 С# являются частными?

Я создаю парсер в antlr, который компилируется в рабочую Java-цель. Когда я переназначаю для С# 2, он производит парсер, в котором все методы анализа являются закрытыми, но помечены атрибутом [GrammarRule ( "имя_памяти" )].

Каковы утвержденные средства для фактического вызова парсера?

Я использую ANTLR 3.3 30 ноя 2010 12:45:30

Спасибо, Andy

Ответы

Ответ 1

Сделайте хотя бы одно правило парсера "общедоступным" следующим образом:

grammar T;

options {
  language=CSharp2;
}

public parse
  :  privateRule+ EOF
  ;

privateRule
  :  Token+
  ;

// ...

Затем вы можете вызвать parse() в сгенерированном парсере.

protected и private (по умолчанию, если ничего не указано) также поддерживаются.