class org.h2.expression.function.ToDateTokenizer
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.h2.expression.function.ToDateTokenizer
  super_class: java.lang.Object
{
  static final java.util.regex.Pattern PATTERN_INLINE;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.util.regex.Pattern PATTERN_NUMBER;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.util.regex.Pattern PATTERN_FOUR_DIGITS;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.util.regex.Pattern PATTERN_TWO_TO_FOUR_DIGITS;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.util.regex.Pattern PATTERN_THREE_DIGITS;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.util.regex.Pattern PATTERN_TWO_DIGITS;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.util.regex.Pattern PATTERN_TWO_DIGITS_OR_LESS;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.util.regex.Pattern PATTERN_ONE_DIGIT;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.util.regex.Pattern PATTERN_FF;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.util.regex.Pattern PATTERN_AM_PM;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.util.regex.Pattern PATTERN_BC_AD;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final org.h2.expression.function.ToDateTokenizer$YearParslet PARSLET_YEAR;
    descriptor: Lorg/h2/expression/function/ToDateTokenizer$YearParslet;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final org.h2.expression.function.ToDateTokenizer$MonthParslet PARSLET_MONTH;
    descriptor: Lorg/h2/expression/function/ToDateTokenizer$MonthParslet;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final org.h2.expression.function.ToDateTokenizer$DayParslet PARSLET_DAY;
    descriptor: Lorg/h2/expression/function/ToDateTokenizer$DayParslet;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final org.h2.expression.function.ToDateTokenizer$TimeParslet PARSLET_TIME;
    descriptor: Lorg/h2/expression/function/ToDateTokenizer$TimeParslet;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final org.h2.expression.function.ToDateTokenizer$InlineParslet PARSLET_INLINE;
    descriptor: Lorg/h2/expression/function/ToDateTokenizer$InlineParslet;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 28
            ldc "(\"[^\"]*\")"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic org.h2.expression.function.ToDateTokenizer.PATTERN_INLINE:Ljava/util/regex/Pattern;
         1: .line 33
            ldc "^([+-]?[0-9]+)"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic org.h2.expression.function.ToDateTokenizer.PATTERN_NUMBER:Ljava/util/regex/Pattern;
         2: .line 39
            ldc "^([+-]?[0-9]{4})"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
         3: .line 38
            putstatic org.h2.expression.function.ToDateTokenizer.PATTERN_FOUR_DIGITS:Ljava/util/regex/Pattern;
         4: .line 45
            ldc "^([+-]?[0-9]{2,4})"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
         5: .line 44
            putstatic org.h2.expression.function.ToDateTokenizer.PATTERN_TWO_TO_FOUR_DIGITS:Ljava/util/regex/Pattern;
         6: .line 50
            ldc "^([+-]?[0-9]{3})"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
         7: .line 49
            putstatic org.h2.expression.function.ToDateTokenizer.PATTERN_THREE_DIGITS:Ljava/util/regex/Pattern;
         8: .line 56
            ldc "^([+-]?[0-9]{2})"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
         9: .line 55
            putstatic org.h2.expression.function.ToDateTokenizer.PATTERN_TWO_DIGITS:Ljava/util/regex/Pattern;
        10: .line 62
            ldc "^([+-]?[0-9][0-9]?)"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
        11: .line 61
            putstatic org.h2.expression.function.ToDateTokenizer.PATTERN_TWO_DIGITS_OR_LESS:Ljava/util/regex/Pattern;
        12: .line 67
            ldc "^([+-]?[0-9])"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic org.h2.expression.function.ToDateTokenizer.PATTERN_ONE_DIGIT:Ljava/util/regex/Pattern;
        13: .line 72
            ldc "^(FF[0-9]?)"
        14: .line 73
            iconst_2
        15: .line 72
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;I)Ljava/util/regex/Pattern;
            putstatic org.h2.expression.function.ToDateTokenizer.PATTERN_FF:Ljava/util/regex/Pattern;
        16: .line 79
            ldc "^(AM|A\\.M\\.|PM|P\\.M\\.)"
            iconst_2
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;I)Ljava/util/regex/Pattern;
        17: .line 78
            putstatic org.h2.expression.function.ToDateTokenizer.PATTERN_AM_PM:Ljava/util/regex/Pattern;
        18: .line 85
            ldc "^(BC|B\\.C\\.|AD|A\\.D\\.)"
            iconst_2
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;I)Ljava/util/regex/Pattern;
        19: .line 84
            putstatic org.h2.expression.function.ToDateTokenizer.PATTERN_BC_AD:Ljava/util/regex/Pattern;
        20: .line 90
            new org.h2.expression.function.ToDateTokenizer$YearParslet
            dup
            invokespecial org.h2.expression.function.ToDateTokenizer$YearParslet.<init>:()V
            putstatic org.h2.expression.function.ToDateTokenizer.PARSLET_YEAR:Lorg/h2/expression/function/ToDateTokenizer$YearParslet;
        21: .line 95
            new org.h2.expression.function.ToDateTokenizer$MonthParslet
            dup
            invokespecial org.h2.expression.function.ToDateTokenizer$MonthParslet.<init>:()V
            putstatic org.h2.expression.function.ToDateTokenizer.PARSLET_MONTH:Lorg/h2/expression/function/ToDateTokenizer$MonthParslet;
        22: .line 100
            new org.h2.expression.function.ToDateTokenizer$DayParslet
            dup
            invokespecial org.h2.expression.function.ToDateTokenizer$DayParslet.<init>:()V
            putstatic org.h2.expression.function.ToDateTokenizer.PARSLET_DAY:Lorg/h2/expression/function/ToDateTokenizer$DayParslet;
        23: .line 105
            new org.h2.expression.function.ToDateTokenizer$TimeParslet
            dup
            invokespecial org.h2.expression.function.ToDateTokenizer$TimeParslet.<init>:()V
            putstatic org.h2.expression.function.ToDateTokenizer.PARSLET_TIME:Lorg/h2/expression/function/ToDateTokenizer$TimeParslet;
        24: .line 111
            new org.h2.expression.function.ToDateTokenizer$InlineParslet
            dup
            invokespecial org.h2.expression.function.ToDateTokenizer$InlineParslet.<init>:()V
            putstatic org.h2.expression.function.ToDateTokenizer.PARSLET_INLINE:Lorg/h2/expression/function/ToDateTokenizer$InlineParslet;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.expression.function.ToDateTokenizer this
         0: .line 23
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.h2.expression.function.ToDateTokenizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/expression/function/ToDateTokenizer;

  static java.lang.String matchStringOrThrow(java.util.regex.Pattern, org.h2.expression.function.ToDateParser, java.lang.Enum<?>);
    descriptor: (Ljava/util/regex/Pattern;Lorg/h2/expression/function/ToDateParser;Ljava/lang/Enum;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // java.util.regex.Pattern p
        start local 1 // org.h2.expression.function.ToDateParser params
        start local 2 // java.lang.Enum aEnum
         0: .line 477
            aload 1 /* params */
            invokevirtual org.h2.expression.function.ToDateParser.getInputStr:()Ljava/lang/String;
            astore 3 /* s */
        start local 3 // java.lang.String s
         1: .line 478
            aload 0 /* p */
            aload 3 /* s */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 4 /* matcher */
        start local 4 // java.util.regex.Matcher matcher
         2: .line 479
            aload 4 /* matcher */
            invokevirtual java.util.regex.Matcher.find:()Z
            ifne 6
         3: .line 480
            aload 1 /* params */
         4: .line 481
            ldc "Issue happened when parsing token '%s'"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* aEnum */
            invokevirtual java.lang.Enum.name:()Ljava/lang/String;
            aastore
         5: .line 480
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic org.h2.expression.function.ToDateTokenizer.throwException:(Lorg/h2/expression/function/ToDateParser;Ljava/lang/String;)V
         6: .line 483
      StackMap locals: java.lang.String java.util.regex.Matcher
      StackMap stack:
            aload 4 /* matcher */
            iconst_1
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            areturn
        end local 4 // java.util.regex.Matcher matcher
        end local 3 // java.lang.String s
        end local 2 // java.lang.Enum aEnum
        end local 1 // org.h2.expression.function.ToDateParser params
        end local 0 // java.util.regex.Pattern p
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0        p  Ljava/util/regex/Pattern;
            0    7     1   params  Lorg/h2/expression/function/ToDateParser;
            0    7     2    aEnum  Ljava/lang/Enum<*>;
            1    7     3        s  Ljava/lang/String;
            2    7     4  matcher  Ljava/util/regex/Matcher;
    Signature: (Ljava/util/regex/Pattern;Lorg/h2/expression/function/ToDateParser;Ljava/lang/Enum<*>;)Ljava/lang/String;
    MethodParameters:
        Name  Flags
      p       
      params  
      aEnum   

  static java.lang.String setByName(org.h2.expression.function.ToDateParser, int);
    descriptor: (Lorg/h2/expression/function/ToDateParser;I)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // org.h2.expression.function.ToDateParser params
        start local 1 // int field
         0: .line 494
            aconst_null
            astore 2 /* inputFragmentStr */
        start local 2 // java.lang.String inputFragmentStr
         1: .line 495
            aload 0 /* params */
            invokevirtual org.h2.expression.function.ToDateParser.getInputStr:()Ljava/lang/String;
            astore 3 /* s */
        start local 3 // java.lang.String s
         2: .line 496
            iload 1 /* field */
            invokestatic org.h2.expression.function.ToChar.getDateNames:(I)[Ljava/lang/String;
            astore 4 /* values */
        start local 4 // java.lang.String[] values
         3: .line 497
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 18
         5: .line 498
      StackMap locals: org.h2.expression.function.ToDateParser int java.lang.String java.lang.String java.lang.String[] int
      StackMap stack:
            aload 4 /* values */
            iload 5 /* i */
            aaload
            astore 6 /* dayName */
        start local 6 // java.lang.String dayName
         6: .line 499
            aload 6 /* dayName */
            ifnonnull 8
         7: .line 500
            goto 17
         8: .line 502
      StackMap locals: java.lang.String
      StackMap stack:
            aload 6 /* dayName */
            invokevirtual java.lang.String.length:()I
            istore 7 /* len */
        start local 7 // int len
         9: .line 503
            aload 6 /* dayName */
            aload 3 /* s */
            iconst_0
            iload 7 /* len */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 17
        10: .line 504
            iload 1 /* field */
            tableswitch { // 0 - 3
                    0: 11
                    1: 11
                    2: 13
                    3: 13
              default: 14
          }
        11: .line 507
      StackMap locals: int
      StackMap stack:
            aload 0 /* params */
            iload 5 /* i */
            iconst_1
            iadd
            invokevirtual org.h2.expression.function.ToDateParser.setMonth:(I)V
        12: .line 508
            goto 15
        13: .line 512
      StackMap locals:
      StackMap stack:
            goto 15
        14: .line 514
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        15: .line 516
      StackMap locals:
      StackMap stack:
            aload 6 /* dayName */
            astore 2 /* inputFragmentStr */
        16: .line 517
            goto 19
        end local 7 // int len
        end local 6 // java.lang.String dayName
        17: .line 497
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 5 /* i */
            aload 4 /* values */
            arraylength
            if_icmplt 5
        end local 5 // int i
        19: .line 520
      StackMap locals:
      StackMap stack:
            aload 2 /* inputFragmentStr */
            ifnull 20
            aload 2 /* inputFragmentStr */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 24
        20: .line 521
      StackMap locals:
      StackMap stack:
            aload 0 /* params */
        21: .line 522
            ldc "Tried to parse one of '%s' but failed (may be an internal error?)"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        22: .line 523
            aload 4 /* values */
            invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
            aastore
        23: .line 521
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic org.h2.expression.function.ToDateTokenizer.throwException:(Lorg/h2/expression/function/ToDateParser;Ljava/lang/String;)V
        24: .line 525
      StackMap locals:
      StackMap stack:
            aload 2 /* inputFragmentStr */
            areturn
        end local 4 // java.lang.String[] values
        end local 3 // java.lang.String s
        end local 2 // java.lang.String inputFragmentStr
        end local 1 // int field
        end local 0 // org.h2.expression.function.ToDateParser params
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   25     0            params  Lorg/h2/expression/function/ToDateParser;
            0   25     1             field  I
            1   25     2  inputFragmentStr  Ljava/lang/String;
            2   25     3                 s  Ljava/lang/String;
            3   25     4            values  [Ljava/lang/String;
            4   19     5                 i  I
            6   17     6           dayName  Ljava/lang/String;
            9   17     7               len  I
    MethodParameters:
        Name  Flags
      params  
      field   

  static void throwException(org.h2.expression.function.ToDateParser, java.lang.String);
    descriptor: (Lorg/h2/expression/function/ToDateParser;Ljava/lang/String;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=2, args_size=2
        start local 0 // org.h2.expression.function.ToDateParser params
        start local 1 // java.lang.String errorStr
         0: .line 535
            ldc 90056
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 536
            aload 0 /* params */
            invokevirtual org.h2.expression.function.ToDateParser.getFunctionName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
         2: .line 537
            ldc " %s. Details: %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* errorStr */
            aastore
            dup
            iconst_1
            aload 0 /* params */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aastore
         3: .line 535
            invokestatic org.h2.message.DbException.get:(I[Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 1 // java.lang.String errorStr
        end local 0 // org.h2.expression.function.ToDateParser params
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0    params  Lorg/h2/expression/function/ToDateParser;
            0    4     1  errorStr  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      params    
      errorStr  
}
SourceFile: "ToDateTokenizer.java"
NestMembers:
  org.h2.expression.function.ToDateTokenizer$DayParslet  org.h2.expression.function.ToDateTokenizer$FormatTokenEnum  org.h2.expression.function.ToDateTokenizer$InlineParslet  org.h2.expression.function.ToDateTokenizer$MonthParslet  org.h2.expression.function.ToDateTokenizer$TimeParslet  org.h2.expression.function.ToDateTokenizer$ToDateParslet  org.h2.expression.function.ToDateTokenizer$YearParslet
InnerClasses:
  DayParslet = org.h2.expression.function.ToDateTokenizer$DayParslet of org.h2.expression.function.ToDateTokenizer
  public final FormatTokenEnum = org.h2.expression.function.ToDateTokenizer$FormatTokenEnum of org.h2.expression.function.ToDateTokenizer
  InlineParslet = org.h2.expression.function.ToDateTokenizer$InlineParslet of org.h2.expression.function.ToDateTokenizer
  MonthParslet = org.h2.expression.function.ToDateTokenizer$MonthParslet of org.h2.expression.function.ToDateTokenizer
  TimeParslet = org.h2.expression.function.ToDateTokenizer$TimeParslet of org.h2.expression.function.ToDateTokenizer
  abstract ToDateParslet = org.h2.expression.function.ToDateTokenizer$ToDateParslet of org.h2.expression.function.ToDateTokenizer
  YearParslet = org.h2.expression.function.ToDateTokenizer$YearParslet of org.h2.expression.function.ToDateTokenizer