[antlr-interest] Token Stream Question

colettekirwan colettekirwan at yahoo.co.uk
Tue Jul 22 09:51:05 PDT 2003


Hi

I was wondering if some could please explain what I am doing wrong.

Using the "Lexical Analysis With Antlr" Lecture Notes, I copied the 
example that explains how to ignore but not throw away whitespaces.

But everytime I run the example I get the following error.
D:\antlrTest>java -classpath D:\antlrTest\antlr.jar;. TestMain < 
test.in
a = 2;
{

      a=3;

}

b=aException in thread "main" line 9:8: unexpected char: 0x?F
        at TestLexer.nextToken(TestLexer.java:148)
        at antlr.TokenStreamHiddenTokenFilter.consume
(TokenStreamHiddenTokenFilt
er.java:38)
        at antlr.TokenStreamHiddenTokenFilter.nextToken
(TokenStreamHiddenTokenFi
lter.java:148)
        at antlr.TokenBuffer.fill(TokenBuffer.java:69)
        at antlr.TokenBuffer.LT(TokenBuffer.java:86)
        at antlr.LLkParser.LT(LLkParser.java:56)
        at TestParser.stat(TestParser.java:121)
        at TestParser.slist(TestParser.java:61)
        at TestMain.main(TestMain.java:25)



I am using the latest version of antlr, and believe I have copied the 
grammar code from the article correctly.

Below is a copy of the grammar code I am using.
class TestParser extends Parser;

{
public void hidden(Token tok) 
{
antlr.CommonHiddenStreamToken t = (antlr.CommonHiddenStreamToken)tok;
for ( ; t!=null ; t=TestMain.filter.getHiddenAfter(t) ) 
  {
  System.out.print(t.getText());
  }
}
}

slist
: ( stat )+
;

stat: l:LBRACE {hidden(l);} (stat)+ r:RBRACE {hidden(r);}
| id:ID {hidden(id);} a:ASSIGN {hidden(a);} expr s:SEMI {hidden(s);}
;

expr: i1:INT {hidden(i1);}
| i2:ID {hidden(i2);}
;

class TestLexer extends Lexer;
options {
charVocabulary='\u0000'..'\uFFFE';
}
WS : (' '
| '\t'
| ('\n'|'\r'('\n')?) {newline();}
)+
;



SL_COMMENT
: "//"
(~('\n'|'\r'))* ('\n'|'\r'('\n')?)
{newline();}
;

LBRACE: '{'
;

RBRACE: '}'
;

LPAREN: '('
;
RPAREN: ')'
;

STAR: '*'
;

PLUS: '+'
;
SEMI: ';'
;

ASSIGN: '='
;

protected
DIGIT
: '0'..'9'
;

INT : (DIGIT)+
;

ID : ('a'..'z')+
;


Any help with the above quesion, one be greatly appreciated.
Also if any one knows the new location to the Description of the 
preserve Whitespace example, that  would be great


Thanks



 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 




More information about the antlr-interest mailing list