Не может отладить простой флаг канала в ANTLR с Eclipse
Я следую учебному пособию по antlr и пишу точно такой же код, как в учебном пособии. Но когда я пытаюсь добавить
$channel = HIDDEN;
это продолжает давать мне ошибку, как
Multiple markers:
-(100): syntax error: antlr: MissingTokenException(inserted [@-1,0:0='<missing RPAREN>',<69>,22:41]
at channel)
-(100): syntax error: antlr: NoViableAltException(86@[])
-(100): syntax error: antlr: NoViableAltException(75@[])
под красной полосой ошибок '$ channel' и
(100): syntax error: antlr: MissingTokenException(inserted [@-1,0:0='<missing EOF>',<-1>,22:58]
at ))
под красной строкой ошибки ';'
это код:
grammar Sample;
options {
language = Java;
}
@header {
package a.b.c;
}
@lexer::header {
package a.b.c;
}
programe
: 'program' IDENT '='
'begin'
'end' IDENT '.'
;
IDENT:'a'..'z'+;
WS : (' '| 't' | '\n' | '\r' | 'f' )+ ($channel = HIDDEN;);
и это сообщение об ошибке, когда я пытаюсь сохранить его
error(100): /ANTLR 3.x Tutorial/src/sample/Sample.g:22:40: syntax error: antlr: NoViableAltException(86@[])
|---> WS : (' '| 't' | '\n' | '\r' | 'f' )+ ($channel = HIDDEN;);
error(100): /ANTLR 3.x Tutorial/src/sample/Sample.g:22:41: syntax error: antlr: NoViableAltException(75@[])
|---> WS : (' '| 't' | '\n' | '\r' | 'f' )+ ($channel = HIDDEN;);
error(100): /ANTLR 3.x Tutorial/src/sample/Sample.g:22:41: syntax error: antlr: MissingTokenException(inserted [@-1,0:0='<missing RPAREN>',<69>,22:40] at channel)
|---> WS : (' '| 't' | '\n' | '\r' | 'f' )+ ($channel = HIDDEN;);
error(100): /ANTLR 3.x Tutorial/src/sample/Sample.g:22:58: syntax error: antlr: MissingTokenException(inserted [@-1,0:0='<missing EOF>',<-1>,22:57] at ))
|---> WS : (' '| 't' | '\n' | '\r' | 'f' )+ ($channel = HIDDEN;);
error(10): internal error: /ANTLR 3.x Tutorial/src/sample/Sample.g : java.lang.IllegalStateException: java.lang.NullPointerException
org.deved.antlride.runtime.AntlrErrorListener$DynamicToken.invokeMethod(AntlrErrorListener.java:59)
org.deved.antlride.runtime.AntlrErrorListener$DynamicToken.getLine(AntlrErrorListener.java:64)
org.deved.antlride.runtime.AntlrErrorListener.report(AntlrErrorListener.java:131)
org.deved.antlride.runtime.AntlrErrorListener.message(AntlrErrorListener.java:113)
org.deved.antlride.runtime.AntlrErrorListener.error(AntlrErrorListener.java:103)
org.antlr.tool.ErrorManager.syntaxError(ErrorManager.java:768)
org.antlr.grammar.v3.AssignTokenTypesWalker.reportError(AssignTokenTypesWalker.java:208)
org.antlr.grammar.v3.AssignTokenTypesWalker.block(AssignTokenTypesWalker.java:2419)
org.antlr.grammar.v3.AssignTokenTypesWalker.ebnf(AssignTokenTypesWalker.java:3439)
org.antlr.grammar.v3.AssignTokenTypesWalker.element(AssignTokenTypesWalker.java:3166)
org.antlr.grammar.v3.AssignTokenTypesWalker.alternative(AssignTokenTypesWalker.java:2483)
org.antlr.grammar.v3.AssignTokenTypesWalker.block(AssignTokenTypesWalker.java:2389)
org.antlr.grammar.v3.AssignTokenTypesWalker.ruleBody(AssignTokenTypesWalker.java:1947)
org.antlr.grammar.v3.AssignTokenTypesWalker.rule(AssignTokenTypesWalker.java:1569)
org.antlr.grammar.v3.AssignTokenTypesWalker.rules(AssignTokenTypesWalker.java:1505)
org.antlr.grammar.v3.AssignTokenTypesWalker.grammarSpec(AssignTokenTypesWalker.java:713)
org.antlr.grammar.v3.AssignTokenTypesWalker.grammar_(AssignTokenTypesWalker.java:383)
org.antlr.tool.CompositeGrammar.assignTokenTypes(CompositeGrammar.java:337)
org.antlr.Tool.process(Tool.java:462)
org.deved.antlride.runtime.Tool2.main(Tool2.java:24)
5 errors
BUILD FAIL
Total time: 879 milliseconds
благодарю вас.
1 ответ
Решение
Решено только сейчас.. Мне нужно использовать '{}' вместо '()' извините за этот простой вопрос