[antlr-interest] Re: Nondeterministically blind

Edward Povazan epovazan at telus.net
Sat Dec 8 18:54:39 PST 2001


Ok, I seem to be answering my own questions while I hack around.
My grammar did not parse valid strings, so I fixed that. I still don't see
why I need the predicate in the STRING_LIT:
rule. Both versions parse valid strings (from my little tests).

-Ed
---------

protected
ESCAPE_SEQ:
    '\\'.;

protected
SHORT_STRING_CHAR_SINGLE:
    ~('\\'|'\n'|'\r'|'\'') ;

protected
SHORT_STRING_CHAR_DOUBLE:
    ~('\\'|'\n'|'\r'|'"') ;

protected
LONG_STRING_CHAR_SINGLE:
    ~('\\'|'\'') ;

protected
LONG_STRING_CHAR_DOUBLE:
    ~('\\'|'"') ;

protected
SHORT_STRING_ITEM_SINGLE:
    SHORT_STRING_CHAR_SINGLE | ESCAPE_SEQ ;

protected
SHORT_STRING_ITEM_DOUBLE:
    SHORT_STRING_CHAR_DOUBLE | ESCAPE_SEQ ;

protected
LONG_STRING_ITEM_SINGLE:
    LONG_STRING_CHAR_SINGLE | ESCAPE_SEQ ;

protected
LONG_STRING_ITEM_DOUBLE:
    LONG_STRING_CHAR_DOUBLE | ESCAPE_SEQ ;

protected
SHORT_STRING:
    '\'' (SHORT_STRING_ITEM_SINGLE)* '\''
    | '"' (SHORT_STRING_ITEM_DOUBLE)* '"' ;

protected
LONG_STRING:
    "'''" (LONG_STRING_ITEM_SINGLE)* "'''"
    | "\"\"\"" (LONG_STRING_ITEM_DOUBLE)* "\"\"\"" ;


STRING_LIT:
    (("'''") | ("\"\"\"")) => LONG_STRING
    | SHORT_STRING ;

// STRING_LIT: LONG_STRING  |  SHORT_STRING; // why is this non
deterministic?


 

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



More information about the antlr-interest mailing list