0
Мне нужно разобрать SQL Server если выписки в ANTLR 3. SQL Server, если заявления являются:Можно ли изменить токен-ток во время выполнения?
IF expression BEGIN? statements END?
С НАЧАТЬ и END не являются обязательными. Мне просто нужно добавить BEGIN и END токены в ANTLR поток токенов во время выполнения, если они не указаны в потоке токенов.
Почему бы вам просто не отметить маркеры как необязательные в грамматике? –
Я сделал эти дополнительные, но я получил предупреждения Решение может соответствовать нескольким альтернативам ... На самом деле у меня есть грамматика, которая импортирует другую грамматику, и как-то, если разбор операторов противоречит правилам, написанным в импортированной грамматике. Я пытался выяснить предупреждения через ANTLR, но он показывает массу ошибок NoViableAlt, не запуская тестовые примеры, и не создает синтаксические диаграммы или дерево. – user82504
Синтаксис SQL не является тривиальным для синтаксического анализа, посмотрели ли вы на существующие грамматики, как в http://www.antlr3.org/grammar/list.html? –