Search code examples
antlrantlr3antlrv3ide

cannot debug simple channel flag in ANTLR with Eclipse


I following the antlr tutorial and write exactly same code as tutorial says .but when I try to add

$channel = HIDDEN;

it keep give me error like

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@[])

under the red error bar of '$channel' ,and

(100): syntax error: antlr: MissingTokenException(inserted [@-1,0:0='<missing EOF>',<-1>,22:58] 
 at ))

under the red error bar of ';'

this is the code:

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;); 

and this is the error message when I try to save it

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

thank you.


Solution

  • solved just now .. I need use '{}' instead of '()' sorry for this simple question