#
# DO NOT MODIFY!!!!
# This file is automatically generated by Racc 1.6.0
# from Racc grammar file "".
#

require 'racc/parser.rb'
module KDL
  class Parser < Racc::Parser

module_eval(<<'...end kdl.yy/module_eval...', 'kdl.yy', 70)

  def parse(str, options = {})
    if options.fetch(:parse_types, true)
      @type_parsers = ::KDL::Types::MAPPING.merge(options.fetch(:type_parsers, {}))
    else
      @type_parsers = {}
    end
    @tokenizer = ::KDL::Tokenizer.new(str)
    do_parse
  end

  private

  def next_token
    @tokenizer.next_token
  end
...end kdl.yy/module_eval...
##### State transition tables begin ###

racc_action_table = [
   -49,     9,    18,    19,    20,    18,    19,    20,     5,     6,
    24,   -49,    60,   -49,    17,    64,     7,    17,   -49,    16,
    63,    18,    49,    50,    54,    55,    58,    59,    57,    39,
    39,    39,    63,    17,    18,    19,    20,    66,    45,    36,
    36,    36,     5,     6,    39,   -29,    17,    18,    19,    20,
     7,    16,   -30,    68,    36,     5,     6,    74,    78,    17,
    18,    19,    20,     7,    16,   nil,    35,     6,    18,    19,
    20,    79,    17,    34,     7,    31,    36,    16,    18,    49,
    50,    54,    55,    58,    59,    57,   nil,   nil,    60,    39,
    17,    70,    71,    54,    55,    58,    59,    57,    31,    36,
     5,     6,    17,     5,     6,     5,     6,    34,     7,   nil,
    34,     7,   nil,     7,     5,     6,     5,     6,     5,     6,
   nil,   nil,     7,   nil,     7,   nil,     7,    70,    71,    54,
    55,    58,    59,    57,    18,    19,    20 ]

racc_action_check = [
    35,     1,     2,     2,     2,    38,    38,    38,     0,     0,
     9,    35,    30,    35,     2,    36,     0,    38,    35,     2,
    35,    29,    29,    29,    29,    29,    29,    29,    29,    29,
    16,    31,    39,    29,     3,     3,     3,    41,    29,    29,
    16,    31,     3,     3,    45,    49,     3,    72,    72,    72,
     3,     3,    50,    51,    45,    72,    72,    63,    72,    72,
    73,    73,    73,    72,    72,   nil,    14,    14,    13,    13,
    13,    73,    73,    14,    14,    14,    14,    73,    67,    67,
    67,    67,    67,    67,    67,    67,   nil,   nil,    67,    47,
    67,    68,    68,    68,    68,    68,    68,    68,    47,    47,
    27,    27,    68,    28,    28,    32,    32,    27,    27,   nil,
    28,    28,   nil,    32,    34,    34,    60,    60,    62,    62,
   nil,   nil,    34,   nil,    60,   nil,    62,    53,    53,    53,
    53,    53,    53,    53,    17,    17,    17 ]

racc_action_pointer = [
    -2,     1,     0,    32,   nil,   nil,   nil,   nil,   nil,    10,
   nil,   nil,   nil,    66,    56,   nil,    20,   132,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,    90,    93,    19,
     0,    21,    95,   nil,   104,     0,     5,   nil,     3,    12,
   nil,    22,   nil,   nil,   nil,    34,   nil,    79,   nil,    29,
    36,    37,   nil,   124,   nil,   nil,   nil,   nil,   nil,   nil,
   106,   nil,   108,    47,   nil,   nil,   nil,    76,    88,   nil,
   nil,   nil,    45,    58,   nil,   nil,   nil,   nil,   nil,   nil ]

racc_action_default = [
   -54,   -55,    -1,    -2,    -3,   -49,   -50,   -51,   -52,   -55,
    -6,    -7,    -8,   -55,   -54,   -13,   -54,   -55,   -28,   -29,
   -30,    -4,    -5,   -53,    80,    -9,   -10,   -55,   -55,   -48,
   -55,   -54,   -23,   -24,   -25,   -42,   -43,   -47,   -55,   -42,
   -48,   -55,   -11,   -12,   -14,   -54,   -16,   -55,   -22,   -34,
   -35,   -55,   -32,   -55,   -36,   -37,   -38,   -39,   -40,   -41,
   -54,   -21,   -26,   -44,   -45,   -18,   -27,   -55,   -55,   -33,
   -34,   -35,   -55,   -55,   -46,   -15,   -17,   -31,   -20,   -19 ]

racc_goto_table = [
    21,    22,    23,     2,     3,     4,    41,    53,    29,    44,
    38,    46,    26,     1,    25,    27,    28,    69,    51,   nil,
   nil,   nil,   nil,    47,   nil,    42,    43,   nil,   nil,   nil,
   nil,    23,   nil,   nil,   nil,    65,   nil,   nil,    62,    67,
   nil,    47,   nil,   nil,   nil,    53,    53,    75,    77,    76,
   nil,   nil,   nil,   nil,   nil,   nil,    51,   nil,   nil,   nil,
   nil,    23,   nil,    73,    72,     4,   nil,   nil,   nil,    21,
    22,    23 ]

racc_goto_check = [
     5,     6,    21,     2,     3,     4,    13,     8,    14,    15,
    16,    17,    10,     1,     7,    11,    12,    19,    13,   nil,
   nil,   nil,   nil,    14,   nil,    10,    10,   nil,   nil,   nil,
   nil,    21,   nil,   nil,   nil,     5,   nil,   nil,     3,    16,
   nil,    14,   nil,   nil,   nil,     8,     8,    15,    15,    17,
   nil,   nil,   nil,   nil,   nil,   nil,    13,   nil,   nil,   nil,
   nil,    21,   nil,     2,     3,     4,   nil,   nil,   nil,     5,
     6,    21 ]

racc_goto_pointer = [
   nil,    13,     3,     4,     5,    -3,    -2,     1,   -22,   nil,
    -2,     1,     2,   -11,    -6,   -20,    -6,   -18,   nil,   -36,
   nil,    -1 ]

racc_goto_default = [
   nil,   nil,   nil,    32,    37,    10,    11,    12,    13,    14,
   nil,    61,    48,    15,    40,   nil,    30,   nil,    33,    52,
    56,     8 ]

racc_reduce_table = [
  0, 0, :racc_error,
  1, 22, :_reduce_1,
  1, 22, :_reduce_2,
  1, 23, :_reduce_3,
  2, 23, :_reduce_4,
  2, 23, :_reduce_5,
  2, 23, :_reduce_6,
  2, 23, :_reduce_7,
  1, 26, :_reduce_8,
  2, 26, :_reduce_9,
  2, 28, :_reduce_10,
  3, 28, :_reduce_11,
  3, 28, :_reduce_12,
  1, 30, :_reduce_13,
  3, 30, :_reduce_14,
  5, 30, :_reduce_15,
  3, 30, :_reduce_16,
  5, 30, :_reduce_17,
  3, 27, :_reduce_none,
  4, 32, :_reduce_19,
  4, 32, :_reduce_20,
  2, 33, :_reduce_none,
  2, 33, :_reduce_none,
  1, 31, :_reduce_none,
  1, 31, :_reduce_none,
  1, 39, :_reduce_none,
  2, 39, :_reduce_none,
  3, 29, :_reduce_27,
  1, 34, :_reduce_28,
  1, 34, :_reduce_29,
  1, 34, :_reduce_30,
  3, 38, :_reduce_31,
  1, 36, :_reduce_none,
  2, 36, :_reduce_33,
  1, 40, :_reduce_34,
  1, 40, :_reduce_35,
  1, 40, :_reduce_36,
  1, 40, :_reduce_37,
  1, 40, :_reduce_38,
  1, 40, :_reduce_39,
  1, 41, :_reduce_40,
  1, 41, :_reduce_41,
  1, 35, :_reduce_none,
  1, 35, :_reduce_none,
  2, 35, :_reduce_none,
  2, 35, :_reduce_none,
  3, 35, :_reduce_none,
  1, 37, :_reduce_none,
  1, 37, :_reduce_none,
  1, 42, :_reduce_none,
  1, 42, :_reduce_none,
  1, 42, :_reduce_none,
  1, 24, :_reduce_none,
  2, 24, :_reduce_none,
  0, 25, :_reduce_54 ]

racc_reduce_n = 55

racc_shift_n = 80

racc_token_table = {
  false => 0,
  :error => 1,
  :IDENT => 2,
  :STRING => 3,
  :RAWSTRING => 4,
  :INTEGER => 5,
  :FLOAT => 6,
  :TRUE => 7,
  :FALSE => 8,
  :NULL => 9,
  :WS => 10,
  :NEWLINE => 11,
  :LBRACE => 12,
  :RBRACE => 13,
  :LPAREN => 14,
  :RPAREN => 15,
  :EQUALS => 16,
  :SEMICOLON => 17,
  :EOF => 18,
  :SLASHDASH => 19,
  :ESCLINE => 20 }

racc_nt_base = 21

racc_use_result_var = false

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",
  "IDENT",
  "STRING",
  "RAWSTRING",
  "INTEGER",
  "FLOAT",
  "TRUE",
  "FALSE",
  "NULL",
  "WS",
  "NEWLINE",
  "LBRACE",
  "RBRACE",
  "LPAREN",
  "RPAREN",
  "EQUALS",
  "SEMICOLON",
  "EOF",
  "SLASHDASH",
  "ESCLINE",
  "$start",
  "document",
  "nodes",
  "linespaces",
  "none",
  "node",
  "empty_node",
  "untyped_node",
  "type",
  "node_decl",
  "node_term",
  "node_children",
  "empty_children",
  "identifier",
  "ws",
  "value",
  "ws_star",
  "property",
  "semicolon_term",
  "untyped_value",
  "boolean",
  "linespace" ]

Racc_debug_parser = false

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

# reduce 0 omitted

module_eval(<<'.,.,', 'kdl.yy', 14)
  def _reduce_1(val, _values)
     KDL::Document.new(val[0])
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 15)
  def _reduce_2(val, _values)
     KDL::Document.new([])
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 17)
  def _reduce_3(val, _values)
     []
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 18)
  def _reduce_4(val, _values)
     [val[1]]
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 19)
  def _reduce_5(val, _values)
     []
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 20)
  def _reduce_6(val, _values)
     [*val[0], val[1]]
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 21)
  def _reduce_7(val, _values)
     val[0]
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 22)
  def _reduce_8(val, _values)
     val[0]
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 23)
  def _reduce_9(val, _values)
     val[1].as_type(val[0], @type_parsers.fetch(val[0], nil))
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 24)
  def _reduce_10(val, _values)
     val[0].tap { |x| x.children = [] }
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 25)
  def _reduce_11(val, _values)
     val[0].tap { |x| x.children = val[1] }
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 26)
  def _reduce_12(val, _values)
     val[0].tap { |x| x.children = [] }
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 27)
  def _reduce_13(val, _values)
     KDL::Node.new(val[0])
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 28)
  def _reduce_14(val, _values)
     val[0].tap { |x| x.arguments << val[2] }
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 29)
  def _reduce_15(val, _values)
     val[0]
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 30)
  def _reduce_16(val, _values)
     val[0].tap { |x| x.properties[val[2][0]] = val[2][1] }
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 31)
  def _reduce_17(val, _values)
     val[0]
  end
.,.,

# reduce 18 omitted

module_eval(<<'.,.,', 'kdl.yy', 33)
  def _reduce_19(val, _values)
     val[2]
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 34)
  def _reduce_20(val, _values)
     []
  end
.,.,

# reduce 21 omitted

# reduce 22 omitted

# reduce 23 omitted

# reduce 24 omitted

# reduce 25 omitted

# reduce 26 omitted

module_eval(<<'.,.,', 'kdl.yy', 40)
  def _reduce_27(val, _values)
     val[1]
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 42)
  def _reduce_28(val, _values)
     val[0].value
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 43)
  def _reduce_29(val, _values)
     val[0].value
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 44)
  def _reduce_30(val, _values)
     val[0].value
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 46)
  def _reduce_31(val, _values)
     [val[0], val[2]]
  end
.,.,

# reduce 32 omitted

module_eval(<<'.,.,', 'kdl.yy', 49)
  def _reduce_33(val, _values)
     val[1].as_type(val[0], @type_parsers.fetch(val[0], nil))
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 51)
  def _reduce_34(val, _values)
     KDL::Value::String.new(val[0].value)
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 52)
  def _reduce_35(val, _values)
     KDL::Value::String.new(val[0].value)
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 53)
  def _reduce_36(val, _values)
     KDL::Value::Int.new(val[0].value)
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 54)
  def _reduce_37(val, _values)
     KDL::Value::Float.new(val[0].value, format: val[0].meta[:format])
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 55)
  def _reduce_38(val, _values)
     KDL::Value::Boolean.new(val[0])
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 56)
  def _reduce_39(val, _values)
     KDL::Value::Null
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 58)
  def _reduce_40(val, _values)
     true
  end
.,.,

module_eval(<<'.,.,', 'kdl.yy', 59)
  def _reduce_41(val, _values)
     false
  end
.,.,

# reduce 42 omitted

# reduce 43 omitted

# reduce 44 omitted

# reduce 45 omitted

# reduce 46 omitted

# reduce 47 omitted

# reduce 48 omitted

# reduce 49 omitted

# reduce 50 omitted

# reduce 51 omitted

# reduce 52 omitted

# reduce 53 omitted

module_eval(<<'.,.,', 'kdl.yy', 66)
  def _reduce_54(val, _values)
     nil
  end
.,.,

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

  end   # class Parser
end   # module KDL
