Как я управляю дополнительным пробелом в ANTLR?

Я столкнулся с той же проблемой, и в моем случае у меня был файл, открытый в Visual Studio. Закрытие всех файлов помогло.

8
задан peter.murray.rust 31 October 2009 в 15:19
поделиться

3 ответа

Мне удалось заставить это работать, используя конструкции лексера, такие как:

WS  :   (' ')+ {skip();};

WSOPT   :       (' ')* {skip();};

, но не в NEWLINE. Затем в конструкциях синтаксического анализатора, таких как:

num1 num2 NEWLINE;

Ключом было удалить все WS в лексере, кроме NEWLINE.

1
ответ дан 5 December 2019 в 12:59
поделиться

Проверьте Лексический анализ с помощью ANTLR , а затем найдите часть, которая начинается с этого заголовка

Игнорирование пробелов в лексере

Вам необходимо использовать {игнорировать = WS; } правило

2
ответ дан 5 December 2019 в 12:59
поделиться
WS : (' ' | '\t')+
     {$channel = HIDDEN;}
   ;
10
ответ дан 5 December 2019 в 12:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: