final class freemarker.core.ParameterRole
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: freemarker.core.ParameterRole
  super_class: java.lang.Object
{
  private final java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static final freemarker.core.ParameterRole UNKNOWN;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole LEFT_HAND_OPERAND;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole RIGHT_HAND_OPERAND;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole ENCLOSED_OPERAND;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole ITEM_VALUE;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole ITEM_KEY;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole ASSIGNMENT_TARGET;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole ASSIGNMENT_OPERATOR;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole ASSIGNMENT_SOURCE;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole VARIABLE_SCOPE;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole NAMESPACE;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole ERROR_HANDLER;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole PASSED_VALUE;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole CONDITION;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole VALUE;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole AST_NODE_SUBTYPE;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole PLACEHOLDER_VARIABLE;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole EXPRESSION_TEMPLATE;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole LIST_SOURCE;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole TARGET_LOOP_VARIABLE;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole TEMPLATE_NAME;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole PARSE_PARAMETER;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole ENCODING_PARAMETER;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole IGNORE_MISSING_PARAMETER;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole PARAMETER_NAME;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole PARAMETER_DEFAULT;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole CATCH_ALL_PARAMETER_NAME;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole ARGUMENT_NAME;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole ARGUMENT_VALUE;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole CONTENT;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole EMBEDDED_TEMPLATE;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole VALUE_PART;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole MINIMUM_DECIMALS;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole MAXIMUM_DECIMALS;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole NODE;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole CALLEE;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.ParameterRole MESSAGE;
    descriptor: Lfreemarker/core/ParameterRole;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 30
            new freemarker.core.ParameterRole
            dup
            ldc "[unknown role]"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.UNKNOWN:Lfreemarker/core/ParameterRole;
         1: .line 35
            new freemarker.core.ParameterRole
            dup
            ldc "left-hand operand"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.LEFT_HAND_OPERAND:Lfreemarker/core/ParameterRole;
         2: .line 36
            new freemarker.core.ParameterRole
            dup
            ldc "right-hand operand"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.RIGHT_HAND_OPERAND:Lfreemarker/core/ParameterRole;
         3: .line 37
            new freemarker.core.ParameterRole
            dup
            ldc "enclosed operand"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.ENCLOSED_OPERAND:Lfreemarker/core/ParameterRole;
         4: .line 38
            new freemarker.core.ParameterRole
            dup
            ldc "item value"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.ITEM_VALUE:Lfreemarker/core/ParameterRole;
         5: .line 39
            new freemarker.core.ParameterRole
            dup
            ldc "item key"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.ITEM_KEY:Lfreemarker/core/ParameterRole;
         6: .line 40
            new freemarker.core.ParameterRole
            dup
            ldc "assignment target"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.ASSIGNMENT_TARGET:Lfreemarker/core/ParameterRole;
         7: .line 41
            new freemarker.core.ParameterRole
            dup
            ldc "assignment operator"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.ASSIGNMENT_OPERATOR:Lfreemarker/core/ParameterRole;
         8: .line 42
            new freemarker.core.ParameterRole
            dup
            ldc "assignment source"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.ASSIGNMENT_SOURCE:Lfreemarker/core/ParameterRole;
         9: .line 43
            new freemarker.core.ParameterRole
            dup
            ldc "variable scope"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.VARIABLE_SCOPE:Lfreemarker/core/ParameterRole;
        10: .line 44
            new freemarker.core.ParameterRole
            dup
            ldc "namespace"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.NAMESPACE:Lfreemarker/core/ParameterRole;
        11: .line 45
            new freemarker.core.ParameterRole
            dup
            ldc "error handler"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.ERROR_HANDLER:Lfreemarker/core/ParameterRole;
        12: .line 46
            new freemarker.core.ParameterRole
            dup
            ldc "passed value"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.PASSED_VALUE:Lfreemarker/core/ParameterRole;
        13: .line 47
            new freemarker.core.ParameterRole
            dup
            ldc "condition"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.CONDITION:Lfreemarker/core/ParameterRole;
        14: .line 48
            new freemarker.core.ParameterRole
            dup
            ldc "value"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.VALUE:Lfreemarker/core/ParameterRole;
        15: .line 49
            new freemarker.core.ParameterRole
            dup
            ldc "AST-node subtype"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.AST_NODE_SUBTYPE:Lfreemarker/core/ParameterRole;
        16: .line 50
            new freemarker.core.ParameterRole
            dup
            ldc "placeholder variable"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.PLACEHOLDER_VARIABLE:Lfreemarker/core/ParameterRole;
        17: .line 51
            new freemarker.core.ParameterRole
            dup
            ldc "expression template"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.EXPRESSION_TEMPLATE:Lfreemarker/core/ParameterRole;
        18: .line 52
            new freemarker.core.ParameterRole
            dup
            ldc "list source"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.LIST_SOURCE:Lfreemarker/core/ParameterRole;
        19: .line 53
            new freemarker.core.ParameterRole
            dup
            ldc "target loop variable"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.TARGET_LOOP_VARIABLE:Lfreemarker/core/ParameterRole;
        20: .line 54
            new freemarker.core.ParameterRole
            dup
            ldc "template name"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.TEMPLATE_NAME:Lfreemarker/core/ParameterRole;
        21: .line 55
            new freemarker.core.ParameterRole
            dup
            ldc "\"parse\" parameter"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.PARSE_PARAMETER:Lfreemarker/core/ParameterRole;
        22: .line 56
            new freemarker.core.ParameterRole
            dup
            ldc "\"encoding\" parameter"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.ENCODING_PARAMETER:Lfreemarker/core/ParameterRole;
        23: .line 57
            new freemarker.core.ParameterRole
            dup
            ldc "\"ignore_missing\" parameter"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.IGNORE_MISSING_PARAMETER:Lfreemarker/core/ParameterRole;
        24: .line 58
            new freemarker.core.ParameterRole
            dup
            ldc "parameter name"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.PARAMETER_NAME:Lfreemarker/core/ParameterRole;
        25: .line 59
            new freemarker.core.ParameterRole
            dup
            ldc "parameter default"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.PARAMETER_DEFAULT:Lfreemarker/core/ParameterRole;
        26: .line 60
            new freemarker.core.ParameterRole
            dup
            ldc "catch-all parameter name"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.CATCH_ALL_PARAMETER_NAME:Lfreemarker/core/ParameterRole;
        27: .line 61
            new freemarker.core.ParameterRole
            dup
            ldc "argument name"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.ARGUMENT_NAME:Lfreemarker/core/ParameterRole;
        28: .line 62
            new freemarker.core.ParameterRole
            dup
            ldc "argument value"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.ARGUMENT_VALUE:Lfreemarker/core/ParameterRole;
        29: .line 63
            new freemarker.core.ParameterRole
            dup
            ldc "content"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.CONTENT:Lfreemarker/core/ParameterRole;
        30: .line 64
            new freemarker.core.ParameterRole
            dup
            ldc "embedded template"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.EMBEDDED_TEMPLATE:Lfreemarker/core/ParameterRole;
        31: .line 65
            new freemarker.core.ParameterRole
            dup
            ldc "value part"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.VALUE_PART:Lfreemarker/core/ParameterRole;
        32: .line 66
            new freemarker.core.ParameterRole
            dup
            ldc "minimum decimals"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.MINIMUM_DECIMALS:Lfreemarker/core/ParameterRole;
        33: .line 67
            new freemarker.core.ParameterRole
            dup
            ldc "maximum decimals"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.MAXIMUM_DECIMALS:Lfreemarker/core/ParameterRole;
        34: .line 68
            new freemarker.core.ParameterRole
            dup
            ldc "node"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.NODE:Lfreemarker/core/ParameterRole;
        35: .line 69
            new freemarker.core.ParameterRole
            dup
            ldc "callee"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.CALLEE:Lfreemarker/core/ParameterRole;
        36: .line 70
            new freemarker.core.ParameterRole
            dup
            ldc "message"
            invokespecial freemarker.core.ParameterRole.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.ParameterRole.MESSAGE:Lfreemarker/core/ParameterRole;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.core.ParameterRole this
        start local 1 // java.lang.String name
         0: .line 72
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 73
            aload 0 /* this */
            aload 1 /* name */
            putfield freemarker.core.ParameterRole.name:Ljava/lang/String;
         2: .line 74
            return
        end local 1 // java.lang.String name
        end local 0 // freemarker.core.ParameterRole this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lfreemarker/core/ParameterRole;
            0    3     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  static freemarker.core.ParameterRole forBinaryOperatorOperand(int);
    descriptor: (I)Lfreemarker/core/ParameterRole;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int paramIndex
         0: .line 77
            iload 0 /* paramIndex */
            tableswitch { // 0 - 1
                    0: 1
                    1: 2
              default: 3
          }
         1: .line 78
      StackMap locals:
      StackMap stack:
            getstatic freemarker.core.ParameterRole.LEFT_HAND_OPERAND:Lfreemarker/core/ParameterRole;
            areturn
         2: .line 79
      StackMap locals:
      StackMap stack:
            getstatic freemarker.core.ParameterRole.RIGHT_HAND_OPERAND:Lfreemarker/core/ParameterRole;
            areturn
         3: .line 80
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
        end local 0 // int paramIndex
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0  paramIndex  I
    MethodParameters:
            Name  Flags
      paramIndex  

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.ParameterRole this
         0: .line 85
            aload 0 /* this */
            getfield freemarker.core.ParameterRole.name:Ljava/lang/String;
            areturn
        end local 0 // freemarker.core.ParameterRole this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/ParameterRole;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.ParameterRole this
         0: .line 90
            aload 0 /* this */
            getfield freemarker.core.ParameterRole.name:Ljava/lang/String;
            areturn
        end local 0 // freemarker.core.ParameterRole this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/ParameterRole;
}
SourceFile: "ParameterRole.java"