HEX
Server: Apache
System: Linux s198.coreserver.jp 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025 x86_64
User: nagasaki (10062)
PHP: 7.1.33
Disabled: NONE
Upload Files
File: //usr/local/rvm/src/ruby-2.7.4/test/racc/regress/edtf
#
# DO NOT MODIFY!!!!
# This file is automatically generated by Racc 1.4.16
# from Racc grammar file "".
#

require 'racc/parser.rb'

require 'strscan'

module EDTF
  class Parser < Racc::Parser

module_eval(<<'...end edtf.y/module_eval...', 'edtf.y', 468)

  @defaults = {
    :level => 2,
    :debug => false
  }.freeze

  class << self; attr_reader :defaults; end

  attr_reader :options

  def initialize(options = {})
    @options = Parser.defaults.merge(options)
  end

  def debug?
    !!(options[:debug] || ENV['DEBUG'])
  end

  def parse(input)
    parse!(input)
  rescue => e
    warn e.message if debug?
    nil
  end

  def parse!(input)
    @yydebug = debug?
    @src = StringScanner.new(input)
    do_parse
  end

  def on_error(tid, value, stack)
    raise ArgumentError,
      "failed to parse date: unexpected '#{value}' at #{stack.inspect}"
  end

  def apply_uncertainty(date, uncertainty, scope = nil)
    uncertainty.each do |u|
      scope.nil? ? date.send(u) : date.send(u, scope)
    end
    date
  end

  alias uoa apply_uncertainty

  def next_token
    case
    when @src.eos?
      nil
    # when @src.scan(/\s+/)
      # ignore whitespace
    when @src.scan(/\(/)
      ['(', @src.matched]
    # when @src.scan(/\)\?~-/)
    #   [:PUA, [:uncertain!, :approximate!]]
    # when @src.scan(/\)\?-/)
    #   [:PUA, [:uncertain!]]
    # when @src.scan(/\)~-/)
    #   [:PUA, [:approximate!]]
    when @src.scan(/\)/)
      [')', @src.matched]
    when @src.scan(/\[/)
      ['[', @src.matched]
    when @src.scan(/\]/)
      [']', @src.matched]
    when @src.scan(/\{/)
      ['{', @src.matched]
    when @src.scan(/\}/)
      ['}', @src.matched]
    when @src.scan(/T/)
      [:T, @src.matched]
    when @src.scan(/Z/)
      [:Z, @src.matched]
    when @src.scan(/\?~/)
      [:UA, [:uncertain!, :approximate!]]
    when @src.scan(/\?/)
      [:UA, [:uncertain!]]
    when @src.scan(/~/)
      [:UA, [:approximate!]]
    when @src.scan(/open/i)
      [:OPEN, :open]
    when @src.scan(/unkn?own/i) # matches 'unkown' typo too
      [:UNKNOWN, :unknown]
    when @src.scan(/u/)
      [:U, @src.matched]
    when @src.scan(/x/i)
      [:X, @src.matched]
    when @src.scan(/y/)
      [:LONGYEAR, @src.matched]
    when @src.scan(/e/)
      [:E, @src.matched]
    when @src.scan(/\+/)
      ['+', @src.matched]
    when @src.scan(/-\(/)
      ['-(', @src.matched]
    when @src.scan(/-/)
      ['-', @src.matched]
    when @src.scan(/:/)
      [':', @src.matched]
    when @src.scan(/\//)
      ['/', @src.matched]
    when @src.scan(/\s*\.\.\s*/)
      [:DOTS, '..']
    when @src.scan(/\s*,\s*/)
      [',', ',']
    when @src.scan(/\^\w+/)
      ['^', @src.matched[1..-1]]
    when @src.scan(/\d/)
      [@src.matched, @src.matched.to_i]
    else @src.scan(/./)
      [:UNMATCHED, @src.rest]
    end
  end


# -*- racc -*-
...end edtf.y/module_eval...
##### State transition tables begin ###

racc_action_table = [
   208,   207,    52,   111,   236,   112,   149,   129,   128,    57,
   253,    43,    45,    40,    55,    42,   157,    44,    43,    45,
    40,   -48,    42,    53,    44,   254,    58,    46,    47,    48,
    49,    50,   207,    56,    46,    47,    48,    49,    50,   128,
    94,   255,    43,    45,    40,   244,    42,   239,    44,    43,
    45,    40,    55,    42,    54,    44,   202,    95,    46,    47,
    48,    49,    50,    25,   141,    46,    47,    48,    49,    50,
    12,    56,    43,    45,    40,    55,    42,   214,    44,   148,
    55,   233,   147,   258,    92,    36,   193,   192,    46,    47,
    48,    49,    50,    25,    56,    26,    57,   232,   234,    56,
    12,    93,    43,    45,    40,   261,    42,   159,    44,   111,
    33,   112,    34,    58,   111,    36,   112,   180,    46,    47,
    48,    49,    50,    87,    58,   108,    12,   165,    43,    45,
    40,   101,    42,   103,    44,   104,   178,   111,   166,   112,
   111,    36,   112,   167,    46,    47,    48,    49,    50,    87,
   218,   200,    12,   201,    43,    45,    40,   188,    42,   186,
    44,   187,   111,   190,   112,   177,   111,    36,   112,   168,
    46,    47,    48,    49,    50,    69,   264,    43,    45,   189,
   191,    42,   124,    44,    12,   125,    43,    45,    40,   240,
    42,   239,    44,    46,    47,    48,    49,    50,   265,    36,
   133,   192,    46,    47,    48,    49,    50,    12,   266,    43,
    45,    40,   111,    42,   112,    44,    12,   158,    43,    45,
    40,   269,    42,   270,    44,    46,    47,    48,    49,    50,
   156,    36,   154,   153,    46,    47,    48,    49,    50,    12,
   275,    43,    45,    40,   152,    42,   150,    44,   146,    43,
    45,    40,   125,    42,    36,    44,   280,    46,    47,    48,
    49,    50,   124,   284,   285,    46,    47,    48,    49,    50,
    43,    45,    40,   286,    42,    96,    44,    43,    45,    40,
   -66,    42,   -65,    44,   290,    67,    46,    47,    48,    49,
    50,   292,   293,    46,    47,    48,    49,    50,    43,    45,
    40,    66,    42,   295,    44,    43,    45,    40,   296,    42,
   297,    44,    65,   300,    46,    47,    48,    49,    50,   301,
   180,    46,    47,    48,    49,    50,    43,    45,    40,   303,
    42,   304,    44,    43,    45,    40,   305,    42,   281,    44,
   306,   307,    46,    47,    48,    49,    50,   308,    64,    46,
    47,    48,    49,    50,    43,    45,    40,   -50,    42,   311,
    44,    43,    45,    40,   312,    42,   313,    44,   314,    51,
    46,    47,    48,    49,    50,   316,   317,    46,    47,    48,
    49,    50,    43,    45,   318,   215,    42,   319,    44,    43,
    45,    40,   213,    42,   212,    44,   229,   210,    46,    47,
    48,    49,    50,   180,   209,    46,    47,    48,    49,    50,
    43,    45,   180,   nil,    42,   nil,    44,    43,    45,    40,
   nil,    42,   nil,    44,   nil,   nil,    46,    47,    48,    49,
    50,   nil,   nil,    46,    47,    48,    49,    50,    43,    45,
    40,   nil,    42,   nil,    44,    43,    45,    40,   nil,    42,
   nil,    44,   nil,   nil,    46,    47,    48,    49,    50,   nil,
   nil,    46,    47,    48,    49,    50,    43,    45,    40,   nil,
    42,   nil,    44,    43,    45,   276,   nil,    42,   nil,    44,
   nil,   nil,    46,    47,    48,    49,    50,   nil,   nil,    46,
    47,    48,    49,    50,    43,    45,   274,   nil,    42,   nil,
    44,    43,    45,   273,   nil,    42,   nil,    44,   nil,   nil,
    46,    47,    48,    49,    50,   nil,   nil,    46,    47,    48,
    49,    50,    43,    45,    40,   nil,    42,   nil,    44,    43,
    45,   175,   nil,    42,   nil,    44,   nil,   nil,    46,    47,
    48,    49,    50,   nil,   nil,    46,    47,    48,    49,    50,
    43,    45,    40,   nil,    42,   nil,    44,    43,    45,    40,
   nil,    42,   nil,    44,   nil,   nil,    46,    47,    48,    49,
    50,   nil,   nil,    46,    47,    48,    49,    50,    43,    45,
   nil,   nil,    42,   nil,    44,    43,    45,   nil,   nil,    42,
   nil,    44,   nil,   nil,    46,    47,    48,    49,    50,   nil,
   nil,    46,    47,    48,    49,    50,    43,    45,   315,   nil,
    42,   nil,    44,    43,    45,    40,   nil,    42,   nil,    44,
   nil,   nil,    46,    47,    48,    49,    50,   nil,   nil,    46,
    47,    48,    49,    50,    43,    45,   nil,   nil,    42,   nil,
    44,   172,   194,   170,   nil,   171,   nil,   173,   nil,   nil,
    46,    47,    48,    49,    50,   nil,   nil,   195,   196,   197,
   198,   199,    43,    45,    40,   nil,    42,   nil,    44,    43,
    45,    40,   nil,    42,   nil,    44,   nil,   nil,    46,    47,
    48,    49,    50,   nil,   nil,    46,    47,    48,    49,    50,
    43,    45,    40,   nil,    42,   nil,    44,    43,    45,    40,
   nil,    42,   nil,    44,   nil,   nil,    46,    47,    48,    49,
    50,   nil,   nil,    46,    47,    48,    49,    50,    43,    45,
   nil,   nil,    42,   nil,    44,    43,    45,    40,   nil,    42,
   nil,    44,   nil,   nil,    46,    47,    48,    49,    50,   116,
   nil,    46,    47,    48,    49,    50,   118,   250,   247,   118,
   104,   117,   249,   104,   260,   121,   nil,   288,   nil,   118,
   250,   247,   251,   104,   118,   249,   117,   118,   104,   117,
   121,   104,   nil,   121,   nil,   251,   118,   250,   247,   nil,
   104,   281,   249,   118,   250,   310,   nil,   104,   nil,   249,
   nil,   118,   251,   117,   nil,   104,   nil,   121,   108,   251,
   118,   250,   117,   118,   104,   117,   249,   104,   110,   121,
   111,   nil,   112,   182,   184,   nil,   251,   181,   118,   183,
   117,   118,   104,   117,   121,   104,   118,   121,   117,   118,
   104,   117,   121,   104,   118,   121,   117,   nil,   104,   nil,
   121,   188,   271,   186,   118,   187,   117,   272,   104,   118,
   121,   117,   nil,   104,   nil,   121,   172,   169,   170,   118,
   171,   117,   173,   104,   118,   121,   117,   nil,   104,   nil,
   121 ]

racc_action_check = [
   127,   127,     5,    93,   163,    93,    73,    63,    63,    73,
   169,   127,   127,   127,    89,   127,    89,   127,    63,    63,
    63,     5,    63,     5,    63,   178,    73,   127,   127,   127,
   127,   127,   224,    89,    63,    63,    63,    63,    63,   151,
    38,   189,   224,   224,   224,   167,   224,   167,   224,   151,
   151,   151,     9,   151,     9,   151,   123,    38,   224,   224,
   224,   224,   224,    67,    67,   151,   151,   151,   151,   151,
    67,     9,    67,    67,    67,   134,    67,   134,    67,    72,
    72,   161,    72,   202,    37,    67,   116,   115,    67,    67,
    67,    67,    67,     0,   134,     0,    10,   161,   161,    72,
     0,    37,     0,     0,     0,   213,     0,    91,     0,   124,
     0,   124,     0,    10,    56,     0,    56,   109,     0,     0,
     0,     0,     0,    33,    91,   214,    33,    98,    33,    33,
    33,    52,    33,    52,    33,    52,   108,   214,    98,   214,
    92,    33,    92,    98,    33,    33,    33,    33,    33,    34,
   147,   121,    34,   121,    34,    34,    34,   112,    34,   112,
    34,   112,   147,   113,   147,   107,   157,    34,   157,    99,
    34,    34,    34,    34,    34,    26,   218,    26,    26,   113,
   113,    26,   220,    26,   154,   222,   154,   154,   154,   166,
   154,   166,   154,    26,    26,    26,    26,    26,   225,   154,
    66,   230,   154,   154,   154,   154,   154,    87,   232,    87,
    87,    87,    66,    87,    66,    87,   265,    90,   265,   265,
   265,   236,   265,   238,   265,    87,    87,    87,    87,    87,
    88,   265,    79,    78,   265,   265,   265,   265,   265,   153,
   245,   153,   153,   153,    77,   153,    74,   153,    71,   205,
   205,   205,    60,   205,   153,   205,   253,   153,   153,   153,
   153,   153,    59,   256,   257,   205,   205,   205,   205,   205,
   150,   150,   150,   260,   150,    51,   150,    12,    12,    12,
    24,    12,    23,    12,   264,    22,   150,   150,   150,   150,
   150,   267,   268,    12,    12,    12,    12,    12,    13,    13,
    13,    18,    13,   271,    13,   263,   263,   263,   273,   263,
   274,   263,    17,   280,    13,    13,    13,    13,    13,   281,
   283,   263,   263,   263,   263,   263,   262,   262,   262,   284,
   262,   285,   262,    36,    36,    36,   288,    36,   290,    36,
   292,   293,   262,   262,   262,   262,   262,   295,    16,    36,
    36,    36,    36,    36,   251,   251,   251,    14,   251,   300,
   251,    62,    62,    62,   304,    62,   307,    62,   308,     1,
   251,   251,   251,   251,   251,   311,   312,    62,    62,    62,
    62,    62,    64,    64,   313,   144,    64,   316,    64,    68,
    68,    68,   133,    68,   132,    68,   158,   129,    64,    64,
    64,    64,    64,   160,   128,    68,    68,    68,    68,    68,
    69,    69,   162,   nil,    69,   nil,    69,    70,    70,    70,
   nil,    70,   nil,    70,   nil,   nil,    69,    69,    69,    69,
    69,   nil,   nil,    70,    70,    70,    70,    70,   250,   250,
   250,   nil,   250,   nil,   250,   249,   249,   249,   nil,   249,
   nil,   249,   nil,   nil,   250,   250,   250,   250,   250,   nil,
   nil,   249,   249,   249,   249,   249,    75,    75,    75,   nil,
    75,   nil,    75,   247,   247,   247,   nil,   247,   nil,   247,
   nil,   nil,    75,    75,    75,    75,    75,   nil,   nil,   247,
   247,   247,   247,   247,   244,   244,   244,   nil,   244,   nil,
   244,   240,   240,   240,   nil,   240,   nil,   240,   nil,   nil,
   244,   244,   244,   244,   244,   nil,   nil,   240,   240,   240,
   240,   240,   217,   217,   217,   nil,   217,   nil,   217,   103,
   103,   103,   nil,   103,   nil,   103,   nil,   nil,   217,   217,
   217,   217,   217,   nil,   nil,   103,   103,   103,   103,   103,
   104,   104,   104,   nil,   104,   nil,   104,   216,   216,   216,
   nil,   216,   nil,   216,   nil,   nil,   104,   104,   104,   104,
   104,   nil,   nil,   216,   216,   216,   216,   216,   215,   215,
   nil,   nil,   215,   nil,   215,   111,   111,   nil,   nil,   111,
   nil,   111,   nil,   nil,   215,   215,   215,   215,   215,   nil,
   nil,   111,   111,   111,   111,   111,   310,   310,   310,   nil,
   310,   nil,   310,   149,   149,   149,   nil,   149,   nil,   149,
   nil,   nil,   310,   310,   310,   310,   310,   nil,   nil,   149,
   149,   149,   149,   149,   117,   117,   nil,   nil,   117,   nil,
   117,   118,   118,   118,   nil,   118,   nil,   118,   nil,   nil,
   117,   117,   117,   117,   117,   nil,   nil,   118,   118,   118,
   118,   118,   126,   126,   126,   nil,   126,   nil,   126,   130,
   130,   130,   nil,   130,   nil,   130,   nil,   nil,   126,   126,
   126,   126,   126,   nil,   nil,   130,   130,   130,   130,   130,
   143,   143,   143,   nil,   143,   nil,   143,   145,   145,   145,
   nil,   145,   nil,   145,   nil,   nil,   143,   143,   143,   143,
   143,   nil,   nil,   145,   145,   145,   145,   145,   146,   146,
   nil,   nil,   146,   nil,   146,   148,   148,   148,   nil,   148,
   nil,   148,   nil,   nil,   146,   146,   146,   146,   146,    57,
   nil,   148,   148,   148,   148,   148,   168,   168,   168,    57,
   168,    57,   168,    57,   212,    57,   nil,   261,   nil,   275,
   275,   275,   168,   275,   212,   275,   212,   261,   212,   261,
   212,   261,   nil,   261,   nil,   275,   270,   270,   270,   nil,
   270,   254,   270,   297,   297,   297,   nil,   297,   nil,   297,
   nil,   254,   270,   254,   nil,   254,   nil,   254,    54,   297,
   296,   296,   296,    95,   296,    95,   296,    95,    54,    95,
    54,   nil,    54,   110,   110,   nil,   296,   110,    94,   110,
    94,    58,    94,    58,    94,    58,   191,    58,   191,   190,
   191,   190,   191,   190,   255,   190,   255,   nil,   255,   nil,
   255,   239,   239,   239,   125,   239,   125,   239,   125,   234,
   125,   234,   nil,   234,   nil,   234,   101,   101,   101,   233,
   101,   233,   101,   233,   159,   233,   159,   nil,   159,   nil,
   159 ]

racc_action_pointer = [
    86,   369,   nil,   nil,   nil,     0,   nil,   nil,   nil,    40,
    82,   nil,   261,   282,   336,   nil,   344,   289,   287,   nil,
   nil,   nil,   264,   282,   280,   nil,   161,   nil,   nil,   nil,
   nil,   nil,   nil,   112,   138,   nil,   317,    70,    26,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   275,   115,   nil,   792,   nil,    96,   733,   805,   248,
   238,   nil,   345,     2,   366,   nil,   194,    56,   373,   394,
   401,   244,    68,    -5,   235,   450,   nil,   219,   205,   204,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   193,   203,     2,
   187,    93,   122,   -15,   802,   787,   nil,   nil,   124,   154,
   nil,   840,   nil,   513,   534,   nil,   nil,   153,   130,   105,
   797,   569,   141,   149,   nil,    75,    80,   618,   625,   nil,
   nil,   133,   nil,    26,    91,   828,   646,    -5,   398,   392,
   653,   nil,   380,   386,    63,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   674,   381,   681,   702,   144,   709,   597,
   254,    33,   nil,   225,   170,   nil,   nil,   148,   384,   848,
   391,    67,   400,   -26,   nil,   nil,   171,    27,   730,    -5,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    11,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    29,
   813,   810,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,    71,   nil,   nil,   233,   nil,   nil,   nil,   nil,
   nil,   nil,   748,    91,   119,   562,   541,   506,   170,   nil,
   168,   nil,   171,   nil,    26,   170,   nil,   nil,   nil,   nil,
   189,   nil,   196,   843,   833,   nil,   209,   nil,   208,   825,
   485,   nil,   nil,   nil,   478,   225,   nil,   457,   nil,   429,
   422,   338,   nil,   238,   775,   818,   233,   234,   nil,   nil,
   267,   751,   310,   289,   270,   202,   nil,   261,   262,   nil,
   760,   288,   nil,   293,   295,   743,   nil,   nil,   nil,   nil,
   295,   313,   nil,   308,   317,   319,   nil,   nil,   330,   nil,
   332,   nil,   328,   329,   nil,   329,   784,   767,   nil,   nil,
   344,   nil,   nil,   nil,   334,   nil,   nil,   336,   350,   nil,
   590,   357,   364,   372,   nil,   nil,   369,   nil,   nil,   nil ]

racc_action_default = [
  -176,  -176,    -1,    -2,    -3,    -4,    -5,    -6,    -7,    -8,
    -9,   -10,  -176,  -176,   -34,   -35,   -36,   -37,   -38,   -39,
   -40,   -41,  -176,   -49,   -51,   -52,  -176,   -64,   -67,   -68,
   -69,   -70,   -71,  -176,  -176,  -107,  -176,  -109,  -110,  -111,
  -128,  -129,  -130,  -131,  -132,  -133,  -134,  -135,  -136,  -137,
  -138,  -176,  -176,   -76,  -176,  -112,  -176,  -176,  -176,    -8,
    -9,   -11,  -176,  -176,  -176,   -72,  -176,  -176,   -55,  -176,
  -170,  -176,    -8,    -9,   -10,  -176,   -38,  -176,   -81,   -86,
   -87,   -88,   -90,   -91,   -92,   -93,   -94,  -176,  -176,  -176,
  -176,  -176,  -176,  -176,  -176,  -176,   320,   -12,   -13,  -176,
   -16,  -176,   -31,  -176,  -176,  -152,   -27,   -29,  -176,  -126,
  -176,  -176,  -176,  -176,   -28,   -30,  -176,  -176,  -176,  -153,
  -160,  -176,  -162,  -176,  -176,  -176,  -176,  -176,  -176,  -176,
   -73,  -174,  -176,  -176,    -8,   -47,   -48,   -49,   -50,   -51,
   -53,   -54,   -58,   -56,  -176,  -171,  -176,  -176,   -98,   -97,
   -96,  -176,   -79,  -176,  -176,   -95,   -80,  -176,  -176,  -176,
  -126,  -176,  -126,  -176,   -14,   -18,  -176,  -176,  -176,  -176,
  -147,  -148,  -149,  -150,  -145,  -151,  -146,  -114,   -44,   -59,
  -127,   -60,   -61,   -62,   -63,  -139,  -140,  -141,  -142,  -176,
  -176,  -176,  -120,   -45,  -154,  -155,  -156,  -157,  -158,  -159,
  -161,  -163,  -176,   -29,   -30,  -176,   -26,   -42,   -77,   -43,
   -78,  -175,  -176,  -176,  -176,  -176,  -172,   -74,  -176,  -101,
  -176,  -100,  -176,   -99,  -176,   -83,   -84,   -85,   -89,  -108,
  -176,  -113,  -176,  -176,  -176,  -117,  -176,   -19,  -176,  -176,
  -176,  -143,   -20,   -21,  -176,  -176,   -32,  -176,  -164,  -176,
  -176,  -176,  -169,  -176,  -176,  -115,  -176,  -176,  -121,  -102,
  -176,  -176,   -75,  -173,   -44,  -176,  -116,  -176,  -176,  -118,
  -176,  -176,  -144,  -176,  -176,  -176,  -168,  -165,  -166,  -167,
  -176,  -176,  -106,  -126,  -176,  -176,  -105,  -103,  -176,   -57,
  -176,   -82,  -176,  -176,   -23,  -176,  -176,  -176,   -15,   -33,
  -176,   -46,  -119,  -122,  -176,  -104,  -124,  -176,  -176,   -25,
  -176,  -176,  -176,  -176,   -24,   -22,  -176,  -123,  -125,   -17 ]

racc_goto_table = [
    70,   179,   130,    13,   228,    11,   248,   115,   123,   226,
   227,   113,   245,     5,    10,    23,    63,    11,    68,     9,
    22,   132,    14,    18,    71,     2,    60,    24,    77,    88,
   102,    59,   237,   243,   309,   309,    75,    75,   131,   241,
   241,    15,    16,    70,   162,   163,    17,   160,   161,   242,
    91,   100,   231,   135,   235,    89,   298,    99,   164,    98,
   109,   143,    97,    27,    28,   126,   127,   144,    29,    30,
    75,   142,    11,   145,    31,   204,    32,   174,   151,   203,
   136,    10,   137,    61,   217,   185,   134,   140,     6,   138,
    18,   174,    11,     1,   139,   225,     4,     3,    90,   105,
   155,    60,   299,   nil,   nil,   nil,    59,   176,   248,   230,
   nil,   nil,   nil,   248,   294,   228,   nil,   nil,   nil,   nil,
   131,   291,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   205,
   206,   nil,   nil,   211,   248,   248,   nil,   nil,   nil,   nil,
   256,   257,   nil,   nil,   nil,   nil,   142,   nil,   216,   nil,
   nil,   nil,   nil,   262,   224,   223,    75,    75,   nil,   nil,
   nil,   nil,   259,   221,   222,   nil,   nil,   219,   220,   220,
   nil,   nil,   nil,   nil,   nil,   302,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   267,   268,   nil,   nil,   nil,   nil,   131,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   282,   283,   nil,   nil,   206,   nil,
   nil,   287,   nil,   nil,   185,   nil,   nil,   nil,   185,   263,
   211,   174,   nil,   nil,   nil,   nil,   nil,   206,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   277,   278,   279,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   211,   289,   nil,    75,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   174 ]

racc_goto_check = [
    43,    45,    52,    23,    58,    11,    66,    26,    26,    57,
    57,    24,    16,     5,    10,    40,    23,    11,    42,     9,
    38,    24,    30,    34,    53,     2,    10,    41,    54,    54,
    28,     9,    19,    19,    22,    22,    23,    23,    43,    25,
    25,    31,    32,    43,    26,    26,    33,    24,    24,    20,
    10,    18,    45,    39,    45,     9,    17,    15,    14,    13,
    44,    42,    12,    46,    47,    23,    23,    53,    48,    49,
    23,    23,    11,    23,    50,    26,    51,    43,    23,    24,
     5,    10,    40,     7,    52,    43,     9,    38,     6,    30,
    34,    43,    11,     1,    41,    56,     4,     3,    61,    65,
     5,    10,    29,   nil,   nil,   nil,     9,    23,    66,    26,
   nil,   nil,   nil,    66,    16,    58,   nil,   nil,   nil,   nil,
    43,    57,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    23,
    23,   nil,   nil,    23,    66,    66,   nil,   nil,   nil,   nil,
    26,    26,   nil,   nil,   nil,   nil,    23,   nil,    23,   nil,
   nil,   nil,   nil,    52,    23,    11,    23,    23,   nil,   nil,
   nil,   nil,    26,    10,    10,   nil,   nil,     9,     9,     9,
   nil,   nil,   nil,   nil,   nil,    45,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,    26,    26,   nil,   nil,   nil,   nil,    43,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,    26,    26,   nil,   nil,    23,   nil,
   nil,    26,   nil,   nil,    43,   nil,   nil,   nil,    43,    23,
    23,    43,   nil,   nil,   nil,   nil,   nil,    23,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,    23,    23,    23,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,    23,    23,   nil,    23,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,    43 ]

racc_goto_pointer = [
   nil,    93,    25,    97,    96,    13,    88,    71,   nil,    19,
    14,     5,    10,     7,   -40,     5,  -156,  -219,    -1,  -134,
  -118,   nil,  -262,     3,   -45,  -127,   -50,   nil,   -22,  -173,
    22,    41,    42,    46,    23,   nil,   nil,   nil,    20,   -14,
    15,    27,    -8,   -26,     6,  -108,    63,    64,    68,    69,
    74,    76,   -62,    -2,    -5,   nil,   -58,  -144,  -150,   nil,
   nil,    62,   nil,   nil,   nil,    47,  -162,   nil ]

racc_goto_default = [
   nil,   nil,   nil,   nil,   nil,    84,   nil,     7,     8,    72,
    73,    74,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   238,   252,    62,   107,   106,   nil,   114,   nil,   246,
    86,   nil,   nil,   nil,    76,    19,    20,    21,   nil,   nil,
    85,   nil,   nil,    41,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,    78,    79,    80,    81,    82,
    83,    35,    37,    38,    39,   119,   120,   122 ]

racc_reduce_table = [
  0, 0, :racc_error,
  1, 38, :_reduce_none,
  1, 38, :_reduce_none,
  1, 38, :_reduce_none,
  1, 39, :_reduce_none,
  1, 39, :_reduce_none,
  1, 42, :_reduce_none,
  1, 42, :_reduce_none,
  1, 44, :_reduce_8,
  1, 44, :_reduce_9,
  1, 44, :_reduce_10,
  2, 45, :_reduce_11,
  3, 43, :_reduce_12,
  1, 49, :_reduce_none,
  2, 49, :_reduce_14,
  5, 50, :_reduce_15,
  1, 50, :_reduce_none,
  8, 55, :_reduce_17,
  1, 51, :_reduce_18,
  2, 51, :_reduce_19,
  2, 51, :_reduce_20,
  1, 57, :_reduce_none,
  5, 57, :_reduce_22,
  3, 56, :_reduce_23,
  5, 56, :_reduce_24,
  4, 56, :_reduce_25,
  4, 46, :_reduce_26,
  1, 61, :_reduce_none,
  1, 63, :_reduce_none,
  3, 47, :_reduce_29,
  3, 48, :_reduce_30,
  1, 52, :_reduce_none,
  1, 53, :_reduce_none,
  1, 54, :_reduce_none,
  1, 40, :_reduce_none,
  1, 40, :_reduce_none,
  1, 40, :_reduce_none,
  1, 40, :_reduce_none,
  1, 67, :_reduce_38,
  1, 67, :_reduce_none,
  1, 67, :_reduce_none,
  1, 67, :_reduce_none,
  4, 71, :_reduce_42,
  4, 71, :_reduce_43,
  4, 72, :_reduce_44,
  4, 73, :_reduce_45,
  7, 74, :_reduce_46,
  3, 68, :_reduce_47,
  1, 75, :_reduce_none,
  1, 75, :_reduce_none,
  1, 75, :_reduce_none,
  1, 75, :_reduce_none,
  1, 75, :_reduce_none,
  1, 76, :_reduce_none,
  1, 76, :_reduce_none,
  2, 69, :_reduce_55,
  3, 69, :_reduce_56,
  5, 79, :_reduce_57,
  2, 79, :_reduce_58,
  4, 70, :_reduce_59,
  2, 81, :_reduce_60,
  2, 81, :_reduce_61,
  2, 81, :_reduce_62,
  2, 81, :_reduce_63,
  1, 41, :_reduce_none,
  1, 41, :_reduce_none,
  1, 41, :_reduce_none,
  1, 41, :_reduce_none,
  1, 41, :_reduce_none,
  1, 41, :_reduce_none,
  1, 41, :_reduce_none,
  1, 41, :_reduce_none,
  2, 83, :_reduce_72,
  3, 88, :_reduce_73,
  4, 88, :_reduce_74,
  5, 88, :_reduce_75,
  2, 87, :_reduce_76,
  4, 86, :_reduce_77,
  4, 86, :_reduce_78,
  3, 84, :_reduce_79,
  3, 85, :_reduce_80,
  1, 91, :_reduce_81,
  5, 91, :_reduce_82,
  3, 91, :_reduce_83,
  3, 91, :_reduce_84,
  3, 91, :_reduce_85,
  1, 91, :_reduce_86,
  1, 91, :_reduce_87,
  1, 93, :_reduce_88,
  3, 93, :_reduce_89,
  1, 95, :_reduce_none,
  1, 95, :_reduce_none,
  1, 96, :_reduce_none,
  1, 96, :_reduce_none,
  1, 96, :_reduce_none,
  2, 92, :_reduce_95,
  2, 94, :_reduce_96,
  2, 94, :_reduce_97,
  2, 94, :_reduce_98,
  3, 97, :_reduce_99,
  3, 97, :_reduce_100,
  3, 97, :_reduce_101,
  5, 78, :_reduce_102,
  6, 78, :_reduce_103,
  7, 78, :_reduce_104,
  6, 78, :_reduce_105,
  6, 78, :_reduce_106,
  1, 77, :_reduce_none,
  4, 77, :_reduce_108,
  1, 98, :_reduce_109,
  1, 98, :_reduce_110,
  1, 98, :_reduce_111,
  2, 99, :_reduce_112,
  4, 100, :_reduce_113,
  4, 100, :_reduce_114,
  5, 100, :_reduce_115,
  5, 100, :_reduce_116,
  4, 101, :_reduce_117,
  5, 101, :_reduce_118,
  7, 101, :_reduce_119,
  4, 101, :_reduce_120,
  5, 101, :_reduce_121,
  7, 101, :_reduce_122,
  9, 101, :_reduce_123,
  7, 101, :_reduce_124,
  9, 101, :_reduce_125,
  0, 82, :_reduce_126,
  1, 82, :_reduce_none,
  1, 60, :_reduce_128,
  1, 60, :_reduce_none,
  1, 80, :_reduce_none,
  1, 80, :_reduce_none,
  1, 80, :_reduce_none,
  1, 80, :_reduce_none,
  1, 80, :_reduce_none,
  1, 80, :_reduce_none,
  1, 80, :_reduce_none,
  1, 80, :_reduce_none,
  1, 80, :_reduce_none,
  2, 62, :_reduce_139,
  2, 62, :_reduce_140,
  2, 62, :_reduce_141,
  2, 62, :_reduce_142,
  1, 58, :_reduce_none,
  2, 58, :_reduce_144,
  2, 102, :_reduce_145,
  2, 102, :_reduce_146,
  2, 102, :_reduce_147,
  2, 102, :_reduce_148,
  2, 102, :_reduce_149,
  2, 102, :_reduce_150,
  2, 65, :_reduce_none,
  1, 65, :_reduce_none,
  1, 103, :_reduce_none,
  2, 103, :_reduce_154,
  2, 103, :_reduce_155,
  2, 103, :_reduce_156,
  2, 103, :_reduce_157,
  2, 103, :_reduce_158,
  2, 103, :_reduce_159,
  1, 104, :_reduce_none,
  2, 104, :_reduce_161,
  1, 64, :_reduce_none,
  2, 64, :_reduce_163,
  1, 59, :_reduce_none,
  2, 59, :_reduce_165,
  2, 59, :_reduce_166,
  2, 59, :_reduce_167,
  2, 66, :_reduce_none,
  1, 66, :_reduce_none,
  1, 90, :_reduce_170,
  2, 90, :_reduce_171,
  3, 90, :_reduce_172,
  4, 90, :_reduce_173,
  1, 89, :_reduce_174,
  2, 89, :_reduce_175 ]

racc_reduce_n = 176

racc_shift_n = 320

racc_token_table = {
  false => 0,
  :error => 1,
  :T => 2,
  :Z => 3,
  :E => 4,
  :X => 5,
  :U => 6,
  :UNKNOWN => 7,
  :OPEN => 8,
  :LONGYEAR => 9,
  :UNMATCHED => 10,
  :DOTS => 11,
  :UA => 12,
  :PUA => 13,
  "-" => 14,
  ":" => 15,
  "2" => 16,
  "4" => 17,
  "0" => 18,
  "+" => 19,
  "1" => 20,
  "/" => 21,
  "3" => 22,
  "^" => 23,
  "[" => 24,
  "]" => 25,
  "{" => 26,
  "}" => 27,
  "," => 28,
  "(" => 29,
  ")" => 30,
  "-(" => 31,
  "5" => 32,
  "6" => 33,
  "7" => 34,
  "8" => 35,
  "9" => 36 }

racc_nt_base = 37

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",
  "T",
  "Z",
  "E",
  "X",
  "U",
  "UNKNOWN",
  "OPEN",
  "LONGYEAR",
  "UNMATCHED",
  "DOTS",
  "UA",
  "PUA",
  "\"-\"",
  "\":\"",
  "\"2\"",
  "\"4\"",
  "\"0\"",
  "\"+\"",
  "\"1\"",
  "\"/\"",
  "\"3\"",
  "\"^\"",
  "\"[\"",
  "\"]\"",
  "\"{\"",
  "\"}\"",
  "\",\"",
  "\"(\"",
  "\")\"",
  "\"-(\"",
  "\"5\"",
  "\"6\"",
  "\"7\"",
  "\"8\"",
  "\"9\"",
  "$start",
  "edtf",
  "level_0_expression",
  "level_1_expression",
  "level_2_expression",
  "date",
  "date_time",
  "positive_date",
  "negative_date",
  "year",
  "year_month",
  "year_month_day",
  "time",
  "base_time",
  "zone_offset",
  "hour",
  "minute",
  "second",
  "midnight",
  "zone_offset_hour",
  "positive_zone_offset",
  "d01_13",
  "d01_59",
  "digit",
  "month",
  "d01_12",
  "day",
  "d01_31",
  "d00_23",
  "d00_59",
  "unspecified",
  "level_1_interval",
  "long_year_simple",
  "season",
  "unspecified_year",
  "unspecified_month",
  "unspecified_day",
  "unspecified_day_and_month",
  "level_1_start",
  "level_1_end",
  "partial_uncertain_or_approximate",
  "partial_unspecified",
  "long_year",
  "positive_digit",
  "season_number",
  "ua",
  "season_qualified",
  "choice_list",
  "inclusive_list",
  "masked_precision",
  "date_and_calendar",
  "long_year_scientific",
  "integer",
  "int1_4",
  "list",
  "earlier",
  "list_elements",
  "later",
  "list_element",
  "atomic",
  "consecutives",
  "pua_base",
  "pua_year",
  "pua_year_month",
  "pua_year_month_day",
  "d01_23",
  "d01_29",
  "d01_30" ]

Racc_debug_parser = false

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

# reduce 0 omitted

# reduce 1 omitted

# reduce 2 omitted

# reduce 3 omitted

# reduce 4 omitted

# reduce 5 omitted

# reduce 6 omitted

# reduce 7 omitted

module_eval(<<'.,.,', 'edtf.y', 54)
  def _reduce_8(val, _values, result)
     result = Date.new(val[0]).year_precision!
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 55)
  def _reduce_9(val, _values, result)
     result = Date.new(*val.flatten).month_precision!
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 56)
  def _reduce_10(val, _values, result)
     result = Date.new(*val.flatten).day_precision!
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 59)
  def _reduce_11(val, _values, result)
     result = -val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 63)
  def _reduce_12(val, _values, result)
        result = DateTime.new(val[0].year, val[0].month, val[0].day, *val[2])
    result.skip_timezone = (val[2].length == 3)

    result
  end
.,.,

# reduce 13 omitted

module_eval(<<'.,.,', 'edtf.y', 68)
  def _reduce_14(val, _values, result)
     result = val.flatten
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 70)
  def _reduce_15(val, _values, result)
     result = val.values_at(0, 2, 4)
    result
  end
.,.,

# reduce 16 omitted

module_eval(<<'.,.,', 'edtf.y', 73)
  def _reduce_17(val, _values, result)
     result = [24, 0, 0]
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 75)
  def _reduce_18(val, _values, result)
     result = 0
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 76)
  def _reduce_19(val, _values, result)
     result = -1 * val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 77)
  def _reduce_20(val, _values, result)
     result = val[1]
    result
  end
.,.,

# reduce 21 omitted

module_eval(<<'.,.,', 'edtf.y', 81)
  def _reduce_22(val, _values, result)
     result = 0
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 85)
  def _reduce_23(val, _values, result)
     result = Rational(val[0] * 60 + val[2], 1440)
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 86)
  def _reduce_24(val, _values, result)
     result = Rational(840, 1440)
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 87)
  def _reduce_25(val, _values, result)
     result = Rational(val[3], 1440)
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 91)
  def _reduce_26(val, _values, result)
        result = val.zip([1000,100,10,1]).reduce(0) { |s,(a,b)| s += a * b }

    result
  end
.,.,

# reduce 27 omitted

# reduce 28 omitted

module_eval(<<'.,.,', 'edtf.y', 97)
  def _reduce_29(val, _values, result)
     result = [val[0], val[2]]
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 104)
  def _reduce_30(val, _values, result)
        result = val[0] << val[2]
    if result[2] > 31 || (result[2] > 30 && [2,4,6,9,11].include?(result[1])) || (result[2] > 29 && result[1] == 2)
      raise ArgumentError, "invalid date (invalid days #{result[2]} for month #{result[1]})"
    end

    result
  end
.,.,

# reduce 31 omitted

# reduce 32 omitted

# reduce 33 omitted

# reduce 34 omitted

# reduce 35 omitted

# reduce 36 omitted

# reduce 37 omitted

module_eval(<<'.,.,', 'edtf.y', 127)
  def _reduce_38(val, _values, result)
                    result = Date.new(val[0][0]).year_precision!
                result.unspecified.year[2,2] = val[0][1]

    result
  end
.,.,

# reduce 39 omitted

# reduce 40 omitted

# reduce 41 omitted

module_eval(<<'.,.,', 'edtf.y', 138)
  def _reduce_42(val, _values, result)
          result = [val[0,3].zip([1000,100,10]).reduce(0) { |s,(a,b)| s += a * b }, [false,true]]

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 142)
  def _reduce_43(val, _values, result)
          result = [val[0,2].zip([1000,100]).reduce(0) { |s,(a,b)| s += a * b }, [true, true]]

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 146)
  def _reduce_44(val, _values, result)
        result = Date.new(val[0]).unspecified!(:month)
    result.precision = :month

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 151)
  def _reduce_45(val, _values, result)
        result = Date.new(*val[0]).unspecified!(:day)

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 155)
  def _reduce_46(val, _values, result)
        result = Date.new(val[0]).unspecified!([:day,:month])

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 160)
  def _reduce_47(val, _values, result)
        result = Interval.new(val[0], val[2])

    result
  end
.,.,

# reduce 48 omitted

# reduce 49 omitted

# reduce 50 omitted

# reduce 51 omitted

# reduce 52 omitted

# reduce 53 omitted

# reduce 54 omitted

module_eval(<<'.,.,', 'edtf.y', 171)
  def _reduce_55(val, _values, result)
          result = Date.new(val[1])
      result.precision = :year

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 176)
  def _reduce_56(val, _values, result)
          result = Date.new(-1 * val[2])
      result.precision = :year

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 183)
  def _reduce_57(val, _values, result)
          result = val.zip([10000,1000,100,10,1]).reduce(0) { |s,(a,b)| s += a * b }

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 185)
  def _reduce_58(val, _values, result)
     result = 10 * val[0] + val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 190)
  def _reduce_59(val, _values, result)
        result = Season.new(val[0], val[2])
    val[3].each { |ua| result.send(ua) }

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 194)
  def _reduce_60(val, _values, result)
     result = 21
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 195)
  def _reduce_61(val, _values, result)
     result = 22
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 196)
  def _reduce_62(val, _values, result)
     result = 23
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 197)
  def _reduce_63(val, _values, result)
     result = 24
    result
  end
.,.,

# reduce 64 omitted

# reduce 65 omitted

# reduce 66 omitted

# reduce 67 omitted

# reduce 68 omitted

# reduce 69 omitted

# reduce 70 omitted

# reduce 71 omitted

module_eval(<<'.,.,', 'edtf.y', 215)
  def _reduce_72(val, _values, result)
     result = val[0]; result.qualifier = val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 221)
  def _reduce_73(val, _values, result)
          result = Date.new(val[0].year * 10 ** val[2]).year_precision!

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 225)
  def _reduce_74(val, _values, result)
          result = Date.new(val[1] * 10 ** val[3]).year_precision!

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 229)
  def _reduce_75(val, _values, result)
          result = Date.new(-1 * val[2] * 10 ** val[4]).year_precision!

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 234)
  def _reduce_76(val, _values, result)
     result = val[0]; result.calendar = val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 240)
  def _reduce_77(val, _values, result)
          d = val[0,3].zip([1000,100,10]).reduce(0) { |s,(a,b)| s += a * b }
      result = EDTF::Decade.new(d)

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 245)
  def _reduce_78(val, _values, result)
          d = val[0,2].zip([1000,100]).reduce(0) { |s,(a,b)| s += a * b }
      result = EDTF::Century.new(d)

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 251)
  def _reduce_79(val, _values, result)
     result = val[1].choice!
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 253)
  def _reduce_80(val, _values, result)
     result = val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 255)
  def _reduce_81(val, _values, result)
     result = EDTF::Set.new(val[0]).earlier!
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 256)
  def _reduce_82(val, _values, result)
     result = EDTF::Set.new([val[0]] + val[2] + [val[4]]).earlier!.later!
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 257)
  def _reduce_83(val, _values, result)
     result = EDTF::Set.new([val[0]] + val[2]).earlier!
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 258)
  def _reduce_84(val, _values, result)
     result = EDTF::Set.new([val[0]] + [val[2]]).earlier!.later!
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 259)
  def _reduce_85(val, _values, result)
     result = EDTF::Set.new(val[0] + [val[2]]).later!
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 260)
  def _reduce_86(val, _values, result)
     result = EDTF::Set.new(*val[0])
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 261)
  def _reduce_87(val, _values, result)
     result = EDTF::Set.new(val[0]).later!
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 264)
  def _reduce_88(val, _values, result)
     result = [val[0]].flatten
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 265)
  def _reduce_89(val, _values, result)
     result = val[0] + [val[2]].flatten
    result
  end
.,.,

# reduce 90 omitted

# reduce 91 omitted

# reduce 92 omitted

# reduce 93 omitted

# reduce 94 omitted

module_eval(<<'.,.,', 'edtf.y', 277)
  def _reduce_95(val, _values, result)
     result = val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 279)
  def _reduce_96(val, _values, result)
     result = Date.new(*val[0]).year_precision!
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 280)
  def _reduce_97(val, _values, result)
     result = Date.new(*val[0]).month_precision!
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 281)
  def _reduce_98(val, _values, result)
     result = Date.new(val[0]).year_precision!
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 284)
  def _reduce_99(val, _values, result)
     result = (Date.new(val[0]).day_precision! .. Date.new(val[2]).day_precision!)
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 285)
  def _reduce_100(val, _values, result)
     result = (Date.new(val[0]).month_precision! .. Date.new(val[2]).month_precision!)
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 286)
  def _reduce_101(val, _values, result)
     result = (Date.new(val[0]).year_precision! .. Date.new(val[2]).year_precision!)
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 292)
  def _reduce_102(val, _values, result)
          result = Date.new(val[0][0], val[2], val[4])
      result.unspecified.year[2,2] = val[0][1]

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 297)
  def _reduce_103(val, _values, result)
          result = Date.new(val[0][0], 1, val[5])
      result.unspecified.year[2,2] = val[0][1]
      result.unspecified!(:month)

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 303)
  def _reduce_104(val, _values, result)
          result = Date.new(val[0][0], 1, 1)
      result.unspecified.year[2,2] = val[0][1]
      result.unspecified!([:month, :day])

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 309)
  def _reduce_105(val, _values, result)
          result = Date.new(val[0][0], val[2], 1)
      result.unspecified.year[2,2] = val[0][1]
      result.unspecified!(:day)

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 315)
  def _reduce_106(val, _values, result)
          result = Date.new(val[0], 1, val[5])
      result.unspecified!(:month)

    result
  end
.,.,

# reduce 107 omitted

module_eval(<<'.,.,', 'edtf.y', 322)
  def _reduce_108(val, _values, result)
     result = uoa(val[1], val[3])
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 325)
  def _reduce_109(val, _values, result)
     result = val[0].year_precision!
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 326)
  def _reduce_110(val, _values, result)
     result = val[0][0].month_precision!
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 327)
  def _reduce_111(val, _values, result)
     result = val[0].day_precision!
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 329)
  def _reduce_112(val, _values, result)
     result = uoa(Date.new(val[0]), val[1], :year)
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 333)
  def _reduce_113(val, _values, result)
          result = [uoa(val[0].change(:month => val[2]), val[3], [:month, :year])]

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 336)
  def _reduce_114(val, _values, result)
            result = [uoa(Date.new(val[0], val[2]), val[3], [:year, :month])]

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 339)
  def _reduce_115(val, _values, result)
            result = [uoa(Date.new(val[0], val[2]), val[4], [:month]), true]

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 342)
  def _reduce_116(val, _values, result)
            result = [uoa(val[0].change(:month => val[2]), val[4], [:month]), true]

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 348)
  def _reduce_117(val, _values, result)
          result = uoa(val[0][0].change(:day => val[2]), val[3], val[0][1] ? [:day] : nil)

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 351)
  def _reduce_118(val, _values, result)
            result = uoa(val[0][0].change(:day => val[2]), val[4], [:day])

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 354)
  def _reduce_119(val, _values, result)
            result = uoa(uoa(Date.new(val[0], val[2], val[5]), val[4], :month), val[6], :day)

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 357)
  def _reduce_120(val, _values, result)
            result = uoa(Date.new(val[0][0], val[0][1], val[2]), val[3])

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 360)
  def _reduce_121(val, _values, result)
            result = uoa(Date.new(val[0][0], val[0][1], val[2]), val[4], [:day])

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 363)
  def _reduce_122(val, _values, result)
            result = uoa(Date.new(val[0], val[2], val[4]), val[6], [:month, :day])

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 366)
  def _reduce_123(val, _values, result)
            result = Date.new(val[0], val[2], val[4])
        result = uoa(result, val[6], [:day])
        result = uoa(result, val[8], [:month, :day])

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 371)
  def _reduce_124(val, _values, result)
            result = val[0].change(:month => val[2], :day => val[4])
        result = uoa(result, val[6], [:month, :day])

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 375)
  def _reduce_125(val, _values, result)
            result = val[0].change(:month => val[2], :day => val[4])
        result = uoa(result, val[6], [:day])
        result = uoa(result, val[8], [:month, :day])

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 386)
  def _reduce_126(val, _values, result)
     result = []
    result
  end
.,.,

# reduce 127 omitted

module_eval(<<'.,.,', 'edtf.y', 390)
  def _reduce_128(val, _values, result)
     result = 0
    result
  end
.,.,

# reduce 129 omitted

# reduce 130 omitted

# reduce 131 omitted

# reduce 132 omitted

# reduce 133 omitted

# reduce 134 omitted

# reduce 135 omitted

# reduce 136 omitted

# reduce 137 omitted

# reduce 138 omitted

module_eval(<<'.,.,', 'edtf.y', 396)
  def _reduce_139(val, _values, result)
     result = val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 397)
  def _reduce_140(val, _values, result)
     result = 10
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 398)
  def _reduce_141(val, _values, result)
     result = 11
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 399)
  def _reduce_142(val, _values, result)
     result = 12
    result
  end
.,.,

# reduce 143 omitted

module_eval(<<'.,.,', 'edtf.y', 403)
  def _reduce_144(val, _values, result)
     result = 13
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 406)
  def _reduce_145(val, _values, result)
     result = val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 407)
  def _reduce_146(val, _values, result)
     result = 10 + val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 408)
  def _reduce_147(val, _values, result)
     result = 20
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 409)
  def _reduce_148(val, _values, result)
     result = 21
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 410)
  def _reduce_149(val, _values, result)
     result = 22
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 411)
  def _reduce_150(val, _values, result)
     result = 23
    result
  end
.,.,

# reduce 151 omitted

# reduce 152 omitted

# reduce 153 omitted

module_eval(<<'.,.,', 'edtf.y', 419)
  def _reduce_154(val, _values, result)
     result = 24
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 420)
  def _reduce_155(val, _values, result)
     result = 25
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 421)
  def _reduce_156(val, _values, result)
     result = 26
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 422)
  def _reduce_157(val, _values, result)
     result = 27
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 423)
  def _reduce_158(val, _values, result)
     result = 28
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 424)
  def _reduce_159(val, _values, result)
     result = 29
    result
  end
.,.,

# reduce 160 omitted

module_eval(<<'.,.,', 'edtf.y', 428)
  def _reduce_161(val, _values, result)
     result = 30
    result
  end
.,.,

# reduce 162 omitted

module_eval(<<'.,.,', 'edtf.y', 432)
  def _reduce_163(val, _values, result)
     result = 31
    result
  end
.,.,

# reduce 164 omitted

module_eval(<<'.,.,', 'edtf.y', 436)
  def _reduce_165(val, _values, result)
     result = 30 + val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 437)
  def _reduce_166(val, _values, result)
     result = 40 + val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 438)
  def _reduce_167(val, _values, result)
     result = 50 + val[1]
    result
  end
.,.,

# reduce 168 omitted

# reduce 169 omitted

module_eval(<<'.,.,', 'edtf.y', 445)
  def _reduce_170(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 446)
  def _reduce_171(val, _values, result)
     result = 10 * val[0] + val[1]
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 449)
  def _reduce_172(val, _values, result)
               result = val.zip([100,10,1]).reduce(0) { |s,(a,b)| s += a * b }

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 453)
  def _reduce_173(val, _values, result)
               result = val.zip([1000,100,10,1]).reduce(0) { |s,(a,b)| s += a * b }

    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 457)
  def _reduce_174(val, _values, result)
     result = val[0]
    result
  end
.,.,

module_eval(<<'.,.,', 'edtf.y', 458)
  def _reduce_175(val, _values, result)
     result = 10 * val[0] + val[1]
    result
  end
.,.,

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

  end   # class Parser
end   # module EDTF