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 жетоны

Другие вопросы по тегам