Почему методы анализатора antlr3 c # закрыты? - PullRequest
14 голосов
/ 20 июня 2011

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

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

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

Спасибо, Энди

1 Ответ

20 голосов
/ 20 июня 2011

Сделайте, по крайней мере, одно правило синтаксического анализатора "общедоступным", например:

grammar T;

options {
  language=CSharp2;
}

public parse
  :  privateRule+ EOF
  ;

privateRule
  :  Token+
  ;

// ...

Затем вы можете вызвать parse() для созданного синтаксического анализатора.

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

...