У меня возникла проблема при анализе некоторой команды с синтаксическим анализатором, который я реализовал с использованием ANLTR3. Parser не выполняет синтаксический анализ тех команд, которые содержат «любое слово», которое объявлено как правило lexer в грамматике. Для примера рассмотрим следующую грамматику:Не удалось проанализировать команду с использованием грамматики ANTLR3, если команда имеет то же слово, которое объявлено как правило
show :
SHOW TABLES '[' projectName? tableName']' -> ^(SHOW TABLES_ ^(PROJECT_NAME projectName)? ^(DATASET_TABLE tableName));
SHOW : S H O W;
Если я пытаюсь разобрать команду «SHOW TABLES [образец-проекта: SHOW]», а затем синтаксический анализ терпит неудачу для этого command.But, если я изменю SHOW слово, то это работает , SHOW TABLES [образец-проект: SHOW] - это работает.
Я не хочу, чтобы получить имя в виде строки, которая окружена в кавычки ("). Может кто-нибудь предложить решение? Я использую ANTLR3.
Спасибо заранее.