class Parser::Runner::RubyParse
def initialize
def initialize super @locate = false end
def process(buffer)
def process(buffer) ast = @parser.parse(buffer) if @locate LocationProcessor.new.process(ast) elsif !@benchmark p ast end end
def process_all_input
def process_all_input if input_size > 1 puts "Using #{@parser_class} to parse #{input_size} files." end super end
def runner_name
def runner_name 'ruby-parse' end
def setup_option_parsing(opts)
def setup_option_parsing(opts) super(opts) opts.on '-L', '--locate', 'Explain how source maps for AST nodes are laid out' do |v| @locate = v end opts.on '-E', '--explain', 'Explain how the source is tokenized' do ENV['RACC_DEBUG'] = '1' Lexer.send :include, Lexer::Explanation end end