# File rparsec/parser.rb, line 747 def token(*kinds, &proc) expected="#{kinds.join(' or ')} expected" recognizer = nil if kinds.length==1 kind = kinds[0] recognizer = satisfies(expected) do |tok| tok.respond_to? :kind, :text and kind == tok.kind end else recognizer = satisfies(expected) do |tok| tok.respond_to? :kind, :text and kinds.include? tok.kind end end recognizer = recognizer.map{|tok|proc.call(tok.text)} if proc recognizer end