diff options
author | aamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-09-23 21:37:38 +0000 |
---|---|---|
committer | aamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-09-23 21:37:38 +0000 |
commit | 1d62cc0ecc3e0ad8336972596c6a7bdab3d68921 (patch) | |
tree | dcb5121ffd3676fa22a0d0f17bc020ffc69eab1f /ext/ripper/lib/ripper | |
parent | 2d683b3190f60e82ed791381d21c2a3530beb824 (diff) |
* ext/ripper: no longer generates .rb files.
* parse.y (Init_ripper): ripper_init_eventids*() takes 1 argument, self (class Ripper).
* ext/ripper/depend: target removed: `lib/ripper/core.rb'.
* ext/ripper/depend: new target `eventids2table.c'.
* ext/ripper/depend: new target `check'.
* ext/ripper/eventids2.c: include eventids2table.c.
* ext/ripper/eventids2.c: initialize SCANNER_EVENT_TABLE.
* ext/ripper/extconf.rb: update $cleanfiles list.
* ext/ripper/tools/generate.rb: no longer generate ripper/core.rb.
* ext/ripper/tools/generate.rb: new mode `check'.
* ext/ripper/tools/generate.rb: new mode `eventids2table'.
* ext/ripper/lib/ripper/core.rb.in: removed.
* ext/ripper/lib/ripper/core.rb: added.
* ext/ripper/lib/ripper/filter.rb: update copyright year.
* ext/ripper/lib/ripper/lexer.rb: ditto.
* ext/ripper/lib/ripper/sexp.rb: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9284 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/ripper/lib/ripper')
-rw-r--r-- | ext/ripper/lib/ripper/core.rb (renamed from ext/ripper/lib/ripper/core.rb.in) | 49 | ||||
-rw-r--r-- | ext/ripper/lib/ripper/filter.rb | 4 | ||||
-rw-r--r-- | ext/ripper/lib/ripper/lexer.rb | 4 | ||||
-rw-r--r-- | ext/ripper/lib/ripper/sexp.rb | 4 |
4 files changed, 31 insertions, 30 deletions
diff --git a/ext/ripper/lib/ripper/core.rb.in b/ext/ripper/lib/ripper/core.rb index 5f46c58190..35aa54d090 100644 --- a/ext/ripper/lib/ripper/core.rb.in +++ b/ext/ripper/lib/ripper/core.rb @@ -1,7 +1,7 @@ # -# ripper/core.rb +# $Id$ # -# Copyright (C) 2003-2005 Minero Aoki +# Copyright (c) 2003-2005 Minero Aoki # # This program is free software. # You can distribute and/or modify this program under the Ruby License. @@ -11,38 +11,36 @@ require 'ripper.so' class Ripper + # Parses Ruby program read from _src_. # _src_ must be a String or a IO or a object which has #gets method. def Ripper.parse(src, filename = '(ripper)', lineno = 1) new(src, filename, lineno).parse end - # This table contains name of parser events and its arity. - PARSER_EVENT_TABLE = { -#include ids1 - } - # This array contains name of parser events. PARSER_EVENTS = PARSER_EVENT_TABLE.keys - # This table contains name of scanner events and its arity - # (arity is always 1 for all scanner events). - SCANNER_EVENT_TABLE = { -#include ids2 - } - # This array contains name of scanner events. SCANNER_EVENTS = SCANNER_EVENT_TABLE.keys - # This table contains name of all ripper events. + # This array contains name of all ripper events. EVENTS = PARSER_EVENTS + SCANNER_EVENTS - ### ### - ### Event Handlers ### - ### ### - private + # + # Parser Events + # + + PARSER_EVENT_TABLE.each do |id, arity| + module_eval(<<-End, __FILE__, __LINE__ + 1) + def on_#{id}(#{ ('a'..'z').to_a[0, arity].join(', ') }) + #{arity == 0 ? 'nil' : 'a'} + end + End + end + # This method is called when weak warning is produced by the parser. # _fmt_ and _args_ is printf style. def warn(fmt, *args) @@ -58,12 +56,15 @@ class Ripper end # - # Parser Events + # Scanner Events # -#include handlers1 - # - # Lexer Events - # -#include handlers2 + SCANNER_EVENTS.each do |id| + module_eval(<<-End, __FILE__, __LINE__ + 1) + def on_#{id}(token) + token + end + End + end + end diff --git a/ext/ripper/lib/ripper/filter.rb b/ext/ripper/lib/ripper/filter.rb index 99c11182a1..898501b23c 100644 --- a/ext/ripper/lib/ripper/filter.rb +++ b/ext/ripper/lib/ripper/filter.rb @@ -1,7 +1,7 @@ # -# ripper/filter.rb +# $Id$ # -# Copyright (C) 2004 Minero Aoki +# Copyright (c) 2004,2005 Minero Aoki # # This program is free software. # You can distribute and/or modify this program under the Ruby License. diff --git a/ext/ripper/lib/ripper/lexer.rb b/ext/ripper/lib/ripper/lexer.rb index 20436f6f49..22048f161c 100644 --- a/ext/ripper/lib/ripper/lexer.rb +++ b/ext/ripper/lib/ripper/lexer.rb @@ -1,7 +1,7 @@ # -# ripper/lexer.rb +# $Id$ # -# Copyright (C) 2004,2005 Minero Aoki +# Copyright (c) 2004,2005 Minero Aoki # # This program is free software. # You can distribute and/or modify this program under the Ruby License. diff --git a/ext/ripper/lib/ripper/sexp.rb b/ext/ripper/lib/ripper/sexp.rb index 621dd0e752..d841f9d665 100644 --- a/ext/ripper/lib/ripper/sexp.rb +++ b/ext/ripper/lib/ripper/sexp.rb @@ -1,7 +1,7 @@ # -# ripper/sexp.rb +# $Id$ # -# Copyright (C) 2004,2005 Minero Aoki +# Copyright (c) 2004,2005 Minero Aoki # # This program is free software. # You can distribute and/or modify this program under the Ruby License. |