I don't understand the question. The parser operates on a token stream,
neither String nor IO.
I have a real (but arcane) Racc application; you're welcome to see it.
(It's a reverse-engineered parser for the export format of a commercial
system engineering tool.) The lexer pushes tokens onto an array and the
parser shifts from it. The lexer does read the entire file into memory
before parsing, but that could be trivially changed by running the lexer
in a separate thread and using a Queue for the token stream.
Steve
All the example racc parsers I've seen use lexers that parse from a string.
I think this is because they are using regexes which operates naturally on
strings, but not IO's.
So, I guess I mainly want to see a racc lexer example that operates on an
IO/File. Can you give me a link to what you have?
OK. It's not exactly published, but not exactly proprietary either. I'll
email it to you.
For the record, the lexer iterates over input lines with IO#each and
then uses regexes to split each line into tokens. So I suppose the lexer
is, strictly speaking, tokenizing a string.
Steve