[antlr-interest] With apologies for the list-spam, here's another question

Terence Parr parrt at cs.usfca.edu
Mon Mar 1 10:48:59 PST 2004


On Feb 29, 2004, at 7:50 PM, offline314159 wrote:

> (note that this was foolishly asked in my other thread, little was i
> thinking -- since most people wisely skip the "thanks, d00d" messages.
>  I apologize to all the people who DID read it, and thank you all for
> your patience, which i won't try anymore:  on with the message!)
>
> The input for my parser may consist of "folded" text - basically, some
> lines that are beyond a reasonable length will be wrapped with leading
> whitespace indicating that their values are to be unfolded and treated
> as all one piece.
>
> So how do i look for that? I was originally handling it by filtering
> the input, but that was messing with my linefeeds and CRs, so i'd like
> to handle it in the parser. Essentially what i want is to return a
> single token, call it VALUE, that takes everything from the first ":"
> on a line to the first ENDL character that is not followed by some
> whitespace.
>
> Can this even be done?

Sure.  What's the indicator that you've gone beyond a "reasonable 
length"?  Just add code to the NEWLINE rule:

NEWLINE
     :   '\n' {newline();}
         ( {getColumn()>MAX}? (' '|'\t')+ {$setType(Token.SKIP);})?
     ;

This will ignore newline followed by whitespace if newline is beyond 
MAX column. :)

Ter		

--
Professor Comp. Sci., University of San Francisco
Creator, ANTLR Parser Generator, http://www.antlr.org
Cofounder, http://www.jguru.com
Cofounder, http://www.knowspam.net enjoy email again!
Cofounder, http://www.peerscope.com pure link sharing





 
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