[antlr-interest] Taking control of the input stream
weitzman_d
weitzman_d at yahoo.com
Tue Sep 17 14:23:41 PDT 2002
Howdy. I just started using ANTLR and it looks like a great tool.
I'm trying to write a grammer that parses IMAP commands (the spec
doesn't seem consistant enough to allow generic parsing). Here's the
tricky part:
IMAP allows strings to be expressed as something it calls a 'literal'
(not to be confused with what everyone else calls a literal).
Servers must accept quoted strings and
atoms (like the quoted-string message content here)
C: A003 APPEND saved-messages (\Seen) "Date: Mon, ..."
But servers must also be able to accept in the 'literal' form like
this:
C: A003 APPEND saved-messages (\Seen) {310}
S: + continue
C: Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)
C: ...
C: (310 bytes later...)
S: A003 OK APPEND completed
I want my ANTLR grammer to see the {NUM} and eat up the next NUM
bytes into a single token. A general outline of the rule would look
something like this:
literal : "{" len:NUMBER "}" CRLF
{
int length = Integer.parseInt(len.getText());
out.println("+ continue");
String value = [read the next 'length' bytes]
}
;
How can I do this (or is it not possible)?
Thanks,
David Weitzman
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
More information about the antlr-interest
mailing list