Sha256: 5f08e2e8ad4517e51ac17a55b1a2784765e38a28a35dc5ddbd10d37ab023515d
Contents?: true
Size: 959 Bytes
Versions: 6
Compression:
Stored size: 959 Bytes
Contents
require File.expand_path("../ripper_events_recorder", __FILE__) # reports scanner events as hashes class SexpBuilderWithScannerEvents < RipperEventsRecorder SCANNER_EVENTS.each do |event| module_eval(<<-End, __FILE__, __LINE__ + 1) def on_#{event}(tok) super { :#{ event } => tok } end End end PARSER_EVENT_TABLE.each do |event, arity| if /_new\z/ =~ event.to_s and arity == 0 module_eval(<<-End, __FILE__, __LINE__ + 1) def on_#{event} super [] end End elsif /_add\z/ =~ event.to_s module_eval(<<-End, __FILE__, __LINE__ + 1) def on_#{event}(list, item) super list.push item list end End else module_eval(<<-End, __FILE__, __LINE__ + 1) def on_#{event}(*args) super [:#{event}, *args] end End end end end
Version data entries
6 entries across 6 versions & 1 rubygems