D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
alt
/
ruby20
/
lib64
/
ruby
/
2.0.0
/
ripper
/
Filename :
core.rb
back
Copy
# # $Id: core.rb 36954 2012-09-12 23:04:41Z zzak $ # # Copyright (c) 2003-2005 Minero Aoki # # This program is free software. # You can distribute and/or modify this program under the Ruby License. # For details of Ruby License, see ruby/COPYING. # require 'ripper.so' class Ripper # Parses the given Ruby program read from +src+. # +src+ must be a String or an IO or a object with a #gets method. def Ripper.parse(src, filename = '(ripper)', lineno = 1) new(src, filename, lineno).parse end # This array contains name of parser events. PARSER_EVENTS = PARSER_EVENT_TABLE.keys # This array contains name of scanner events. SCANNER_EVENTS = SCANNER_EVENT_TABLE.keys # This array contains name of all ripper events. EVENTS = PARSER_EVENTS + SCANNER_EVENTS 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) end # This method is called when strong warning is produced by the parser. # +fmt+ and +args+ is printf style. def warning(fmt, *args) end # This method is called when the parser found syntax error. def compile_error(msg) end # # Scanner Events # SCANNER_EVENTS.each do |id| module_eval(<<-End, __FILE__, __LINE__ + 1) def on_#{id}(token) token end End end end