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

require 'racc/parser.rb'


module RDL::Type

class Parser < Racc::Parser

module_eval(<<'...end parser.racc/module_eval...', 'parser.racc', 167)

def initialize()
  @yydebug = true
end

...end parser.racc/module_eval...
##### State transition tables begin ###

racc_action_table = [
    22,    96,    20,    21,    99,    23,    30,    33,    15,    17,
    43,     7,    12,   104,    18,    80,    19,    64,    34,    14,
    32,    35,    22,    32,    20,    21,     7,    23,    30,    33,
    15,    17,   106,    42,    12,    42,    18,   108,    19,   109,
    34,    14,    32,    35,    47,    86,    45,    46,   111,    87,
    47,    43,    45,    46,    48,     7,   114,    43,     5,     6,
    48,   116,     7,   117,    50,    80,    22,   118,    20,    21,
    50,    23,     7,    16,    15,    17,     8,     7,    37,    38,
    18,    22,    19,    20,    21,    14,    23,    40,    16,    15,
    17,    42,    58,    59,    60,    18,    22,    19,    20,    21,
    14,    23,    61,    16,    15,    17,    62,    67,    12,    68,
    18,    22,    19,    20,    21,    14,    23,    70,    16,    15,
    17,    64,    72,    12,    73,    18,    74,    19,    75,    93,
    14,    22,    76,    20,    21,    78,    23,    79,    16,    15,
    17,    81,    82,    83,    84,    18,    22,    19,    20,    21,
    14,    23,    90,    16,    15,    17,   nil,   nil,   nil,   nil,
    18,    22,    19,    20,    21,    14,    23,   nil,    16,    15,
    17,   nil,   nil,    12,   nil,    18,    22,    19,    20,    21,
    14,    23,   nil,    16,    15,    17,   nil,   nil,    12,   nil,
    18,    22,    19,    20,    21,    14,    23,   nil,    16,    15,
    17,   nil,   nil,   nil,   nil,    18,    22,    19,    20,    21,
    14,    23,   nil,    16,    15,    17,   nil,   nil,   nil,   nil,
    18,    22,    19,    20,    21,    14,    23,   nil,    16,    15,
    17,   nil,   nil,    12,   nil,    18,    22,    19,    20,    21,
    14,    23,   nil,    16,    15,    17,   nil,   nil,    12,   nil,
    18,    22,    19,    20,    21,    14,    23,   nil,    16,    15,
    17,   nil,   nil,    12,   nil,    18,    22,    19,    20,    21,
    14,    23,   nil,    16,    15,    17,   nil,   nil,    12,   nil,
    18,    22,    19,    20,    21,    14,    23,   nil,    16,    15,
    17,   nil,   nil,    12,   nil,    18,    22,    19,    20,    21,
    14,    23,   nil,    16,    15,    17,   nil,   nil,    12,   nil,
    18,    22,    19,    20,    21,    14,    23,   nil,    16,    15,
    17,   nil,   nil,    12,   nil,    18,    22,    19,    20,    21,
    14,    23,   nil,    53,    15,    17,   nil,   nil,    12,   nil,
    18,   nil,    19,    57,    22,    14,    20,    21,   nil,    23,
   nil,    16,    15,    17,   nil,   nil,   nil,   nil,    18,   nil,
    19 ]

racc_action_check = [
    60,    71,    60,    60,    74,    60,    60,    60,    60,    60,
    62,    80,    60,    85,    60,    53,    60,    33,    60,    60,
    60,    60,     7,    62,     7,     7,    86,     7,     7,     7,
     7,     7,    87,    53,     7,    33,     7,    99,     7,   102,
     7,     7,     7,     7,    76,    59,    76,    76,   105,    59,
    18,    76,    18,    18,    76,   106,   109,    18,     0,     0,
    18,   110,    18,   112,    76,   114,    73,   116,    73,    73,
    18,    73,     0,    73,    73,    73,     1,     6,     8,    10,
    73,    75,    73,    75,    75,    73,    75,    13,    75,    75,
    75,    16,    22,    25,    28,    75,    34,    75,    34,    34,
    75,    34,    29,    34,    34,    34,    31,    38,    34,    39,
    34,    64,    34,    64,    64,    34,    64,    41,    64,    64,
    64,    43,    45,    64,    46,    64,    47,    64,    48,    64,
    64,    70,    49,    70,    70,    51,    70,    52,    70,    70,
    70,    54,    55,    56,    58,    70,    72,    70,    72,    72,
    70,    72,    61,    72,    72,    72,   nil,   nil,   nil,   nil,
    72,   104,    72,   104,   104,    72,   104,   nil,   104,   104,
   104,   nil,   nil,   104,   nil,   104,    12,   104,    12,    12,
   104,    12,   nil,    12,    12,    12,   nil,   nil,    12,   nil,
    12,   108,    12,   108,   108,    12,   108,   nil,   108,   108,
   108,   nil,   nil,   nil,   nil,   108,    40,   108,    40,    40,
   108,    40,   nil,    40,    40,    40,   nil,   nil,   nil,   nil,
    40,     5,    40,     5,     5,    40,     5,   nil,     5,     5,
     5,   nil,   nil,     5,   nil,     5,    42,     5,    42,    42,
     5,    42,   nil,    42,    42,    42,   nil,   nil,    42,   nil,
    42,    32,    42,    32,    32,    42,    32,   nil,    32,    32,
    32,   nil,   nil,    32,   nil,    32,    81,    32,    81,    81,
    32,    81,   nil,    81,    81,    81,   nil,   nil,    81,   nil,
    81,    50,    81,    50,    50,    81,    50,   nil,    50,    50,
    50,   nil,   nil,    50,   nil,    50,    93,    50,    93,    93,
    50,    93,   nil,    93,    93,    93,   nil,   nil,    93,   nil,
    93,    35,    93,    35,    35,    93,    35,   nil,    35,    35,
    35,   nil,   nil,    35,   nil,    35,    19,    35,    19,    19,
    35,    19,   nil,    19,    19,    19,   nil,   nil,    19,   nil,
    19,   nil,    19,    19,    14,    19,    14,    14,   nil,    14,
   nil,    14,    14,    14,   nil,   nil,   nil,   nil,    14,   nil,
    14 ]

racc_action_pointer = [
    53,    76,   nil,   nil,   nil,   214,    58,    15,    78,   nil,
    65,   nil,   169,    83,   337,   nil,    62,   nil,    43,   319,
   nil,   nil,    78,   nil,   nil,    73,   nil,   nil,    92,    88,
   nil,   104,   244,     6,    89,   304,   nil,   nil,    89,    89,
   199,   113,   229,   110,   nil,   114,   116,   112,   120,   130,
   274,   113,   115,     4,   139,   118,   119,   nil,   122,    24,
    -7,   134,    -4,   nil,   104,   nil,   nil,   nil,   nil,   nil,
   124,   -29,   139,    59,   -18,    74,    37,   nil,   nil,   nil,
    -8,   259,   nil,   nil,   nil,    10,     7,    11,   nil,   nil,
   nil,   nil,   nil,   289,   nil,   nil,   nil,   nil,   nil,    29,
   nil,   nil,    37,   nil,   154,    26,    36,   nil,   184,    42,
    47,   nil,    41,   nil,    54,   nil,    49,   nil,   nil ]

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

racc_goto_table = [
     2,    10,    56,    36,    69,    52,    24,    44,    39,    55,
    41,    27,     3,     4,    26,     9,    25,    85,    51,    92,
     1,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    63,   nil,
    65,    66,    71,   nil,    95,   nil,    97,    98,   nil,   100,
   nil,   nil,   nil,   nil,   nil,   nil,    77,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,    36,   nil,   nil,   nil,
    94,   nil,   nil,   101,    89,    44,    91,    88,   nil,   nil,
   nil,   103,   113,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   102,   nil,   nil,   nil,   nil,   nil,   105,   nil,   nil,   107,
   nil,   nil,   115,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   110,   nil,   nil,   nil,   nil,   nil,   112 ]

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

racc_goto_pointer = [
   nil,    20,     0,    12,    13,    10,     9,   -42,    -4,   -17,
     7,     4,   nil,   nil,   -11,   -45,   -36,   -10,   nil,   -13,
    -4 ]

racc_goto_default = [
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    54,   nil,
   nil,   nil,    28,    29,    31,   nil,    11,   nil,    49,   nil,
    13 ]

racc_reduce_table = [
  0, 0, :racc_error,
  1, 33, :_reduce_1,
  1, 33, :_reduce_2,
  1, 33, :_reduce_3,
  2, 35, :_reduce_4,
  2, 36, :_reduce_5,
  6, 34, :_reduce_6,
  7, 34, :_reduce_7,
  8, 34, :_reduce_8,
  3, 41, :_reduce_9,
  5, 41, :_reduce_10,
  0, 38, :_reduce_11,
  1, 38, :_reduce_12,
  1, 38, :_reduce_13,
  1, 42, :_reduce_14,
  3, 42, :_reduce_15,
  3, 42, :_reduce_16,
  1, 44, :_reduce_17,
  3, 44, :_reduce_18,
  2, 44, :_reduce_19,
  1, 44, :_reduce_20,
  1, 43, :_reduce_21,
  2, 43, :_reduce_22,
  3, 43, :_reduce_23,
  3, 46, :_reduce_24,
  2, 45, :_reduce_25,
  2, 45, :_reduce_26,
  1, 45, :_reduce_27,
  2, 47, :_reduce_28,
  1, 47, :_reduce_29,
  0, 39, :_reduce_30,
  3, 39, :_reduce_31,
  4, 39, :_reduce_32,
  3, 37, :_reduce_33,
  2, 37, :_reduce_34,
  1, 37, :_reduce_35,
  1, 40, :_reduce_36,
  3, 40, :_reduce_37,
  1, 49, :_reduce_38,
  3, 49, :_reduce_39,
  0, 50, :_reduce_none,
  1, 50, :_reduce_41,
  3, 50, :_reduce_42,
  3, 50, :_reduce_43,
  5, 50, :_reduce_44,
  3, 50, :_reduce_45,
  1, 51, :_reduce_46,
  2, 51, :_reduce_47,
  3, 51, :_reduce_48,
  1, 48, :_reduce_49,
  3, 48, :_reduce_50,
  2, 48, :_reduce_51,
  4, 48, :_reduce_52,
  1, 52, :_reduce_53,
  1, 52, :_reduce_54,
  1, 52, :_reduce_55,
  4, 52, :_reduce_56,
  3, 52, :_reduce_57,
  3, 52, :_reduce_58,
  3, 52, :_reduce_59,
  2, 52, :_reduce_60,
  3, 52, :_reduce_61,
  1, 52, :_reduce_62,
  1, 52, :_reduce_63,
  3, 52, :_reduce_64,
  1, 52, :_reduce_65 ]

racc_reduce_n = 66

racc_shift_n = 119

racc_token_table = {
  false => 0,
  :error => 1,
  :COMMA => 2,
  :RARROW => 3,
  :OR => 4,
  :HASH_TYPE => 5,
  :HASH_QUERY => 6,
  :CONST_BEGIN => 7,
  :RASSOC => 8,
  :FIXNUM => 9,
  :FLOAT => 10,
  :COLON => 11,
  :DOT => 12,
  :DOTS => 13,
  :ID => 14,
  :SYMBOL => 15,
  :SPECIAL_ID => 16,
  :STRING => 17,
  :PREDICATE => 18,
  :LPAREN => 19,
  :RPAREN => 20,
  :LBRACE => 21,
  :RBRACE => 22,
  :LBRACKET => 23,
  :RBRACKET => 24,
  :QUERY => 25,
  :BANG => 26,
  :STARSTAR => 27,
  :STAR => 28,
  :LESS => 29,
  :GREATER => 30,
  :EOF => 31 }

racc_nt_base = 32

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",
  "COMMA",
  "RARROW",
  "OR",
  "HASH_TYPE",
  "HASH_QUERY",
  "CONST_BEGIN",
  "RASSOC",
  "FIXNUM",
  "FLOAT",
  "COLON",
  "DOT",
  "DOTS",
  "ID",
  "SYMBOL",
  "SPECIAL_ID",
  "STRING",
  "PREDICATE",
  "LPAREN",
  "RPAREN",
  "LBRACE",
  "RBRACE",
  "LBRACKET",
  "RBRACKET",
  "QUERY",
  "BANG",
  "STARSTAR",
  "STAR",
  "LESS",
  "GREATER",
  "EOF",
  "$start",
  "entry",
  "method_type",
  "bare_type",
  "query_type",
  "spec_type_expr",
  "arg_list",
  "block",
  "type_expr",
  "method_sig_list",
  "nonempty_arg_list",
  "named_arg_list",
  "arg",
  "base_arg",
  "named_arg",
  "base_arg_query_only",
  "union_type",
  "type_expr_comma_list",
  "hash_expr",
  "hash_expr_comma_list",
  "single_type" ]

Racc_debug_parser = false

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

# reduce 0 omitted

module_eval(<<'.,.,', 'parser.racc', 18)
  def _reduce_1(val, _values, result)
     result = val[0] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 19)
  def _reduce_2(val, _values, result)
     result = val[0] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 20)
  def _reduce_3(val, _values, result)
     result = val[0] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 23)
  def _reduce_4(val, _values, result)
     result = val[1] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 26)
  def _reduce_5(val, _values, result)
     result = RDL::Type::MethodType.new val[1].args, val[1].block, val[1].ret 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 30)
  def _reduce_6(val, _values, result)
            result = RDL::Type::MethodType.new val[1], val[3], val[5]
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 33)
  def _reduce_7(val, _values, result)
            result = RDL::Type::MethodType.new val[1], val[3], RDL::Type::AnnotatedArgType.new(val[6], val[5])
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 36)
  def _reduce_8(val, _values, result)
            result = RDL::Type::MethodType.new val[1], val[3], RDL::Type::DependentArgType.new(val[6], val[5], val[7])
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 40)
  def _reduce_9(val, _values, result)
     result = [val[0].to_sym, val[2]] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 41)
  def _reduce_10(val, _values, result)
     result = [val[0].to_sym, val[2]] + val[4] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 44)
  def _reduce_11(val, _values, result)
     result = [] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 45)
  def _reduce_12(val, _values, result)
     result = val[0] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 47)
  def _reduce_13(val, _values, result)
          result = [RDL::Type::FiniteHashType.new(Hash[*val[0][0]], val[0][1])]
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 50)
  def _reduce_14(val, _values, result)
     result = [val[0]] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 51)
  def _reduce_15(val, _values, result)
     result = val[2].unshift val[0] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 52)
  def _reduce_16(val, _values, result)
     # named arg list must come last
      result = [val[0], RDL::Type::FiniteHashType.new(Hash[*val[2][0]], val[2][1])]
      
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 56)
  def _reduce_17(val, _values, result)
     result = val[0] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 57)
  def _reduce_18(val, _values, result)
     result = RDL::Type::DependentArgType.new(val[1], val[0], val[2]) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 58)
  def _reduce_19(val, _values, result)
     result = RDL::Type::AnnotatedArgType.new(val[1], val[0]) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 59)
  def _reduce_20(val, _values, result)
     result = RDL::Type::DotsQuery.new 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 61)
  def _reduce_21(val, _values, result)
     result = [val[0], nil] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 62)
  def _reduce_22(val, _values, result)
     result = [[], val[1]] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 63)
  def _reduce_23(val, _values, result)
     result = [val[0] + val[2][0], val[2][1]] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 65)
  def _reduce_24(val, _values, result)
     result = [val[0].to_sym, val[2]] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 68)
  def _reduce_25(val, _values, result)
     result = RDL::Type::OptionalType.new val[1] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 69)
  def _reduce_26(val, _values, result)
     result = RDL::Type::VarargType.new val[1] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 70)
  def _reduce_27(val, _values, result)
     result = val[0] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 72)
  def _reduce_28(val, _values, result)
     result = RDL::Type::OptionalType.new val[1] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 73)
  def _reduce_29(val, _values, result)
     result = val[0] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 76)
  def _reduce_30(val, _values, result)
     result = nil 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 77)
  def _reduce_31(val, _values, result)
     result = val[1] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 78)
  def _reduce_32(val, _values, result)
     result = RDL::Type::OptionalType.new val[2] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 81)
  def _reduce_33(val, _values, result)
     result = RDL::Type::DependentArgType.new(val[1], val[0], val[2]) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 82)
  def _reduce_34(val, _values, result)
     result = RDL::Type::AnnotatedArgType.new(val[1], val[0]) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 83)
  def _reduce_35(val, _values, result)
     result = val[0] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 86)
  def _reduce_36(val, _values, result)
     result = val[0] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 87)
  def _reduce_37(val, _values, result)
     result = val[1] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 90)
  def _reduce_38(val, _values, result)
     result = [val[0]] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 91)
  def _reduce_39(val, _values, result)
     result = [val[0]] + val[2] 
    result
  end
.,.,

# reduce 40 omitted

module_eval(<<'.,.,', 'parser.racc', 94)
  def _reduce_41(val, _values, result)
     result = val[0] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 95)
  def _reduce_42(val, _values, result)
     result = [val[0].to_i, val[2]] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 96)
  def _reduce_43(val, _values, result)
     result = [val[0].to_f, val[2]] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 98)
  def _reduce_44(val, _values, result)
        result = [Kernel.const_get(val[0]), val[2]]
  
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 100)
  def _reduce_45(val, _values, result)
     result = [val[0], val[2]] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 103)
  def _reduce_46(val, _values, result)
     result = [val[0], nil] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 104)
  def _reduce_47(val, _values, result)
     result = [[], val[1]] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 105)
  def _reduce_48(val, _values, result)
     result = [val[0] + val[2][0], val[2][1]] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 108)
  def _reduce_49(val, _values, result)
     result = val[0] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 109)
  def _reduce_50(val, _values, result)
     result = RDL::Type::UnionType.new val[0], val[2] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 110)
  def _reduce_51(val, _values, result)
     result = RDL::Type::NonNullType.new val[1] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 111)
  def _reduce_52(val, _values, result)
     result = RDL::Type::UnionType.new(RDL::Type::NonNullType.new(val[1]), val[3]) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 114)
  def _reduce_53(val, _values, result)
     result = RDL::Type::SingletonType.new(val[0].to_sym) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 116)
  def _reduce_54(val, _values, result)
          if val[0] == 'nil' then
        result = RDL.types[:nil]
      elsif val[0] == 'true' then
        result = RDL.types[:true]
      elsif val[0] == 'false'
        result = RDL.types[:false]
      elsif val[0] =~ /^[a-z_]+\w*\'?/ then
        result = RDL::Type::VarType.new(val[0].to_sym)
      else
        result = RDL::Type::NominalType.new val[0]
      end
    
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 129)
  def _reduce_55(val, _values, result)
          if RDL.special_types.has_key? val[0] then
        result = RDL.special_types[val[0]]
      else
        fail "Unexpected special type identifier #{val[0]}"
      end
    
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 136)
  def _reduce_56(val, _values, result)
          n = RDL::Type::NominalType.new(val[0])
      result = RDL::Type::GenericType.new(n, *val[2])
    
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 139)
  def _reduce_57(val, _values, result)
     result = val[1] 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 141)
  def _reduce_58(val, _values, result)
          result = RDL::Type::TupleType.new(*val[1])
    
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 144)
  def _reduce_59(val, _values, result)
          result = RDL::Type::StructuralType.new(Hash[*val[1]])
    
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 147)
  def _reduce_60(val, _values, result)
          result = RDL::Type::TupleType.new
    
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 150)
  def _reduce_61(val, _values, result)
          result = RDL::Type::FiniteHashType.new(Hash[*val[1][0]], val[1][1])
    
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 152)
  def _reduce_62(val, _values, result)
     result = RDL::Type::SingletonType.new(val[0].to_i) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 153)
  def _reduce_63(val, _values, result)
     result = RDL::Type::SingletonType.new(val[0].to_f) 
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 155)
  def _reduce_64(val, _values, result)
          result =  RDL::Type::SingletonType.new(Kernel.const_get(val[1]))
    
    result
  end
.,.,

module_eval(<<'.,.,', 'parser.racc', 159)
  def _reduce_65(val, _values, result)
     result = RDL::Type::WildQuery.new 
    result
  end
.,.,

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

end   # class Parser


end
