Проблема с грамматикой ANTLR4 (не совсем разбор)C#

Место общения программистов C#
Ответить
Anonymous
 Проблема с грамматикой ANTLR4 (не совсем разбор)

Сообщение Anonymous »

Я новичок в ANTLR, и я пытаюсь заставить эту грамматику работать: < /p>

Код: Выделить всё

grammar TemplateGrammar;

//Parser Rules

start
: block
| statement
| expression
| parExpression
| primary
;

block
: LBRACE statement* RBRACE
;

statement
: block
| IF parExpression statement (ELSE statement)?
| expression
;

parExpression
: LPAREN expression RPAREN
;

expression
: primary #PRIMARY
| number op=('*'|'/') number            #MULDIV
| number op=('+'|'-') number            #ADDSUB
| number op=('>='|''|' skip ;
When I put "Test" in the input, it is working and returning the String "Test".
Here is what I get in the IParseTree when I put "Test" in the input:

"(start (statement (expression (primary (literal (string " Test "))))))"

Но когда я помещаю [test] (что почти так же, как и "test" , но с брекетами вместо цитат), анализатор не распознает токен ...

"(start [test])"

То же с числами, он хорошо распознает одинокие числа, такие как 1 , 123 , 12.5 и т. Д., Но не выражают 1+2 ...
. ColumnNames Правило, но хорошо ли работает с правилом string ?

Подробнее здесь: https://stackoverflow.com/questions/356 ... ly-parsing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»