class RDoc::Parser::RipperStateLex::InnerStateLex
Attributes
lex_state[RW]
Public Class Methods
new(code)
click to toggle source
Calls superclass method
Ripper::Filter::new
# File lib/rdoc/parser/ripper_state_lex.rb, line 32 def initialize(code) @lex_state = EXPR_BEG @in_fname = false @continue = false reset super(code) end
Public Instance Methods
on_CHAR(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 148 def on_CHAR(tok, data) @lex_state = EXPR_END data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_backref(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 223 def on_backref(tok, data) @lex_state = EXPR_END on_variables(__method__, tok, data) end
on_comma(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 274 def on_comma(tok, data) @lex_state = EXPR_BEG | EXPR_LABEL if (EXPR_ARG_ANY & @lex_state) != 0 data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_comment(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 279 def on_comment(tok, data) @lex_state = EXPR_BEG unless (EXPR_LABEL & @lex_state) != 0 data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_const(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 258 def on_const(tok, data) case @lex_state when EXPR_FNAME @lex_state = EXPR_ENDFN when EXPR_CLASS, EXPR_CMDARG, EXPR_MID @lex_state = EXPR_ARG else @lex_state = EXPR_CMDARG end data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_cvar(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 213 def on_cvar(tok, data) @lex_state = EXPR_END on_variables(__method__, tok, data) end
on_default(event, tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 301 def on_default(event, tok, data) reset data << Token.new(lineno, column, event, tok, @lex_state) end
on_float(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 163 def on_float(tok, data) @lex_state = EXPR_END | EXPR_ENDARG data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_gvar(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 218 def on_gvar(tok, data) @lex_state = EXPR_END on_variables(__method__, tok, data) end
on_heredoc_beg(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 289 def on_heredoc_beg(tok, data) data << Token.new(lineno, column, __method__, tok, @lex_state) @lex_state = EXPR_END data end
on_heredoc_end(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 295 def on_heredoc_end(tok, data) data << Token.new(lineno, column, __method__, tok, @lex_state) @lex_state = EXPR_BEG data end
on_ident(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 204 def on_ident(tok, data) on_variables(__method__, tok, data) end
on_ignored_nl(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 56 def on_ignored_nl(tok, data) case @lex_state when EXPR_FNAME, EXPR_DOT @continue = true else @continue = false @lex_state = EXPR_BEG unless (EXPR_LABEL & @lex_state) != 0 end data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_ignored_sp(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 284 def on_ignored_sp(tok, data) @lex_state = EXPR_BEG unless (EXPR_LABEL & @lex_state) != 0 data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_imaginary(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 173 def on_imaginary(tok, data) @lex_state = EXPR_END | EXPR_ENDARG data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_int(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 158 def on_int(tok, data) @lex_state = EXPR_END | EXPR_ENDARG data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_ivar(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 208 def on_ivar(tok, data) @lex_state = EXPR_END on_variables(__method__, tok, data) end
on_kw(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 109 def on_kw(tok, data) case tok when 'class' @lex_state = EXPR_CLASS @in_fname = true when 'def' @lex_state = EXPR_FNAME @continue = true @in_fname = true when 'if', 'unless', 'while', 'until' if ((EXPR_MID | EXPR_END | EXPR_ENDARG | EXPR_ENDFN | EXPR_ARG | EXPR_CMDARG) & @lex_state) != 0 # postfix if @lex_state = EXPR_BEG | EXPR_LABEL else @lex_state = EXPR_BEG end when 'begin', 'case', 'when' @lex_state = EXPR_BEG when 'return', 'break' @lex_state = EXPR_MID else if @lex_state == EXPR_FNAME @lex_state = EXPR_END else @lex_state = EXPR_END end end data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_lbrace(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 238 def on_lbrace(tok, data) @lex_state = EXPR_LABEL | EXPR_BEG data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_lbracket(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 248 def on_lbracket(tok, data) @lex_state = EXPR_LABEL | EXPR_BEG data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_lparen(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 228 def on_lparen(tok, data) @lex_state = EXPR_LABEL | EXPR_BEG data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_nl(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 45 def on_nl(tok, data) case @lex_state when EXPR_FNAME, EXPR_DOT @continue = true else @continue = false @lex_state = EXPR_BEG unless (EXPR_LABEL & @lex_state) != 0 end data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_op(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 67 def on_op(tok, data) case tok when '&', '|', '!', '!=', '!~' case @lex_state when EXPR_FNAME, EXPR_DOT @lex_state = EXPR_ARG else @lex_state = EXPR_BEG end when '<<' # TODO next token? case @lex_state when EXPR_FNAME, EXPR_DOT @lex_state = EXPR_ARG else @lex_state = EXPR_BEG end when '?' @lex_state = EXPR_BEG when '&&', '||', '+=', '-=', '*=', '**=', '&=', '|=', '^=', '<<=', '>>=', '||=', '&&=' @lex_state = EXPR_BEG when '::' case @lex_state when EXPR_ARG, EXPR_CMDARG @lex_state = EXPR_DOT when EXPR_FNAME, EXPR_DOT @lex_state = EXPR_ARG else @lex_state = EXPR_BEG end else case @lex_state when EXPR_FNAME, EXPR_DOT @lex_state = EXPR_ARG else @lex_state = EXPR_BEG end end data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_period(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 153 def on_period(tok, data) @lex_state = EXPR_DOT data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_rational(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 168 def on_rational(tok, data) @lex_state = EXPR_END | EXPR_ENDARG data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_rbrace(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 243 def on_rbrace(tok, data) @lex_state = EXPR_ENDARG data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_rbracket(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 253 def on_rbracket(tok, data) @lex_state = EXPR_ENDARG data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_rparen(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 233 def on_rparen(tok, data) @lex_state = EXPR_ENDFN data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_sp(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 270 def on_sp(tok, data) data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_symbeg(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 178 def on_symbeg(tok, data) @lex_state = EXPR_FNAME @continue = true @in_fname = true data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_tstring_beg(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 138 def on_tstring_beg(tok, data) @lex_state = EXPR_BEG data << Token.new(lineno, column, __method__, tok, @lex_state) end
on_tstring_end(tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 143 def on_tstring_end(tok, data) @lex_state = EXPR_END | EXPR_ENDARG data << Token.new(lineno, column, __method__, tok, @lex_state) end
reset()
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 40 def reset @command_start = false @cmd_state = @command_start end
Private Instance Methods
on_variables(event, tok, data)
click to toggle source
# File lib/rdoc/parser/ripper_state_lex.rb, line 185 def on_variables(event, tok, data) if @in_fname @lex_state = EXPR_ENDFN @in_fname = false @continue = false elsif @continue case @lex_state when EXPR_DOT @lex_state = EXPR_ARG else @lex_state = EXPR_ENDFN @continue = false end else @lex_state = EXPR_CMDARG end data << Token.new(lineno, column, event, tok, @lex_state) end