[antlr-interest] Positioning input stream (was EOL sequence)

Anthony W Youngman Anthony.Youngman at ECA-International.com
Thu Dec 18 02:12:05 PST 2003


Is this approach possible in the lexer?

NEWLINE : ( '\n'
	 |	'\r' { if (LA(1) == '\n') consume(); }
	);

(Hope I've got my syntax right :-)

Cheers,
Wol

-----Original Message-----
From: skapp at rochester.rr.com [mailto:skapp at rochester.rr.com] 
Sent: 17 December 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/ 






***********************************************************************************

This transmission is intended for the named recipient only. It may contain private and confidential information. If this has come to you in error you must not act on anything disclosed in it, nor must you copy it, modify it, disseminate it in any way, or show it to anyone. Please e-mail the sender to inform us of the transmission error or telephone ECA International immediately and delete the e-mail from your information system.

Telephone numbers for ECA International offices are: Sydney +61 (0)2 9911 7799, Hong Kong + 852 2121 2388, London +44 (0)20 7351 5000 and New York +1 212 582 2333.

***********************************************************************************


 

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