# Ruby lexer/parser package?

**URL:** <https://www.ruby-forum.com/t/ruby-lexer-parser-package/48424>\
**Category:** Ruby\
**Created:** [November 20, 2005, 5:25am UTC](https://www.ruby-forum.com/t/ruby-lexer-parser-package/48424 "2005-11-20T05:25:03Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![didier.prophete](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/71c47a/32.png) [@didier.prophete](https://www.ruby-forum.com/u/didier.prophete)\
**Post date:** [November 20, 2005, 5:25am UTC](https://www.ruby-forum.com/t/ruby-lexer-parser-package/48424/1 "2005-11-20T05:25:03Z")

</div>

a quick question: is there a lex/yacc package for ruby ? or actually  
anything to implement a lexer/parser in ruby ?  
for some reason I can’t seem to find anything like that out there…

thanks for your help.

-Didier

---

<div class="post-metadata">

**Author:** ![didier.prophete](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/71c47a/32.png) [@didier.prophete](https://www.ruby-forum.com/u/didier.prophete)\
**Post date:** [November 20, 2005, 5:41am UTC](https://www.ruby-forum.com/t/ruby-lexer-parser-package/48424/2 "2005-11-20T05:41:07Z")

</div>

Hi Didier,

Check out Racc. It comes with ruby in the standard library.

Cheers,  
Dave

---

<div class="post-metadata">

**Author:** ![didier.prophete](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/71c47a/32.png) [@didier.prophete](https://www.ruby-forum.com/u/didier.prophete)\
**Post date:** [November 20, 2005, 7:13am UTC](https://www.ruby-forum.com/t/ruby-lexer-parser-package/48424/3 "2005-11-20T07:13:56Z")

</div>

On Nov 19, 2005, at 10:37 PM, David B. wrote:

> Hi Didier,
> 
> Check out Racc. It comes with ruby in the standard library.

Tiny clarification, the Racc _runtime_ is a standard library.

James Edward G. II

---

<div class="post-metadata">

**Author:** ![didier.prophete](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/71c47a/32.png) [@didier.prophete](https://www.ruby-forum.com/u/didier.prophete)\
**Post date:** [November 20, 2005, 6:46pm UTC](https://www.ruby-forum.com/t/ruby-lexer-parser-package/48424/4 "2005-11-20T18:46:28Z")

</div>

David, James, Eric,

Thanks a lot guys.  
Now, I didn’t see any obvious lexer package out there, but maybe I need  
to spend more time looking at the examples.

-Didier

---

<div class="post-metadata">

**Author:** ![didier.prophete](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/71c47a/32.png) [@didier.prophete](https://www.ruby-forum.com/u/didier.prophete)\
**Post date:** [November 20, 2005, 7:13am UTC](https://www.ruby-forum.com/t/ruby-lexer-parser-package/48424/5 "2005-11-20T07:13:56Z")

</div>

On 11/19/05, removed\_email\_address@domain.invalid [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> a quick question: is there a lex/yacc package for ruby ? or actually  
> anything to implement a lexer/parser in ruby ?  
> for some reason I can’t seem to find anything like that out there…

Here are the general parser (and sometimes lexer) packages I found on  
raa and rubyforge:

LR parsers:  
[http://raa.ruby-lang.org/project/racc/](http://raa.ruby-lang.org/project/racc/) (run-time extension in ruby 1.8)  
[http://raa.ruby-lang.org/project/rockit/](http://raa.ruby-lang.org/project/rockit/) (doesn’t work on 1.8?)

LL parsers:  
[http://raa.ruby-lang.org/project/coco-rb/](http://raa.ruby-lang.org/project/coco-rb/)  
[http://rubyforge.org/projects/tdp4r/](http://rubyforge.org/projects/tdp4r/)  
[http://rubyforge.org/projects/coco-ruby/](http://rubyforge.org/projects/coco-ruby/)  
[http://rubyforge.org/projects/grammar/](http://rubyforge.org/projects/grammar/)

Of course I’m biased toward my package (grammar) and think it is the  
best out there. You should take a look at all these if you are  
interested in the topic.

---

<div class="post-metadata">

**Author:** ![didier.prophete](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/71c47a/32.png) [@didier.prophete](https://www.ruby-forum.com/u/didier.prophete)\
**Post date:** [November 20, 2005, 8:23pm UTC](https://www.ruby-forum.com/t/ruby-lexer-parser-package/48424/6 "2005-11-20T20:23:01Z")

</div>

On 11/20/05, removed\_email\_address@domain.invalid [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> David, James, Eric,
> 
> Thanks a lot guys.  
> Now, I didn’t see any obvious lexer package out there, but maybe I need  
> to spend more time looking at the examples.
> 
> -Didier

For mine, a lexer and parser are made identically - one parses  
characters and the other tokens. On one extreme, you can make a  
lexer-free parser and on the other you could make multi-level (more  
than just lexer/parser) language transformer/compiler.
