[antlr-interest] ANTLRWorks interpreter vs debugger
    Filipe David Manana 
    fdmanana at ieee.org
       
    Mon Feb 23 14:22:21 PST 2009
    
    
  
Hello,
I've just started learning and playing with ANTLR.
I am writing a subset of the JavaScript grammar (as the examples at
antlr.org don't work for me).
In ANTLRWorks, when I use the interpreter, the second rule generates two
errors with messages:
first node -> "FailedPredicateException(sourceElements, {can't deal with
predicates yet}?)"
second node -> "FailedPredicateException(sourceElements,
{synpred3_JavaScript}?)"
(parse tree with the error nodes can be found in the attachment)
However, if I use the debugger, the parsing is successful.
Why is this so?
My grammar is the following (also in attachment):
grammar JavaScript;
options {
    backtrack=true;
    memoize=true;
}
program
    : sourceElements EOF
    ;
sourceElements
    : LT* ( sourceElement LT* )*
    ;
sourceElement
    : functionDeclaration
    | statement
    ;
functionDeclaration
    : 'function' LT* Identifier LT* formalParameterList LT* functionBody
    ;
formalParameterList
    : '(' LT* ( Identifier ( LT* ',' LT* Identifier )* )? LT* ')'
    ;
functionBody
    : '{' sourceElements '}'
    ;
statement
    : emptyStatement
    | blockStatement
    ;
emptyStatement
    : ';'
    ;
blockStatement
    : '{' LT* statementList? LT* '}'
    ;
statementList
    : statement ( LT* statement )*
    ;
Identifier
    : IdentifierStart IdentifierPart*
    ;
fragment IdentifierStart
    : UnicodeLetter
    | '$'
    | '_'
        ;
fragment IdentifierPart
    : IdentifierStart
    | UnicodeDigit
    ;
fragment UnicodeLetter
    : 'a'..'z' | 'A'..'Z'
    ;
fragment UnicodeDigit
    : '0'..'9'
    ;
LT
    : '\n' | '\r'
    ;
MultilineComment
    : '/*' (options { greedy=false; } : .)* '*/' { $channel=HIDDEN; }
    ;
LineComment
    : '//' ~(LT)* { $channel=HIDDEN; }
    ;
WhiteSpace
    :  ( ' ' | '\t' | '\v' | '\f' )  { $channel=HIDDEN; }
    ;
Thank you,
regards
-- 
Filipe David Manana,
fdmanana at ieee.org
PGP key - http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xC569452B
"Reasonable men adapt themselves to the world.
Unreasonable men adapt the world to themselves.
That's why all progress depends on unreasonable men."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20090223/80258da6/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: JavaScript.g
Type: application/octet-stream
Size: 1188 bytes
Desc: not available
Url : http://www.antlr.org/pipermail/antlr-interest/attachments/20090223/80258da6/attachment.obj 
    
    
More information about the antlr-interest
mailing list