L
Luke A. Kanies
Hi all,
I'm just cutting my teeth on ruby, after a long time with perl as a
sysadmin. I'm currently trying to write a language compiler. Because of
my experience with perl, I am currently planning on using some kind of
lex/yacc combo, mainly because it should be pretty fast and it should be
relatively easy.
However, rlex and ryacc don't seem to be quite functional. rlex didn't
work with debian, although it worked apparently fine on my Solaris x86
box. ryacc, though, is using /**/ style comments and seems to have left
out the middle couple hundred lines of code, which causes a few problems.
rockit hasn't been updated in 2 years, so I'm guessing it's not compatible
with the latest stuff. racc seems to be exist and be current, but it
looks like a recursive descent parser (I'm not really even sure how to
tell, it just seems to have a similar grammar), and the last one I used
(Parse::RecDescent in perl) was about 10 times slower than a roughly
equivalent Parse::Lex/Parse::Yapp combo.
So, my question is: Is there a good parsing solution in ruby right now?
I really don't want to write my own, as I don't think I'm up to it (I'm
barely up to writing the parser with a parser compiler), but I really
would like to use ruby, as all of my prototype code is in ruby and it has
worked smashingly.
I've read through the ruby-talk archives, and what consensus I could find
there seemed to point to racc, so maybe I just need someone to correct my
ideas about how racc works and whether I should use it. I'm not
particularly attached to yacc-like functionality, as I've really only used
it once, but I am definitely concerned about speed.
Any help would be greatly appreciated.
Thanks,
Luke Kanies
I'm just cutting my teeth on ruby, after a long time with perl as a
sysadmin. I'm currently trying to write a language compiler. Because of
my experience with perl, I am currently planning on using some kind of
lex/yacc combo, mainly because it should be pretty fast and it should be
relatively easy.
However, rlex and ryacc don't seem to be quite functional. rlex didn't
work with debian, although it worked apparently fine on my Solaris x86
box. ryacc, though, is using /**/ style comments and seems to have left
out the middle couple hundred lines of code, which causes a few problems.
rockit hasn't been updated in 2 years, so I'm guessing it's not compatible
with the latest stuff. racc seems to be exist and be current, but it
looks like a recursive descent parser (I'm not really even sure how to
tell, it just seems to have a similar grammar), and the last one I used
(Parse::RecDescent in perl) was about 10 times slower than a roughly
equivalent Parse::Lex/Parse::Yapp combo.
So, my question is: Is there a good parsing solution in ruby right now?
I really don't want to write my own, as I don't think I'm up to it (I'm
barely up to writing the parser with a parser compiler), but I really
would like to use ruby, as all of my prototype code is in ruby and it has
worked smashingly.
I've read through the ruby-talk archives, and what consensus I could find
there seemed to point to racc, so maybe I just need someone to correct my
ideas about how racc works and whether I should use it. I'm not
particularly attached to yacc-like functionality, as I've really only used
it once, but I am definitely concerned about speed.
Any help would be greatly appreciated.
Thanks,
Luke Kanies