ruby_parser: August 2009 Archives

Why I Hate Yacc

| | Comments (0)
call_args2: arg_value tCOMMA args                                      opt_block_arg
          | arg_value tCOMMA                                               block_arg
          | arg_value tCOMMA                           tSTAR arg_value opt_block_arg
          | arg_value tCOMMA args tCOMMA               tSTAR arg_value opt_block_arg
          |                              assocs                        opt_block_arg
          |                              assocs tCOMMA tSTAR arg_value opt_block_arg
          | arg_value tCOMMA             assocs                        opt_block_arg
          | arg_value tCOMMA args tCOMMA assocs                        opt_block_arg
          | arg_value tCOMMA             assocs tCOMMA tSTAR arg_value opt_block_arg
          | arg_value tCOMMA args tCOMMA assocs tCOMMA tSTAR arg_value opt_block_arg
          |                                            tSTAR arg_value opt_block_arg
          |                                                                block_arg

ruby_parser (RP) is a ruby parser written in pure ruby (utilizing racc--which does by default use a C extension). RP's output is the same as ParseTree's output: s-expressions using ruby's arrays and base types.

As an example:

def conditional1(arg1) if arg1 == 0 then return 1 end return 0 end

becomes:

s(:defn, :conditional1, s(:args, :arg1), s(:scope, s(:block, s(:if, s(:call, s(:lvar, :arg1), :==, s(:arglist, s(:lit, 0))), s(:return, s(:lit, 1)), nil), s(:return, s(:lit, 0)))))

Changes:

2.0.4 / 2009-08-18

  • 1 minor enhancement:

    • Changed requires around to be more accurate.
  • 4 bug fixes:

    • Fixed .autotest for minitest
    • Fixed emacs escape lexing bug: "\C-\" (maglev/gemstone)
    • Fixed octal lexing edgecases. (maglev/gemstone)
    • Fixed regexp lexing edgecases. (maglev/gemstone)
  • http://parsetree.rubyforge.org/

About this Archive

This page is a archive of entries in the ruby_parser category from August 2009.

ruby_parser: June 2009 is the previous archive.

ruby_parser: September 2010 is the next archive.

Find recent content on the main index or look in the archives to find all content.

Pages

Powered by Movable Type 4.32-en