Question

I'm looking for Ruby grammar in BNF form. Is there an official version?

Was it helpful?

Solution

Yes, there is one Ruby BNF syntax by the University of buffalo.

Edit: I've also found this alternate Ruby BNF syntax.

OTHER TIPS

The YACC syntax is in the Ruby source. Download it and run the bundled utiliy to get the readable syntax.

wget ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p195.tar.gz
tar xvzf ruby-2.0.0-p195.tar.gz
cd ruby-2.0.0-p195
ruby sample/exyacc.rb < parse.y

Output sample (total 918 lines for the v2.0.0-p195)

program         : top_compstmt
                ;

top_compstmt    : top_stmts opt_terms
                ;

top_stmts       : none
                | top_stmt
                | top_stmts terms top_stmt
                | error top_stmt
                ;

top_stmt        : stmt
                | keyword_BEGIN
                  '{' top_compstmt '}'
                ;

bodystmt        : compstmt
                  opt_rescue
                  opt_else
                  opt_ensure
                ;

compstmt        : stmts opt_terms
                ;

also an official version: Ruby Draft Specification. you can find the grammar there.

Ruby Draft Specification: http://ruby-std.netlab.jp. the server is down, but you can download it from http://www.ipa.go.jp/osc/english/ruby

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top