Я новичок в XText, и я пытаюсь создать простой DSL для железнодорожных систем, вот моя грамматика:XText грамматик: несовпадающий вход «0» ожидая RULE_INT
grammar org.xtext.railway.RailWay with org.eclipse.xtext.common.Terminals
generate railWay "http://www.xtext.org/railway/RailWay"
Model:
(trains+=Train)*
| (paths+=Path)*
| (sections+=Section)*
;
Train:
'Train' name=ID ':'
'Path' path=[Path]
'Speed' speed=INT
'end'
;
Path:
'Path' name=ID ':'
'Sections' ('{' sections+=[Section] (',' sections+=[Section])+ '}') | sections+=[Section]
'end'
;
Section:
'Section' name=ID ':'
'Start' start=INT
'End' end=INT
('SpeedMax' speedMax=INT)?
'end'
;
Но когда я ставлю этот код в экземпляре Eclipse:
Section brestStBrieux :
Start 0
End 5
end
Section StBrieuxLeMan :
Start 5
End 10
end
Section leManParis :
Start 1
End 12
end
Path brestParis :
Sections { brestStBrieux, StBrieuxLeMan, leManParis}
end
Train tgv :
Path brestParis
Speed 23
end
Я получил эту ошибку трижды:
несоответствующие ввода '0' ожидая RULE_INT несоответствующего вход '1' ожидая RULE_INT Неисправный вход «5» ожидается RULE_INT
Я не вижу, откуда берутся эти ошибки, что я могу сделать, чтобы исправить их. Есть идеи?
Вы уверены, что вы вывесили все соответствующие части грамматика? уверен, что у вас нет каких-либо ключевых слов или правил терминалов, которые перекрываются с правилом терминала INT? –
У меня есть это правило терминала, но я еще не использовал его: terminal FLOAT: '-'? INT ('.' INT) ?; – mouuu