[ANTLR] простые вопросы ...
От: puremind  
Дата: 29.09.09 09:16
Оценка:
Понимаю, что нужно курить мануалы, но время ...
Посему, буду благодарен тому кто просветит ...

Вот кусок грамматики который имеет отношение к проблеме ...

...

FORMAT_TAG :
'Integer' | 'Length' | .. и т.д.
;

DIGIT : '0'..'9' ;
ALPHA : ('a'..'z'|'A'..'Z') ;
DASH : '_' ;

number : DIGIT+
;

name : (ALPHA | DASH) (ALPHA | DIGIT | DASH) *
;

field :
number '=' name ':' FORMAT_TAG
{
//семантика какая то
}
;


и т.д ...


Суть проблемы заключается в том что я имею странные ошибки лексера ...

fix.5.0.efix(23) : lexer error 1 :
Unexpected character at offset 13, near 's' :
st : Integer,

19 =


-------
16 = EndSeqNo : Integer,
17 = ExecID : Integer,
18 = ExecInst : Integer, << Oшибка возникает здесь
19 = ExecRefID : Integer,
-------

Очевидно что после того как он видит Exec{In ...дальще он пытается читать Integer, а не дочитывать ExecInst ...
Что собственно подтверждается тем, что замена ключевого слова с Integer на @Integer исправляет ситуацию ...
В общем, можно было бы этим и ограничиться но
1. Интересно понять почему происходит и как чинить ..
2. Ключевых слов еще достаточно и не хочется каждое ключевого слово начинать со специального символа ...
3. В планах есть желание продолжить работу с ANTLR и подобная проблема возникнет вновь ...

версия ANTLR 3.2 ...

Есть у кого нибудь ответ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.