# Ruby Lex Specification

**URL:** <https://www.ruby-forum.com/t/ruby-lex-specification/118732>\
**Category:** Ruby\
**Created:** [October 30, 2007, 2:01pm UTC](https://www.ruby-forum.com/t/ruby-lex-specification/118732 "2007-10-30T14:01:36Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![vascoas](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/b3f665/32.png) [@vascoas](https://www.ruby-forum.com/u/vascoas)\
**Post date:** [October 30, 2007, 2:01pm UTC](https://www.ruby-forum.com/t/ruby-lex-specification/118732/1 "2007-10-30T14:01:36Z")

</div>

Hi,

Where can i find a ruby (1.8.6) syntax specification? If that  
specification means a file in the source, no problem for me.

Thanks,  
Vasco Andrade e Silva

---

<div class="post-metadata">

**Author:** ![vascoas](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/b3f665/32.png) [@vascoas](https://www.ruby-forum.com/u/vascoas)\
**Post date:** [October 30, 2007, 2:30pm UTC](https://www.ruby-forum.com/t/ruby-lex-specification/118732/2 "2007-10-30T14:30:58Z")

</div>

Thanks Jason.

Correct me if i’m wrong but doesn’t yacc (or the parser) need something  
before it (like lex or a tokenizer) to ‘tokenize’ the text?

I can identify the tokens in parse.y but i was looking for a  
“specification” for them. Example: if i see “class” probably i want to  
create the token kCLASS, but i wanted to be sure…

Vasco Andrade e Silva

---

<div class="post-metadata">

**Author:** ![vascoas](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/b3f665/32.png) [@vascoas](https://www.ruby-forum.com/u/vascoas)\
**Post date:** [October 30, 2007, 2:15pm UTC](https://www.ruby-forum.com/t/ruby-lex-specification/118732/3 "2007-10-30T14:15:58Z")

</div>

parse.y is your source.  
([http://svn.ruby-lang.org/repos/ruby/trunk/parse.y](http://svn.ruby-lang.org/repos/ruby/trunk/parse.y))

There is no official Ruby spec (yet), but it is slowly being worked on.

Jason

---

<div class="post-metadata">

**Author:** ![vascoas](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/b3f665/32.png) [@vascoas](https://www.ruby-forum.com/u/vascoas)\
**Post date:** [October 30, 2007, 3:37pm UTC](https://www.ruby-forum.com/t/ruby-lex-specification/118732/4 "2007-10-30T15:37:03Z")

</div>

Then this is this file you wanted:  
[http://svn.ruby-lang.org/repos/ruby/trunk/keywords](http://svn.ruby-lang.org/repos/ruby/trunk/keywords)

---

<div class="post-metadata">

**Author:** ![vascoas](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/b3f665/32.png) [@vascoas](https://www.ruby-forum.com/u/vascoas)\
**Post date:** [October 31, 2007, 3:34am UTC](https://www.ruby-forum.com/t/ruby-lex-specification/118732/5 "2007-10-31T03:34:57Z")

</div>

CÃ©dric Finance wrote:

> Then this is this file you wanted:  
> [http://svn.ruby-lang.org/repos/ruby/trunk/keywords](http://svn.ruby-lang.org/repos/ruby/trunk/keywords)

Thanks a lot.

(What a mess between the parser, keywords… :P)

---

<div class="post-metadata">

**Author:** ![vascoas](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/b3f665/32.png) [@vascoas](https://www.ruby-forum.com/u/vascoas)\
**Post date:** [October 30, 2007, 4:21pm UTC](https://www.ruby-forum.com/t/ruby-lex-specification/118732/6 "2007-10-30T16:21:05Z")

</div>

Waou!!

I am currently writing a parser for a simple command line. (chose to  
use lemon instead of bison). I had a look at the file you mentioned.  
This is impressive. Expressivity and freedom for the programmer means  
hard work for the developer (syntax for lisp is really smaller).  
Thanks Matz for choosing expressivity.

Gaspard

2007/10/30, Jason R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

---

<div class="post-metadata">

**Author:** ![vascoas](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/b3f665/32.png) [@vascoas](https://www.ruby-forum.com/u/vascoas)\
**Post date:** [October 31, 2007, 7:45am UTC](https://www.ruby-forum.com/t/ruby-lex-specification/118732/7 "2007-10-31T07:45:44Z")

</div>

On Oct 30, 7:34 pm, Vasco Andrade e Silva [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Cédric Finance wrote:
> 
> > Then this is this file you wanted:  
> > [http://svn.ruby-lang.org/repos/ruby/trunk/keywords](http://svn.ruby-lang.org/repos/ruby/trunk/keywords)
> 
> Thanks a lot.
> 
> ## (What a mess between the parser, keywords… :P)
> 
> Posted viahttp://www.ruby-forum.com/.

there were also ANTLR grammars

[http://redhanded.hobix.com/cult/parseYRemakes.html](http://redhanded.hobix.com/cult/parseYRemakes.html)
