GRUN для Antlr4: как пользоваться?
По грамматике:
grammar qwe;
query
: COLUMN OPERATOR value EOF
;
COLUMN
: [a-z_]+
;
OPERATOR
: ('='|'>'|'<')
;
SCALAR
: [a-z_]+
;
value
: SCALAR
;
WS : [ \t\r\n]+ -> skip ;
есть идентичные правила
COLUMN
а также
SCALAR
. Здесь мне посоветовали использовать
grun
псевдонимы.
Я установил его для своего Ubuntu. И для структуры папок:
запустил это из проекта
learning_antlr4
уровень:
grun qwe tokens -tokens < qwe/qwe.tokens
Выход был пуст.
Что я не так? Где то псевдонимы сохраняются?
1 ответ
Решение
Предполагая, что у вас настроен псевдоним grun (если нет, см. QuickStart в верхней части этой страницы https://www.antlr.org):
Вы хотите просмотреть поток токенов, созданный лексером, обрабатывающим ваш ввод (а не ваш
qwe.tokens
файл)
qwe.txt:
total_sales>qwe
ANTLR on master [✘+?]
➜ antlr4 qwe.g4
ANTLR on master [✘+?]
➜ javac *.java
ANTLR on master [✘+?]
➜ grun qwe tokens -tokens < qwe.txt
[@0,0:10='total_sales',<COLUMN>,1:0]
[@1,11:11='>',<OPERATOR>,1:11]
[@2,12:14='qwe',<COLUMN>,1:12]
[@3,15:14='<EOF>',<EOF>,1:15]
КАК вы видите ... оба
total_sales
а также
qwe
признаны как
COLUMN
жетоны