[antlr-interest] (unknown)

javadesigner javadesigner at yahoo.com
Fri Apr 30 22:50:35 PDT 2004


I am trying to extend the introduction to antlr example
by lexing 'hello world' (note the space)

-------- from the antlr docs-----------
class P extends Parser;
startRule
    :   n:NAME
        {System.out.println("Hi there, "+n.getText());}
    ;

class L extends Lexer;
// one-or-more letters followed by a newline
NAME:   ('a'..'z' | 'A'..'Z' | ' ')+ NEWLINE
    ;
NEWLINE
    :   '\r' '\n'   // DOS
    |   '\n'        // UNIX
    ;
-----------------------------------------

The only change I made was added the ' ' after 'A' ..'Z'
After compiling the above and running the test
program (the test program is also from the antlr docs and
is shown at the end for completeness), I get:

---------------------------------------------
root at turing:~/parsing/test# java test
foo
Hi there, foo

NOTE THE ERROR BELOW>>>>>

root at turing:~/parsing/test# java test
foo bar
exception: line 1:4: unexpected char: ' '
-------------------------------------------

Can anyone explain what is going on and why
I get an unexpected char message ? I even tried:

NAME:   ('a'..'z' | 'A'..'Z' | '9')+ NEWLINE

and after recompiling:
root at turing:~/parsing/test# java test
foo9bar
exception: line 1:4: unexpected char: '9'

Help ! This shouldn't be that hard should it ?

Best regards,

--j

------------ test program -------------------
import java.io.*;
class test {
    public static void main(String[] args) {
        try {
            L lexer = new L(new DataInputStream(System.in));
            P parser = new P(lexer);
            parser.startRule();
        } catch(Exception e) {
            System.err.println("exception: "+e);
        }
    }
}




 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
     http://groups.yahoo.com/group/antlr-interest/

<*> To unsubscribe from this group, send an email to:
     antlr-interest-unsubscribe at yahoogroups.com

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



More information about the antlr-interest mailing list