[antlr-interest] Positioning input stream (was EOL sequence)
Arnar Birgisson
arnarb at oddi.is
Wed Dec 17 09:23:02 PST 2003
I have this, and it doesn't generate any ambiguity warnings (k=2):
/* Whitespace and comments */
WS
: ('\t' | ' ' | EndOfLine {newline();} )+
{$setType(antlr::Token::SKIP);};
COMMENT
: '%' (~('\n' | '\r'))* EndOfLine {$setType(antlr::Token::SKIP);
newline(); };
protected
EndOfLine
: (options{generateAmbigWarnings = false;}:
"\r\n"
| '\r'
| '\n'
);
Arnar
> -----Original Message-----
> From: skapp at rochester.rr.com [mailto:skapp at rochester.rr.com]
> Sent: 17. desember 2003 05:04
> To: antlr-interest at yahoogroups.com
> Subject: [antlr-interest] Positioning input stream (was EOL sequence)
>
>
> I have worked out enough details with the EOL sequences to
> understand where my PostScript parser is failing. PostScript parsers
> have to be able to handle the following four example sequences
> identically:
>
> currentfile read 3
> currentfile read<CR>3
> currentfile read<LF>3
> currentfile read<CR><LF>3
>
> where the "currentfile read" operator sequence instructs the
> PostScript interpreter to read one byte from the input stream.
>
> There is no issue with the first three examples. The input stream
> point just past the EOL byte once the "read" operator has been
> recognized. Then the read operator simply has to pull one byte from
> the input stream (a FileInputStream in this case).
>
> However, in the fourth case, the input stream points to the <LF>
> character when the "read" operator has been recognized. The
> PostScript spec states that "Any of the three forms of EOL ... is
> treated as a single white-space character."
>
> How do I handle this? What can or should I do in the lexer versus in
> the parser?
>
> Regards,
>
> Steve
>
>
>
>
>
> 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/
>
>
>
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