#
# DO NOT MODIFY!!!!
# This file is automatically generated by Racc 1.4.6
# from Racc grammer file "".
#

require 'racc/parser.rb'

require 'strscan'

module NagiosParser
  module Status
    class Parser < Racc::Parser

module_eval(<<'...end parser.y/module_eval...', 'parser.y', 39)

def create_token(string)
  result = []
  inside = false
  scanner = StringScanner.new(string)

  until scanner.empty?
    case
    when scanner.scan(/\s+/)
      # ignore whitespace
    when scanner.scan(/#[^\n]*/)
      # ignore comments
    when (!inside and match = scanner.scan(/\w+/))
      result << [match, match]
    when match = scanner.scan(/\{/)
      inside = true
      result << [:OPEN, nil]
    when match = scanner.scan(/\}/)
      inside = false
      result << [:CLOSE, nil]
    when match = scanner.scan(/\w+\s*\=/)
      result << [:KEY, match.chop.gsub(/\s+$/, '')]
    when (inside and match = scanner.scan(/\d+$/))
      result << [:VALUE, match.to_i]
    when (inside and match = scanner.scan(/[^\n\}]+/))
      result << [:VALUE, match.gsub(/\s+$/, '')]
    else
      raise "Can't tokenize <#{scanner.peek(10)}>"
    end
  end

  result << [false, false]
end

attr_accessor :token

def self.parse(string)
  new.parse(string)
end

def parse(string)
  @result = {}
  @token = create_token(string)
  do_parse
  @result
end

def next_token
  @token.shift
end
...end parser.y/module_eval...
##### State transition tables begin ###

racc_action_table = [
    11,    19,    15,    13,    15,    18,     6,     7,     8,     9,
    10,     1,     2,     6,     7,     8,     9,    10,     1,     2,
    14 ]

racc_action_check = [
     3,    16,    16,     5,    13,    15,     3,     3,     3,     3,
     3,     3,     3,     0,     0,     0,     0,     0,     0,     0,
    11 ]

racc_action_pointer = [
     7,   nil,   nil,     0,   nil,     1,   nil,   nil,   nil,   nil,
   nil,    20,   nil,     0,   nil,     0,    -2,   nil,   nil,   nil,
   nil ]

racc_action_default = [
   -15,    -9,   -10,   -15,    -1,   -15,    -4,    -5,    -6,    -7,
    -8,   -15,    -2,   -15,    21,   -13,   -15,   -11,   -14,    -3,
   -12 ]

racc_goto_table = [
    17,     4,    16,    20,    12,     3 ]

racc_goto_check = [
     5,     2,     4,     5,     2,     1 ]

racc_goto_pointer = [
   nil,     5,     1,   nil,   -11,   -13 ]

racc_goto_default = [
   nil,   nil,   nil,     5,   nil,   nil ]

racc_reduce_table = [
  0, 0, :racc_error,
  1, 14, :_reduce_none,
  2, 14, :_reduce_none,
  4, 15, :_reduce_3,
  1, 16, :_reduce_none,
  1, 16, :_reduce_none,
  1, 16, :_reduce_none,
  1, 16, :_reduce_none,
  1, 16, :_reduce_none,
  1, 16, :_reduce_none,
  1, 16, :_reduce_none,
  1, 17, :_reduce_none,
  2, 17, :_reduce_12,
  1, 18, :_reduce_13,
  2, 18, :_reduce_14 ]

racc_reduce_n = 15

racc_shift_n = 21

racc_token_table = {
  false => 0,
  :error => 1,
  :OPEN => 2,
  :CLOSE => 3,
  :KEY => 4,
  :VALUE => 5,
  "hostcomment" => 6,
  "servicestatus" => 7,
  "info" => 8,
  "programstatus" => 9,
  "hoststatus" => 10,
  "contactstatus" => 11,
  "servicecomment" => 12 }

racc_nt_base = 13

racc_use_result_var = true

Racc_arg = [
  racc_action_table,
  racc_action_check,
  racc_action_default,
  racc_action_pointer,
  racc_goto_table,
  racc_goto_check,
  racc_goto_default,
  racc_goto_pointer,
  racc_nt_base,
  racc_reduce_table,
  racc_token_table,
  racc_shift_n,
  racc_reduce_n,
  racc_use_result_var ]

Racc_token_to_s_table = [
  "$end",
  "error",
  "OPEN",
  "CLOSE",
  "KEY",
  "VALUE",
  "\"hostcomment\"",
  "\"servicestatus\"",
  "\"info\"",
  "\"programstatus\"",
  "\"hoststatus\"",
  "\"contactstatus\"",
  "\"servicecomment\"",
  "$start",
  "types",
  "type",
  "type_names",
  "assignments",
  "assignment" ]

Racc_debug_parser = false

##### State transition tables end #####

# reduce 0 omitted

# reduce 1 omitted

# reduce 2 omitted

module_eval(<<'.,.,', 'parser.y', 11)
  def _reduce_3(val, _values, result)
            @result[val[0]] ||= []
	@result[val[0]] << val[2]
      
    result
  end
.,.,

# reduce 4 omitted

# reduce 5 omitted

# reduce 6 omitted

# reduce 7 omitted

# reduce 8 omitted

# reduce 9 omitted

# reduce 10 omitted

# reduce 11 omitted

module_eval(<<'.,.,', 'parser.y', 22)
  def _reduce_12(val, _values, result)
            val[1].each do |key, value|
          val[0][key] = value
        end
        result = val[0]
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 29)
  def _reduce_13(val, _values, result)
     result = {val[0] => nil}
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.y', 30)
  def _reduce_14(val, _values, result)
     result = {val[0] => val[1]} 
    result
  end
.,.,

def _reduce_none(val, _values, result)
  val[0]
end

    end   # class Parser
    end   # module Status
  end   # module NagiosParser