Skip to content
  • Yusuke Endoh's avatar
    9b7fe0a2
    ext/ripper: Introduce a simple DSL for ripper.y code generation · 9b7fe0a2
    Yusuke Endoh authored
    Currently, parse.y actions are hard to read and write because the code
    has double meaning (for core parser and for ripper).  I think that, if
    it is easy to write ripper's code shortly and simply, the double meaning
    trick is not needed.
    
    For the sake, this change adds a simple DSL for ripper's code.  For
    example, in parse.y, we can write:
    
        /*% ripper: stmts_add(stmts_new, void_stmt) %*/
    
    instead of:
    
        $$ = dispatch2(stmts_add, dispatch0(stmts_new),
                       dispatch0(void_stmt));
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
    9b7fe0a2
    ext/ripper: Introduce a simple DSL for ripper.y code generation
    Yusuke Endoh authored
    Currently, parse.y actions are hard to read and write because the code
    has double meaning (for core parser and for ripper).  I think that, if
    it is easy to write ripper's code shortly and simply, the double meaning
    trick is not needed.
    
    For the sake, this change adds a simple DSL for ripper's code.  For
    example, in parse.y, we can write:
    
        /*% ripper: stmts_add(stmts_new, void_stmt) %*/
    
    instead of:
    
        $$ = dispatch2(stmts_add, dispatch0(stmts_new),
                       dispatch0(void_stmt));
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Loading