Ripper Events

This is a documented list of events from Ruby's Ripper parser. They can be handled in subclasses of Ripper, using `on_*` methods of varying arity. (View this page's source code.)

Coverage: 30 / 183 (16%)

:BEGIN :CHAR :END :__end__ :alias :alias_error :aref :aref_field :arg_ambiguous :arg_paren :args_add :args_add_block :args_add_star :args_new :array :assign :assign_error :assoc_new :assoc_splat :assoclist_from_args :backref :backtick :bare_assoc_hash :begin :binary :block_var :block_var_add_block :block_var_add_star :blockarg :bodystmt :brace_block :break :call :case :class :class_name_error :comma :command :command_call :comment :const :const_path_field :const_path_ref :const_ref :cvar :def :defined :defs :do_block :dot2 :dot3 :dyna_symbol :else :elsif :embdoc :embdoc_beg :embdoc_end :embexpr_beg :embexpr_end :embvar :ensure :excessed_comma :fcall :field :float :for :gvar :hash :heredoc_beg :heredoc_dedent :heredoc_end :ident :if :if_mod :ifop :ignored_nl :imaginary :int :ivar :kw :label :label_end :lambda :lbrace :lbracket :lparen :magic_comment :massign :method_add_arg :method_add_block :mlhs_add :mlhs_add_star :mlhs_new :mlhs_paren :module :mrhs_add :mrhs_add_star :mrhs_new :mrhs_new_from_args :next :nl :op :opassign :operator_ambiguous :param_error :params :paren :parse_error :period :program :qsymbols_add :qsymbols_beg :qsymbols_new :qwords_add :qwords_beg :qwords_new :rational :rbrace :rbracket :redo :regexp_add :regexp_beg :regexp_end :regexp_literal :regexp_new :rescue :rescue_mod :rest_param :retry :return :return0 :rparen :sclass :semicolon :sp :stmts_add :stmts_new :string_add :string_concat :string_content :string_dvar :string_embexpr :string_literal :super :symbeg :symbol :symbol_literal :symbols_add :symbols_beg :symbols_new :tlambda :tlambeg :top_const_field :top_const_ref :tstring_beg :tstring_content :tstring_end :unary :undef :unless :unless_mod :until :until_mod :var_alias :var_field :var_ref :vcall :void_stmt :when :while :while_mod :word_add :word_new :words_add :words_beg :words_new :words_sep :xstring_add :xstring_literal :xstring_new :yield :yield0 :zsuper

# on_BEGIN(block) (:BEGIN, in Ripper::PARSER_EVENTS)

Adds a global initialization hook, always with curly braces.

Ripper.sexp_raw("BEGIN { do_stuff }")
# [:program,
#  [:stmts_add,
#   [:stmts_new],
#   [:BEGIN,
#    [:stmts_add,
#     [:stmts_new],
#     [:vcall,
#      [:@ident, "do_stuff", [1, 8]]]]]]]

↑ top

# on_CHAR(string, position) (:CHAR, in Ripper::SCANNER_EVENTS)

A one-character string literal, with ?.

Ripper.lex("?a")
# [[[1, 0], :on_CHAR, "?a"]]

↑ top

# on_END(block) (:END, in Ripper::PARSER_EVENTS)

Adds a global shutdown hook, always with curly braces

Ripper.sexp_raw("END { do_stuff }")
# [:program,
#  [:stmts_add,
#   [:stmts_new],
#   [:END,
#    [:stmts_add,
#     [:stmts_new],
#     [:vcall,
#      [:@ident, "do_stuff", [1, 6]]]]]]]