Hello,
I'm new on this mailing list, so be nice :)
I'm toying with a Java-like language for fun, and I'm having a problem with
ANTLR crashing when trying to use it.
Consider the following grammar:
grammar test;
ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*
;
INT : '0'..'9'+
;
NEWLINE : '\r'? '\n';
class_decl
: 'class' name '{' NEWLINE* method* '}';
method : type name '(' formalArgs? ')' NEWLINE* '{' NEWLINE+ stmt* '}'
NEWLINE* ;
formalArgs
: type name (',' type name)*;
type : ID NEWLINE*;
name : ID NEWLINE*;
stmt : variable_decl ';' NEWLINE* | method_call ';' NEWLINE*;
assignment
: name '=' expression;
variable_decl
: type name '=' expression;
creation
: 'new' name '(' arglist? ')' NEWLINE*;
method_call
: recievers name '(' arglist? ')' NEWLINE*;
arglist : expression (',' expression)*;
recievers
: (name '.')* | '(' creation ')' '.' (name '.')* ;
expression
: method_call | creation | name;
This works perfectly, and as expected!
However, change the stmt rule to:
stmt : variable_decl ';' NEWLINE* | method_call ';' NEWLINE* |
assignment ';' NEWLINE*;
And suddenly ANTLR says:
[14:14:32] error(10): internal error: Exception test.g:19:64: unexpected char:
[email protected](ANTLRLexer.java:347): unexpected
stream error from parsing test.g
[14:14:32] error(150): grammar file test.g has no rules
[14:14:32] error(100): test.g:0:0: syntax error: assign.types: <AST>:0:0:
unexpected end of subtree
[14:14:32] error(100): test.g:0:0: syntax error: define: <AST>:0:0: unexpected
end of subtree
I'm having a hard time figuring out why... Any tips? I mean - had the grammar
become ambiguous or something, I'd understand - but this looks like ANTLR is
crashing?
I'm using ANTLRworks 1.3.1.
Regards,
Søren
List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe:
http://www.antlr.org/mailman/options/antlr-interest/your-email-address
--
You received this message because you are subscribed to the Google Groups
"il-antlr-interest" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/il-antlr-interest?hl=en.