public class ch.qos.logback.core.pattern.parser.Parser<E> extends ch.qos.logback.core.spi.ContextAwareBase
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: ch.qos.logback.core.pattern.parser.Parser
  super_class: ch.qos.logback.core.spi.ContextAwareBase
{
  public static final java.lang.String MISSING_RIGHT_PARENTHESIS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "http://logback.qos.ch/codes.html#missingRightParenthesis"

  public static final java.util.Map<java.lang.String, java.lang.String> DEFAULT_COMPOSITE_CONVERTER_MAP;
    descriptor: Ljava/util/Map;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  public static final java.lang.String REPLACE_CONVERTER_WORD;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "replace"

  final java.util.List tokenList;
    descriptor: Ljava/util/List;
    flags: (0x0010) ACC_FINAL

  int pointer;
    descriptor: I
    flags: (0x0000) 

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 47
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic ch.qos.logback.core.pattern.parser.Parser.DEFAULT_COMPOSITE_CONVERTER_MAP:Ljava/util/Map;
         1: .line 50
            getstatic ch.qos.logback.core.pattern.parser.Parser.DEFAULT_COMPOSITE_CONVERTER_MAP:Ljava/util/Map;
            getstatic ch.qos.logback.core.pattern.parser.Token.BARE_COMPOSITE_KEYWORD_TOKEN:Lch/qos/logback/core/pattern/parser/Token;
            invokevirtual ch.qos.logback.core.pattern.parser.Token.getValue:()Ljava/lang/Object;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            ldc Lch/qos/logback/core/pattern/IdentityCompositeConverter;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 51
            getstatic ch.qos.logback.core.pattern.parser.Parser.DEFAULT_COMPOSITE_CONVERTER_MAP:Ljava/util/Map;
            ldc "replace"
            ldc Lch/qos/logback/core/pattern/ReplacingCompositeConverter;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 52
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(ch.qos.logback.core.pattern.parser.TokenStream);
    descriptor: (Lch/qos/logback/core/pattern/parser/TokenStream;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // ch.qos.logback.core.pattern.parser.Parser this
        start local 1 // ch.qos.logback.core.pattern.parser.TokenStream ts
         0: .line 57
            aload 0 /* this */
            invokespecial ch.qos.logback.core.spi.ContextAwareBase.<init>:()V
         1: .line 55
            aload 0 /* this */
            iconst_0
            putfield ch.qos.logback.core.pattern.parser.Parser.pointer:I
         2: .line 58
            aload 0 /* this */
            aload 1 /* ts */
            invokevirtual ch.qos.logback.core.pattern.parser.TokenStream.tokenize:()Ljava/util/List;
            putfield ch.qos.logback.core.pattern.parser.Parser.tokenList:Ljava/util/List;
         3: .line 59
            return
        end local 1 // ch.qos.logback.core.pattern.parser.TokenStream ts
        end local 0 // ch.qos.logback.core.pattern.parser.Parser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lch/qos/logback/core/pattern/parser/Parser<TE;>;
            0    4     1    ts  Lch/qos/logback/core/pattern/parser/TokenStream;
    Exceptions:
      throws ch.qos.logback.core.spi.ScanException
    MethodParameters:
      Name  Flags
      ts    

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // ch.qos.logback.core.pattern.parser.Parser this
        start local 1 // java.lang.String pattern
         0: .line 62
            aload 0 /* this */
            aload 1 /* pattern */
            new ch.qos.logback.core.pattern.util.RegularEscapeUtil
            dup
            invokespecial ch.qos.logback.core.pattern.util.RegularEscapeUtil.<init>:()V
            invokespecial ch.qos.logback.core.pattern.parser.Parser.<init>:(Ljava/lang/String;Lch/qos/logback/core/pattern/util/IEscapeUtil;)V
         1: .line 63
            return
        end local 1 // java.lang.String pattern
        end local 0 // ch.qos.logback.core.pattern.parser.Parser this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lch/qos/logback/core/pattern/parser/Parser<TE;>;
            0    2     1  pattern  Ljava/lang/String;
    Exceptions:
      throws ch.qos.logback.core.spi.ScanException
    MethodParameters:
         Name  Flags
      pattern  

  public void <init>(java.lang.String, ch.qos.logback.core.pattern.util.IEscapeUtil);
    descriptor: (Ljava/lang/String;Lch/qos/logback/core/pattern/util/IEscapeUtil;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // ch.qos.logback.core.pattern.parser.Parser this
        start local 1 // java.lang.String pattern
        start local 2 // ch.qos.logback.core.pattern.util.IEscapeUtil escapeUtil
         0: .line 65
            aload 0 /* this */
            invokespecial ch.qos.logback.core.spi.ContextAwareBase.<init>:()V
         1: .line 55
            aload 0 /* this */
            iconst_0
            putfield ch.qos.logback.core.pattern.parser.Parser.pointer:I
         2: .line 67
            new ch.qos.logback.core.pattern.parser.TokenStream
            dup
            aload 1 /* pattern */
            aload 2 /* escapeUtil */
            invokespecial ch.qos.logback.core.pattern.parser.TokenStream.<init>:(Ljava/lang/String;Lch/qos/logback/core/pattern/util/IEscapeUtil;)V
            astore 3 /* ts */
        start local 3 // ch.qos.logback.core.pattern.parser.TokenStream ts
         3: .line 68
            aload 0 /* this */
            aload 3 /* ts */
            invokevirtual ch.qos.logback.core.pattern.parser.TokenStream.tokenize:()Ljava/util/List;
            putfield ch.qos.logback.core.pattern.parser.Parser.tokenList:Ljava/util/List;
        end local 3 // ch.qos.logback.core.pattern.parser.TokenStream ts
         4: .line 69
            goto 7
      StackMap locals: ch.qos.logback.core.pattern.parser.Parser java.lang.String ch.qos.logback.core.pattern.util.IEscapeUtil
      StackMap stack: java.lang.IllegalArgumentException
         5: astore 3 /* npe */
        start local 3 // java.lang.IllegalArgumentException npe
         6: .line 70
            new ch.qos.logback.core.spi.ScanException
            dup
            ldc "Failed to initialize Parser"
            aload 3 /* npe */
            invokespecial ch.qos.logback.core.spi.ScanException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.IllegalArgumentException npe
         7: .line 72
      StackMap locals:
      StackMap stack:
            return
        end local 2 // ch.qos.logback.core.pattern.util.IEscapeUtil escapeUtil
        end local 1 // java.lang.String pattern
        end local 0 // ch.qos.logback.core.pattern.parser.Parser this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lch/qos/logback/core/pattern/parser/Parser<TE;>;
            0    8     1     pattern  Ljava/lang/String;
            0    8     2  escapeUtil  Lch/qos/logback/core/pattern/util/IEscapeUtil;
            3    4     3          ts  Lch/qos/logback/core/pattern/parser/TokenStream;
            6    7     3         npe  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           2     4       5  Class java.lang.IllegalArgumentException
    Exceptions:
      throws ch.qos.logback.core.spi.ScanException
    MethodParameters:
            Name  Flags
      pattern     
      escapeUtil  

  public ch.qos.logback.core.pattern.Converter<E> compile(ch.qos.logback.core.pattern.parser.Node, java.util.Map);
    descriptor: (Lch/qos/logback/core/pattern/parser/Node;Ljava/util/Map;)Lch/qos/logback/core/pattern/Converter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // ch.qos.logback.core.pattern.parser.Parser this
        start local 1 // ch.qos.logback.core.pattern.parser.Node top
        start local 2 // java.util.Map converterMap
         0: .line 84
            new ch.qos.logback.core.pattern.parser.Compiler
            dup
            aload 1 /* top */
            aload 2 /* converterMap */
            invokespecial ch.qos.logback.core.pattern.parser.Compiler.<init>:(Lch/qos/logback/core/pattern/parser/Node;Ljava/util/Map;)V
            astore 3 /* compiler */
        start local 3 // ch.qos.logback.core.pattern.parser.Compiler compiler
         1: .line 85
            aload 3 /* compiler */
            aload 0 /* this */
            getfield ch.qos.logback.core.pattern.parser.Parser.context:Lch/qos/logback/core/Context;
            invokevirtual ch.qos.logback.core.pattern.parser.Compiler.setContext:(Lch/qos/logback/core/Context;)V
         2: .line 87
            aload 3 /* compiler */
            invokevirtual ch.qos.logback.core.pattern.parser.Compiler.compile:()Lch/qos/logback/core/pattern/Converter;
            areturn
        end local 3 // ch.qos.logback.core.pattern.parser.Compiler compiler
        end local 2 // java.util.Map converterMap
        end local 1 // ch.qos.logback.core.pattern.parser.Node top
        end local 0 // ch.qos.logback.core.pattern.parser.Parser this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lch/qos/logback/core/pattern/parser/Parser<TE;>;
            0    3     1           top  Lch/qos/logback/core/pattern/parser/Node;
            0    3     2  converterMap  Ljava/util/Map;
            1    3     3      compiler  Lch/qos/logback/core/pattern/parser/Compiler<TE;>;
    Signature: (Lch/qos/logback/core/pattern/parser/Node;Ljava/util/Map;)Lch/qos/logback/core/pattern/Converter<TE;>;
    MethodParameters:
              Name  Flags
      top           final
      converterMap  

  public ch.qos.logback.core.pattern.parser.Node parse();
    descriptor: ()Lch/qos/logback/core/pattern/parser/Node;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // ch.qos.logback.core.pattern.parser.Parser this
         0: .line 91
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.E:()Lch/qos/logback/core/pattern/parser/Node;
            areturn
        end local 0 // ch.qos.logback.core.pattern.parser.Parser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lch/qos/logback/core/pattern/parser/Parser<TE;>;
    Exceptions:
      throws ch.qos.logback.core.spi.ScanException

  ch.qos.logback.core.pattern.parser.Node E();
    descriptor: ()Lch/qos/logback/core/pattern/parser/Node;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // ch.qos.logback.core.pattern.parser.Parser this
         0: .line 96
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.T:()Lch/qos/logback/core/pattern/parser/Node;
            astore 1 /* t */
        start local 1 // ch.qos.logback.core.pattern.parser.Node t
         1: .line 97
            aload 1 /* t */
            ifnonnull 3
         2: .line 98
            aconst_null
            areturn
         3: .line 100
      StackMap locals: ch.qos.logback.core.pattern.parser.Node
      StackMap stack:
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.Eopt:()Lch/qos/logback/core/pattern/parser/Node;
            astore 2 /* eOpt */
        start local 2 // ch.qos.logback.core.pattern.parser.Node eOpt
         4: .line 101
            aload 2 /* eOpt */
            ifnull 6
         5: .line 102
            aload 1 /* t */
            aload 2 /* eOpt */
            invokevirtual ch.qos.logback.core.pattern.parser.Node.setNext:(Lch/qos/logback/core/pattern/parser/Node;)V
         6: .line 104
      StackMap locals: ch.qos.logback.core.pattern.parser.Node
      StackMap stack:
            aload 1 /* t */
            areturn
        end local 2 // ch.qos.logback.core.pattern.parser.Node eOpt
        end local 1 // ch.qos.logback.core.pattern.parser.Node t
        end local 0 // ch.qos.logback.core.pattern.parser.Parser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lch/qos/logback/core/pattern/parser/Parser<TE;>;
            1    7     1     t  Lch/qos/logback/core/pattern/parser/Node;
            4    7     2  eOpt  Lch/qos/logback/core/pattern/parser/Node;
    Exceptions:
      throws ch.qos.logback.core.spi.ScanException

  ch.qos.logback.core.pattern.parser.Node Eopt();
    descriptor: ()Lch/qos/logback/core/pattern/parser/Node;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // ch.qos.logback.core.pattern.parser.Parser this
         0: .line 110
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.getCurentToken:()Lch/qos/logback/core/pattern/parser/Token;
            astore 1 /* next */
        start local 1 // ch.qos.logback.core.pattern.parser.Token next
         1: .line 112
            aload 1 /* next */
            ifnonnull 3
         2: .line 113
            aconst_null
            areturn
         3: .line 115
      StackMap locals: ch.qos.logback.core.pattern.parser.Token
      StackMap stack:
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.E:()Lch/qos/logback/core/pattern/parser/Node;
            areturn
        end local 1 // ch.qos.logback.core.pattern.parser.Token next
        end local 0 // ch.qos.logback.core.pattern.parser.Parser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lch/qos/logback/core/pattern/parser/Parser<TE;>;
            1    4     1  next  Lch/qos/logback/core/pattern/parser/Token;
    Exceptions:
      throws ch.qos.logback.core.spi.ScanException

  ch.qos.logback.core.pattern.parser.Node T();
    descriptor: ()Lch/qos/logback/core/pattern/parser/Node;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // ch.qos.logback.core.pattern.parser.Parser this
         0: .line 121
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.getCurentToken:()Lch/qos/logback/core/pattern/parser/Token;
            astore 1 /* t */
        start local 1 // ch.qos.logback.core.pattern.parser.Token t
         1: .line 122
            aload 0 /* this */
            aload 1 /* t */
            ldc "a LITERAL or '%'"
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.expectNotNull:(Lch/qos/logback/core/pattern/parser/Token;Ljava/lang/String;)V
         2: .line 124
            aload 1 /* t */
            invokevirtual ch.qos.logback.core.pattern.parser.Token.getType:()I
            lookupswitch { // 2
                   37: 5
                 1000: 3
              default: 16
          }
         3: .line 126
      StackMap locals: ch.qos.logback.core.pattern.parser.Token
      StackMap stack:
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.advanceTokenPointer:()V
         4: .line 127
            new ch.qos.logback.core.pattern.parser.Node
            dup
            iconst_0
            aload 1 /* t */
            invokevirtual ch.qos.logback.core.pattern.parser.Token.getValue:()Ljava/lang/Object;
            invokespecial ch.qos.logback.core.pattern.parser.Node.<init>:(ILjava/lang/Object;)V
            areturn
         5: .line 129
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.advanceTokenPointer:()V
         6: .line 132
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.getCurentToken:()Lch/qos/logback/core/pattern/parser/Token;
            astore 3 /* u */
        start local 3 // ch.qos.logback.core.pattern.parser.Token u
         7: .line 134
            aload 0 /* this */
            aload 3 /* u */
            ldc "a FORMAT_MODIFIER, SIMPLE_KEYWORD or COMPOUND_KEYWORD"
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.expectNotNull:(Lch/qos/logback/core/pattern/parser/Token;Ljava/lang/String;)V
         8: .line 135
            aload 3 /* u */
            invokevirtual ch.qos.logback.core.pattern.parser.Token.getType:()I
            sipush 1002
            if_icmpne 14
         9: .line 136
            aload 3 /* u */
            invokevirtual ch.qos.logback.core.pattern.parser.Token.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic ch.qos.logback.core.pattern.FormatInfo.valueOf:(Ljava/lang/String;)Lch/qos/logback/core/pattern/FormatInfo;
            astore 2 /* fi */
        start local 2 // ch.qos.logback.core.pattern.FormatInfo fi
        10: .line 137
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.advanceTokenPointer:()V
        11: .line 138
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.C:()Lch/qos/logback/core/pattern/parser/FormattingNode;
            astore 4 /* c */
        start local 4 // ch.qos.logback.core.pattern.parser.FormattingNode c
        12: .line 139
            aload 4 /* c */
            aload 2 /* fi */
            invokevirtual ch.qos.logback.core.pattern.parser.FormattingNode.setFormatInfo:(Lch/qos/logback/core/pattern/FormatInfo;)V
        13: .line 140
            goto 15
        end local 4 // ch.qos.logback.core.pattern.parser.FormattingNode c
        end local 2 // ch.qos.logback.core.pattern.FormatInfo fi
        14: .line 141
      StackMap locals: ch.qos.logback.core.pattern.parser.Parser ch.qos.logback.core.pattern.parser.Token top ch.qos.logback.core.pattern.parser.Token
      StackMap stack:
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.C:()Lch/qos/logback/core/pattern/parser/FormattingNode;
            astore 4 /* c */
        start local 4 // ch.qos.logback.core.pattern.parser.FormattingNode c
        15: .line 143
      StackMap locals: ch.qos.logback.core.pattern.parser.FormattingNode
      StackMap stack:
            aload 4 /* c */
            areturn
        end local 4 // ch.qos.logback.core.pattern.parser.FormattingNode c
        end local 3 // ch.qos.logback.core.pattern.parser.Token u
        16: .line 146
      StackMap locals: ch.qos.logback.core.pattern.parser.Parser ch.qos.logback.core.pattern.parser.Token
      StackMap stack:
            aconst_null
            areturn
        end local 1 // ch.qos.logback.core.pattern.parser.Token t
        end local 0 // ch.qos.logback.core.pattern.parser.Parser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lch/qos/logback/core/pattern/parser/Parser<TE;>;
            1   17     1     t  Lch/qos/logback/core/pattern/parser/Token;
           10   14     2    fi  Lch/qos/logback/core/pattern/FormatInfo;
            7   16     3     u  Lch/qos/logback/core/pattern/parser/Token;
           12   14     4     c  Lch/qos/logback/core/pattern/parser/FormattingNode;
           15   16     4     c  Lch/qos/logback/core/pattern/parser/FormattingNode;
    Exceptions:
      throws ch.qos.logback.core.spi.ScanException

  ch.qos.logback.core.pattern.parser.FormattingNode C();
    descriptor: ()Lch/qos/logback/core/pattern/parser/FormattingNode;
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // ch.qos.logback.core.pattern.parser.Parser this
         0: .line 153
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.getCurentToken:()Lch/qos/logback/core/pattern/parser/Token;
            astore 1 /* t */
        start local 1 // ch.qos.logback.core.pattern.parser.Token t
         1: .line 156
            aload 0 /* this */
            aload 1 /* t */
            ldc "a LEFT_PARENTHESIS or KEYWORD"
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.expectNotNull:(Lch/qos/logback/core/pattern/parser/Token;Ljava/lang/String;)V
         2: .line 157
            aload 1 /* t */
            invokevirtual ch.qos.logback.core.pattern.parser.Token.getType:()I
            istore 2 /* type */
        start local 2 // int type
         3: .line 158
            iload 2 /* type */
            tableswitch { // 1004 - 1005
                 1004: 4
                 1005: 5
              default: 7
          }
         4: .line 160
      StackMap locals: ch.qos.logback.core.pattern.parser.Token int
      StackMap stack:
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.SINGLE:()Lch/qos/logback/core/pattern/parser/FormattingNode;
            areturn
         5: .line 162
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.advanceTokenPointer:()V
         6: .line 163
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual ch.qos.logback.core.pattern.parser.Token.getValue:()Ljava/lang/Object;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.COMPOSITE:(Ljava/lang/String;)Lch/qos/logback/core/pattern/parser/FormattingNode;
            areturn
         7: .line 165
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected token "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* t */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // int type
        end local 1 // ch.qos.logback.core.pattern.parser.Token t
        end local 0 // ch.qos.logback.core.pattern.parser.Parser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lch/qos/logback/core/pattern/parser/Parser<TE;>;
            1    8     1     t  Lch/qos/logback/core/pattern/parser/Token;
            3    8     2  type  I
    Exceptions:
      throws ch.qos.logback.core.spi.ScanException

  ch.qos.logback.core.pattern.parser.FormattingNode SINGLE();
    descriptor: ()Lch/qos/logback/core/pattern/parser/FormattingNode;
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // ch.qos.logback.core.pattern.parser.Parser this
         0: .line 171
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.getNextToken:()Lch/qos/logback/core/pattern/parser/Token;
            astore 1 /* t */
        start local 1 // ch.qos.logback.core.pattern.parser.Token t
         1: .line 173
            new ch.qos.logback.core.pattern.parser.SimpleKeywordNode
            dup
            aload 1 /* t */
            invokevirtual ch.qos.logback.core.pattern.parser.Token.getValue:()Ljava/lang/Object;
            invokespecial ch.qos.logback.core.pattern.parser.SimpleKeywordNode.<init>:(Ljava/lang/Object;)V
            astore 2 /* keywordNode */
        start local 2 // ch.qos.logback.core.pattern.parser.SimpleKeywordNode keywordNode
         2: .line 175
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.getCurentToken:()Lch/qos/logback/core/pattern/parser/Token;
            astore 3 /* ot */
        start local 3 // ch.qos.logback.core.pattern.parser.Token ot
         3: .line 176
            aload 3 /* ot */
            ifnull 7
            aload 3 /* ot */
            invokevirtual ch.qos.logback.core.pattern.parser.Token.getType:()I
            sipush 1006
            if_icmpne 7
         4: .line 177
            aload 3 /* ot */
            invokevirtual ch.qos.logback.core.pattern.parser.Token.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            astore 4 /* optionList */
        start local 4 // java.util.List optionList
         5: .line 178
            aload 2 /* keywordNode */
            aload 4 /* optionList */
            invokevirtual ch.qos.logback.core.pattern.parser.SimpleKeywordNode.setOptions:(Ljava/util/List;)V
         6: .line 179
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.advanceTokenPointer:()V
        end local 4 // java.util.List optionList
         7: .line 181
      StackMap locals: ch.qos.logback.core.pattern.parser.Token ch.qos.logback.core.pattern.parser.SimpleKeywordNode ch.qos.logback.core.pattern.parser.Token
      StackMap stack:
            aload 2 /* keywordNode */
            areturn
        end local 3 // ch.qos.logback.core.pattern.parser.Token ot
        end local 2 // ch.qos.logback.core.pattern.parser.SimpleKeywordNode keywordNode
        end local 1 // ch.qos.logback.core.pattern.parser.Token t
        end local 0 // ch.qos.logback.core.pattern.parser.Parser this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lch/qos/logback/core/pattern/parser/Parser<TE;>;
            1    8     1            t  Lch/qos/logback/core/pattern/parser/Token;
            2    8     2  keywordNode  Lch/qos/logback/core/pattern/parser/SimpleKeywordNode;
            3    8     3           ot  Lch/qos/logback/core/pattern/parser/Token;
            5    7     4   optionList  Ljava/util/List<Ljava/lang/String;>;
    Exceptions:
      throws ch.qos.logback.core.spi.ScanException

  ch.qos.logback.core.pattern.parser.FormattingNode COMPOSITE(java.lang.String);
    descriptor: (Ljava/lang/String;)Lch/qos/logback/core/pattern/parser/FormattingNode;
    flags: (0x0000) 
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // ch.qos.logback.core.pattern.parser.Parser this
        start local 1 // java.lang.String keyword
         0: .line 185
            new ch.qos.logback.core.pattern.parser.CompositeNode
            dup
            aload 1 /* keyword */
            invokespecial ch.qos.logback.core.pattern.parser.CompositeNode.<init>:(Ljava/lang/String;)V
            astore 2 /* compositeNode */
        start local 2 // ch.qos.logback.core.pattern.parser.CompositeNode compositeNode
         1: .line 187
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.E:()Lch/qos/logback/core/pattern/parser/Node;
            astore 3 /* childNode */
        start local 3 // ch.qos.logback.core.pattern.parser.Node childNode
         2: .line 188
            aload 2 /* compositeNode */
            aload 3 /* childNode */
            invokevirtual ch.qos.logback.core.pattern.parser.CompositeNode.setChildNode:(Lch/qos/logback/core/pattern/parser/Node;)V
         3: .line 190
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.getNextToken:()Lch/qos/logback/core/pattern/parser/Token;
            astore 4 /* t */
        start local 4 // ch.qos.logback.core.pattern.parser.Token t
         4: .line 192
            aload 4 /* t */
            ifnull 5
            aload 4 /* t */
            invokevirtual ch.qos.logback.core.pattern.parser.Token.getType:()I
            bipush 41
            if_icmpeq 9
         5: .line 193
      StackMap locals: ch.qos.logback.core.pattern.parser.CompositeNode ch.qos.logback.core.pattern.parser.Node ch.qos.logback.core.pattern.parser.Token
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Expecting RIGHT_PARENTHESIS token but got "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* t */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* msg */
        start local 5 // java.lang.String msg
         6: .line 194
            aload 0 /* this */
            aload 5 /* msg */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.addError:(Ljava/lang/String;)V
         7: .line 195
            aload 0 /* this */
            ldc "See also http://logback.qos.ch/codes.html#missingRightParenthesis"
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.addError:(Ljava/lang/String;)V
         8: .line 196
            new ch.qos.logback.core.spi.ScanException
            dup
            aload 5 /* msg */
            invokespecial ch.qos.logback.core.spi.ScanException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.String msg
         9: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.getCurentToken:()Lch/qos/logback/core/pattern/parser/Token;
            astore 5 /* ot */
        start local 5 // ch.qos.logback.core.pattern.parser.Token ot
        10: .line 199
            aload 5 /* ot */
            ifnull 14
            aload 5 /* ot */
            invokevirtual ch.qos.logback.core.pattern.parser.Token.getType:()I
            sipush 1006
            if_icmpne 14
        11: .line 200
            aload 5 /* ot */
            invokevirtual ch.qos.logback.core.pattern.parser.Token.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            astore 6 /* optionList */
        start local 6 // java.util.List optionList
        12: .line 201
            aload 2 /* compositeNode */
            aload 6 /* optionList */
            invokevirtual ch.qos.logback.core.pattern.parser.CompositeNode.setOptions:(Ljava/util/List;)V
        13: .line 202
            aload 0 /* this */
            invokevirtual ch.qos.logback.core.pattern.parser.Parser.advanceTokenPointer:()V
        end local 6 // java.util.List optionList
        14: .line 204
      StackMap locals: ch.qos.logback.core.pattern.parser.Token
      StackMap stack:
            aload 2 /* compositeNode */
            areturn
        end local 5 // ch.qos.logback.core.pattern.parser.Token ot
        end local 4 // ch.qos.logback.core.pattern.parser.Token t
        end local 3 // ch.qos.logback.core.pattern.parser.Node childNode
        end local 2 // ch.qos.logback.core.pattern.parser.CompositeNode compositeNode
        end local 1 // java.lang.String keyword
        end local 0 // ch.qos.logback.core.pattern.parser.Parser this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0           this  Lch/qos/logback/core/pattern/parser/Parser<TE;>;
            0   15     1        keyword  Ljava/lang/String;
            1   15     2  compositeNode  Lch/qos/logback/core/pattern/parser/CompositeNode;
            2   15     3      childNode  Lch/qos/logback/core/pattern/parser/Node;
            4   15     4              t  Lch/qos/logback/core/pattern/parser/Token;
            6    9     5            msg  Ljava/lang/String;
           10   15     5             ot  Lch/qos/logback/core/pattern/parser/Token;
           12   14     6     optionList  Ljava/util/List<Ljava/lang/String;>;
    Exceptions:
      throws ch.qos.logback.core.spi.ScanException
    MethodParameters:
         Name  Flags
      keyword  

  ch.qos.logback.core.pattern.parser.Token getNextToken();
    descriptor: ()Lch/qos/logback/core/pattern/parser/Token;
    flags: (0x0000) 
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // ch.qos.logback.core.pattern.parser.Parser this
         0: .line 208
            aload 0 /* this */
            getfield ch.qos.logback.core.pattern.parser.Parser.pointer:I
            aload 0 /* this */
            getfield ch.qos.logback.core.pattern.parser.Parser.tokenList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmpge 2
         1: .line 209
            aload 0 /* this */
            getfield ch.qos.logback.core.pattern.parser.Parser.tokenList:Ljava/util/List;
            aload 0 /* this */
            dup
            getfield ch.qos.logback.core.pattern.parser.Parser.pointer:I
            dup_x1
            iconst_1
            iadd
            putfield ch.qos.logback.core.pattern.parser.Parser.pointer:I
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast ch.qos.logback.core.pattern.parser.Token
            areturn
         2: .line 211
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // ch.qos.logback.core.pattern.parser.Parser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lch/qos/logback/core/pattern/parser/Parser<TE;>;

  ch.qos.logback.core.pattern.parser.Token getCurentToken();
    descriptor: ()Lch/qos/logback/core/pattern/parser/Token;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // ch.qos.logback.core.pattern.parser.Parser this
         0: .line 215
            aload 0 /* this */
            getfield ch.qos.logback.core.pattern.parser.Parser.pointer:I
            aload 0 /* this */
            getfield ch.qos.logback.core.pattern.parser.Parser.tokenList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmpge 2
         1: .line 216
            aload 0 /* this */
            getfield ch.qos.logback.core.pattern.parser.Parser.tokenList:Ljava/util/List;
            aload 0 /* this */
            getfield ch.qos.logback.core.pattern.parser.Parser.pointer:I
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast ch.qos.logback.core.pattern.parser.Token
            areturn
         2: .line 218
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // ch.qos.logback.core.pattern.parser.Parser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lch/qos/logback/core/pattern/parser/Parser<TE;>;

  void advanceTokenPointer();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // ch.qos.logback.core.pattern.parser.Parser this
         0: .line 222
            aload 0 /* this */
            dup
            getfield ch.qos.logback.core.pattern.parser.Parser.pointer:I
            iconst_1
            iadd
            putfield ch.qos.logback.core.pattern.parser.Parser.pointer:I
         1: .line 223
            return
        end local 0 // ch.qos.logback.core.pattern.parser.Parser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lch/qos/logback/core/pattern/parser/Parser<TE;>;

  void expectNotNull(ch.qos.logback.core.pattern.parser.Token, java.lang.String);
    descriptor: (Lch/qos/logback/core/pattern/parser/Token;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // ch.qos.logback.core.pattern.parser.Parser this
        start local 1 // ch.qos.logback.core.pattern.parser.Token t
        start local 2 // java.lang.String expected
         0: .line 226
            aload 1 /* t */
            ifnonnull 2
         1: .line 227
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "All tokens consumed but was expecting "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* expected */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 229
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String expected
        end local 1 // ch.qos.logback.core.pattern.parser.Token t
        end local 0 // ch.qos.logback.core.pattern.parser.Parser this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lch/qos/logback/core/pattern/parser/Parser<TE;>;
            0    3     1         t  Lch/qos/logback/core/pattern/parser/Token;
            0    3     2  expected  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      t         
      expected  
}
Signature: <E:Ljava/lang/Object;>Lch/qos/logback/core/spi/ContextAwareBase;
SourceFile: "Parser.java"