class Shuwar::Parser
Public Class Methods
new(tok)
click to toggle source
# File lib/shuwar/parser.rb, line 5 def initialize(tok) @enum = tok.enum_for :each_token end
Public Instance Methods
each_object(&block)
click to toggle source
# File lib/shuwar/parser.rb, line 44 def each_object(&block) if block each_object! &block else enum_for :each_object! end end
each_object!() { |get_object| ... }
click to toggle source
# File lib/shuwar/parser.rb, line 38 def each_object! until input_end? yield get_object end end
get_object()
click to toggle source
# File lib/shuwar/parser.rb, line 9 def get_object case @enum.peek when Tokenizer::OpenParen @enum.next # Eat OpenParen tmp = [] until @enum.peek.is_a? Tokenizer::CloseParen tmp.push get_object end @enum.next # Eat CloseParen tmp when Tokenizer::Quote @enum.next # Eat Quote [:quote, get_object] when Tokenizer::CloseParen raise "Got some close paren here. Why?" else @enum.next end end
input_end?()
click to toggle source
# File lib/shuwar/parser.rb, line 29 def input_end? begin @enum.peek false rescue StopIteration true end end