Почему методы 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
(по умолчанию, если ничего не указано) также поддерживаются.