diff options
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. |