Variant of Ripper’s SexpBuilderPP parser class that inserts comments as Sexps into the built parse tree.
# File lib/ripper_ruby_parser/commenting_ripper_parser.rb, line 87 def on_alias_error *args raise SyntaxError.new(*args) end
# File lib/ripper_ruby_parser/commenting_ripper_parser.rb, line 91 def on_assign_error *args raise SyntaxError.new(*args) end
# File lib/ripper_ruby_parser/commenting_ripper_parser.rb, line 43 def on_class *args commentize(:class, super) end
# File lib/ripper_ruby_parser/commenting_ripper_parser.rb, line 83 def on_class_name_error *args raise SyntaxError.new(*args) end
# File lib/ripper_ruby_parser/commenting_ripper_parser.rb, line 22 def on_comment tok @comment ||= "" @comment += tok super end
# File lib/ripper_ruby_parser/commenting_ripper_parser.rb, line 51 def on_def *args commentize(:def, super) end
# File lib/ripper_ruby_parser/commenting_ripper_parser.rb, line 55 def on_defs *args commentize(:def, super) end
# File lib/ripper_ruby_parser/commenting_ripper_parser.rb, line 74 def on_dyna_symbol *args @in_symbol = false super end
# File lib/ripper_ruby_parser/commenting_ripper_parser.rb, line 69 def on_embexpr_beg *args @in_symbol = false super end
# File lib/ripper_ruby_parser/commenting_ripper_parser.rb, line 28 def on_kw tok case tok when "class", "def", "module" unless @in_symbol @comment_stack.push [tok.to_sym, @comment] @comment = nil end end super end
# File lib/ripper_ruby_parser/commenting_ripper_parser.rb, line 39 def on_module *args commentize(:module, super) end
# File lib/ripper_ruby_parser/commenting_ripper_parser.rb, line 95 def on_param_error *args raise SyntaxError.new(*args) end
# File lib/ripper_ruby_parser/commenting_ripper_parser.rb, line 79 def on_parse_error *args raise SyntaxError.new(*args) end
# File lib/ripper_ruby_parser/commenting_ripper_parser.rb, line 47 def on_sclass *args commentize(:class, super) end
# File lib/ripper_ruby_parser/commenting_ripper_parser.rb, line 59 def on_symbeg *args @in_symbol = true super end
# File lib/ripper_ruby_parser/commenting_ripper_parser.rb, line 64 def on_symbol *args @in_symbol = false super end
# File lib/ripper_ruby_parser/commenting_ripper_parser.rb, line 15 def parse result = suppress_warnings { super } raise "Ripper parse failed." unless result Sexp.from_array(result) end
# File lib/ripper_ruby_parser/commenting_ripper_parser.rb, line 8 def initialize *args super @comment = nil @comment_stack = [] @in_symbol = false end