class RDoc::Parser::RipperStateLex

Wrapper for Ripper lex states

Public Class Methods

end? (token)

Returns true if lex state will be END after token.

# File lib/rdoc/parser/ripper_state_lex.rb, line 299
def self.end?(token)
  (token[:state] & EXPR_END)
end
new (code)

New lexer for code.

# File lib/rdoc/parser/ripper_state_lex.rb, line 278
def initialize(code)
  @buf = []
  @heredoc_queue = []
  @inner_lex = InnerStateLex.new(code)
  @tokens = @inner_lex.parse([])
end
parse (code)

Returns tokens parsed from code.

# File lib/rdoc/parser/ripper_state_lex.rb, line 286
def self.parse(code)
  lex = self.new(code)
  tokens = []
  begin
    while tk = lex.get_squashed_tk
      tokens.push tk
    end
  rescue StopIteration
  end
  tokens
end