any good racc examples that parse from an IO instead of a String?

E

Eric Mahurin

------=_Part_24069_12170461.1131056239952
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

I wanted to compare how the my grammar project compares against racc in
terms of performance. I have yet to find an example that parses from an IO.
Everything I've found so far parses from a String. Seems kind of silly if
racc has to read in the whole file before parsing - or everybody is doing i=
t
that way. Maybe because people write there lexers based on regexes which
require Strings (I noticed discussions about this on another thread).

------=_Part_24069_12170461.1131056239952--
 
S

Steven Jenkins

Eric said:
I wanted to compare how the my grammar project compares against racc in
terms of performance. I have yet to find an example that parses from an IO.
Everything I've found so far parses from a String. Seems kind of silly if
racc has to read in the whole file before parsing - or everybody is doing it
that way. Maybe because people write there lexers based on regexes which
require Strings (I noticed discussions about this on another thread).

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
 
E

Eric Mahurin

------=_Part_31459_15343953.1131114890624
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

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.


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?

------=_Part_31459_15343953.1131114890624--
 
S

Steven Jenkins

Eric said:
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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,754
Messages
2,569,527
Members
44,997
Latest member
mileyka

Latest Threads

Top