class RDoc::Parser::RipperStateLex

Ripper 词法状态的包装器

公共类方法

end?(token) 点击切换源代码

如果词法状态在 token 之后变为 END,则返回 true

# File rdoc/parser/ripper_state_lex.rb, line 299
def self.end?(token)
  (token[:state] & EXPR_END)
end
new(code) 点击切换源代码

code 创建新的词法分析器。

# File 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) 点击切换源代码

返回从 code 解析的标记。

# File 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