class RDoc::Parser::RipperStateLex

Wrapper for Ripper lex states

Public Class Methods

end?(token) click to toggle source

Returns true if lex state will be END after token.

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

New lexer for code.

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

Returns tokens parsed from code.

# File lib/rdoc/parser/ripper_state_lex.rb, line 584
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