Class: Ripper::RubyBuilder
- Includes:
- Args, Array, Assignment, Block, Call, Case, Const, For, Hash, Identifier, If, Lexer, Literal, Method, Operator, Statements, String, Symbol, While
- Defined in:
- lib/ripper/ruby_builder.rb,
lib/ripper/ruby_builder/queue.rb,
lib/ripper/ruby_builder/stack.rb,
lib/ripper/ruby_builder/token.rb,
lib/ripper/ruby_builder/buffer.rb,
lib/ripper/ruby_builder/events/if.rb,
lib/ripper/ruby_builder/events/for.rb,
lib/ripper/ruby_builder/events/args.rb,
lib/ripper/ruby_builder/events/call.rb,
lib/ripper/ruby_builder/events/case.rb,
lib/ripper/ruby_builder/events/hash.rb,
lib/ripper/ruby_builder/events/array.rb,
lib/ripper/ruby_builder/events/block.rb,
lib/ripper/ruby_builder/events/const.rb,
lib/ripper/ruby_builder/events/lexer.rb,
lib/ripper/ruby_builder/events/while.rb,
lib/ripper/ruby_builder/events/method.rb,
lib/ripper/ruby_builder/events/string.rb,
lib/ripper/ruby_builder/events/symbol.rb,
lib/ripper/ruby_builder/events/literal.rb,
lib/ripper/ruby_builder/events/operator.rb,
lib/ripper/ruby_builder/events/assignment.rb,
lib/ripper/ruby_builder/events/identifier.rb,
lib/ripper/ruby_builder/events/statements.rb
Defined Under Namespace
Modules: Args, Array, Assignment, Block, Call, Case, Const, For, Hash, Identifier, If, Lexer, Literal, Method, Operator, Statements, String, Symbol, While Classes: Buffer, ParseError, Queue, Stack, Token
Constant Summary collapse
- NEWLINE =
[:@nl, :@ignored_nl]
- WHITESPACE =
[:@sp, :@comment] + NEWLINE
- OPENERS =
[:@lparen, :@lbracket, :@lbrace, :@class, :@module, :@def, :@begin, :@while, :@until, :@for, :@if, :@elsif, :@else, :@unless, :@case, :@when, :@embexpr_beg, :@do, :@rescue, :'@=', :'@::']
- KEYWORDS =
[:@alias, :@and, :@BEGIN, :@begin, :@break, :@case, :@class, :@def, :@defined, :@do, :@else, :@elsif, :@END, :@end, :@ensure, :@false, :@for, :@if, :@in, :@module, :@next, :@nil, :@not, :@or, :@redo, :@rescue, :@retry, :@return, :@self, :@super, :@then, :@true, :@undef, :@unless, :@until, :@when, :@while, :@yield]
- SEPARATORS =
[:@semicolon, :@comma]
- UNARY_OPERATORS =
[:'@+', :'@-', :'@!', :'@~', :@not, :'@+@', :'@-@']
- BINARY_OPERATORS =
[:'@**', :'@*', :'@/', :'@%', :'@+', :'@-', :'@<<', :'@>>', :'@&', :'@|', :'@^', :'@>', :'@>=', :'@<', :'@<=', :'@<=>', :'@==', :'@===', :'@!=', :'@=~', :'@!~', :'@&&', :'@||', :@and, :@or]
- TERNARY_OPERATORS =
[:'@?', :'@:']
- ASSIGN_OPERATORS =
[:'@=', :'@+=', :'@-=', :'@*=', :'@**=', :'@%=', :'@/=', :'@|=', :'@&=', :'@^=', :'@[]=', :'@||=', :'@&&=', :'@<<=', :'@>>=']
- ACCESS_OPERATORS =
[:'@[]']
- OPERATORS =
UNARY_OPERATORS + BINARY_OPERATORS + TERNARY_OPERATORS + ASSIGN_OPERATORS + ACCESS_OPERATORS
- @@filters =
[lambda { |src, file| file && File.extname(file) == '.erb' ? Erb::Stripper.new.to_ruby(src) : src }]
Instance Attribute Summary collapse
-
#filename ⇒ Object
readonly
Returns the value of attribute filename.
-
#src ⇒ Object
readonly
Returns the value of attribute src.
-
#stack ⇒ Object
readonly
Returns the value of attribute stack.
-
#string_stack ⇒ Object
readonly
Returns the value of attribute string_stack.
-
#trailing_whitespace ⇒ Object
readonly
Returns the value of attribute trailing_whitespace.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(src, filename = nil, lineno = nil) ⇒ RubyBuilder
constructor
A new instance of RubyBuilder.
Methods included from Lexer
#on___end__, #on_backtick, #on_comma, #on_comment, #on_embdoc, #on_embdoc_beg, #on_embdoc_end, #on_embexpr_beg, #on_embexpr_end, #on_embvar, #on_ignored_nl, #on_lbrace, #on_lbracket, #on_lparen, #on_nl, #on_op, #on_param_error, #on_parse_error, #on_period, #on_qwords_beg, #on_rbrace, #on_rbracket, #on_regexp_beg, #on_regexp_end, #on_rparen, #on_semicolon, #on_sp, #on_symbeg, #on_tstring_beg, #on_tstring_content, #on_tstring_end, #on_words_beg, #on_words_sep
Methods included from Statements
#on_body_stmt, #on_const_ref, #on_paren, #on_program, #on_stmts_add, #on_stmts_new, #on_var_field, #on_var_ref, #on_void_stmt
Methods included from Const
#on_class, #on_const_path_field, #on_const_path_ref, #on_module, #on_sclass, #on_top_const_field, #on_top_const_ref
Methods included from Method
Methods included from Call
#on_BEGIN, #on_END, #on_alias, #on_break, #on_call, #on_command, #on_command_call, #on_defined, #on_fcall, #on_field, #on_next, #on_redo, #on_retry, #on_return, #on_return0, #on_super, #on_undef, #on_var_alias, #on_yield, #on_yield0, #on_zsuper
Methods included from Block
#on_begin, #on_block_var, #on_brace_block, #on_do_block, #on_ensure, #on_method_add_block, #on_params, #on_rescue, #on_rescue_mod, #on_rest_param
Methods included from Args
#on_arg_paren, #on_args_add, #on_args_add_block, #on_args_add_star, #on_args_new, #on_blockarg, #on_method_add_arg
Methods included from Assignment
#on_assign, #on_massign, #on_mlhs_add, #on_mlhs_add_star, #on_mlhs_new, #on_mlhs_paren, #on_mrhs_add, #on_mrhs_add_star, #on_mrhs_new, #on_mrhs_new_from_args, #on_opassign
Methods included from Operator
#on_binary, #on_ifop, #on_unary
Methods included from If
#build_if, #on_else, #on_elsif, #on_if, #on_if_mod, #on_unless, #on_unless_mod
Methods included from Case
Methods included from For
Methods included from While
#on_until, #on_until_mod, #on_while, #on_while_mod
Methods included from Identifier
#on_backref, #on_const, #on_cvar, #on_gvar, #on_ident, #on_ivar
Methods included from Literal
#on_CHAR, #on_dot2, #on_dot3, #on_float, #on_int, #on_kw, #on_label
Methods included from String
#on_heredoc_beg, #on_heredoc_end, #on_heredoc_literal, #on_heredoc_new, #on_regexp_literal, #on_string_add, #on_string_concat, #on_string_content, #on_string_dvar, #on_string_embexpr, #on_string_literal, #on_word_add, #on_word_new, #on_xstring_add, #on_xstring_literal, #on_xstring_new
Methods included from Symbol
#on_dyna_symbol, #on_symbol, #on_symbol_literal
Methods included from Array
#on_aref, #on_aref_field, #on_array, #on_qwords_add, #on_qwords_new, #on_words_add, #on_words_end, #on_words_new
Methods included from Hash
#on_assoc_new, #on_assoclist_from_args, #on_bare_assoc_hash, #on_hash
Constructor Details
#initialize(src, filename = nil, lineno = nil) ⇒ RubyBuilder
Returns a new instance of RubyBuilder.
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/ripper/ruby_builder.rb', line 72 def initialize(src, filename = nil, lineno = nil) @src = src ||= filename && File.read(filename) || '' @filename = filename @stack = [] @stack = Stack.new @string_stack = [] src.gsub!(/([\s\n]*)\Z/) { |s| @trailing_whitespace = Ruby::Whitespace.new(s) and nil } src = filter(src, filename) super rescue ArgumentError => e p filename raise e end |
Instance Attribute Details
#filename ⇒ Object (readonly)
Returns the value of attribute filename.
70 71 72 |
# File 'lib/ripper/ruby_builder.rb', line 70 def filename @filename end |
#src ⇒ Object (readonly)
Returns the value of attribute src.
70 71 72 |
# File 'lib/ripper/ruby_builder.rb', line 70 def src @src end |
#stack ⇒ Object (readonly)
Returns the value of attribute stack.
70 71 72 |
# File 'lib/ripper/ruby_builder.rb', line 70 def stack @stack end |
#string_stack ⇒ Object (readonly)
Returns the value of attribute string_stack.
70 71 72 |
# File 'lib/ripper/ruby_builder.rb', line 70 def string_stack @string_stack end |
#trailing_whitespace ⇒ Object (readonly)
Returns the value of attribute trailing_whitespace.
70 71 72 |
# File 'lib/ripper/ruby_builder.rb', line 70 def trailing_whitespace @trailing_whitespace end |