SignatureReader.smali

.class public Lorg/objectweb/asm/signature/SignatureReader;
.super Ljava/lang/Object;


# instance fields
.field private final a:Ljava/lang/String;


# direct methods
.method public constructor <init>(Ljava/lang/String;)V
    .registers 2

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    iput-object p1, p0, Lorg/objectweb/asm/signature/SignatureReader;->a:Ljava/lang/String;

    return-void
.end method

.method private static a(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I
    .registers 11

    const/16 v7, 0x3b

    const/4 v2, 0x1

    const/4 v1, 0x0

    :goto_4
    add-int/lit8 v0, p1, 0x1

    invoke-virtual {p0, p1}, Ljava/lang/String;->charAt(I)C

    move-result v3

    packed-switch v3, :pswitch_data_86

    :pswitch_d
    move v3, v1

    move v4, v0

    move v6, v0

    move v0, v1

    :goto_11
    add-int/lit8 v5, v6, 0x1

    invoke-virtual {p0, v6}, Ljava/lang/String;->charAt(I)C

    move-result v6

    sparse-switch v6, :sswitch_data_be

    move v6, v5

    goto :goto_11

    :pswitch_1c
    invoke-virtual {p2, v3}, Lorg/objectweb/asm/signature/SignatureVisitor;->visitBaseType(C)V

    :goto_1f
    return v0

    :pswitch_20
    invoke-virtual {p2}, Lorg/objectweb/asm/signature/SignatureVisitor;->visitArrayType()Lorg/objectweb/asm/signature/SignatureVisitor;

    move-result-object p2

    move p1, v0

    goto :goto_4

    :pswitch_26
    invoke-virtual {p0, v7, v0}, Ljava/lang/String;->indexOf(II)I

    move-result v1

    invoke-virtual {p0, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p2, v0}, Lorg/objectweb/asm/signature/SignatureVisitor;->visitTypeVariable(Ljava/lang/String;)V

    add-int/lit8 v0, v1, 0x1

    goto :goto_1f

    :sswitch_34
    if-nez v3, :cond_41

    add-int/lit8 v3, v5, -0x1

    invoke-virtual {p0, v4, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String;

    move-result-object v3

    if-eqz v0, :cond_48

    invoke-virtual {p2, v3}, Lorg/objectweb/asm/signature/SignatureVisitor;->visitInnerClassType(Ljava/lang/String;)V

    :cond_41
    :goto_41
    if-ne v6, v7, :cond_4c

    invoke-virtual {p2}, Lorg/objectweb/asm/signature/SignatureVisitor;->visitEnd()V

    move v0, v5

    goto :goto_1f

    :cond_48
    invoke-virtual {p2, v3}, Lorg/objectweb/asm/signature/SignatureVisitor;->visitClassType(Ljava/lang/String;)V

    goto :goto_41

    :cond_4c
    move v0, v2

    move v3, v1

    move v4, v5

    move v6, v5

    goto :goto_11

    :sswitch_51
    add-int/lit8 v3, v5, -0x1

    invoke-virtual {p0, v4, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String;

    move-result-object v3

    if-eqz v0, :cond_6e

    invoke-virtual {p2, v3}, Lorg/objectweb/asm/signature/SignatureVisitor;->visitInnerClassType(Ljava/lang/String;)V

    :goto_5c
    invoke-virtual {p0, v5}, Ljava/lang/String;->charAt(I)C

    move-result v3

    sparse-switch v3, :sswitch_data_cc

    const/16 v3, 0x3d

    invoke-virtual {p2, v3}, Lorg/objectweb/asm/signature/SignatureVisitor;->visitTypeArgument(C)Lorg/objectweb/asm/signature/SignatureVisitor;

    move-result-object v3

    invoke-static {p0, v5, v3}, Lorg/objectweb/asm/signature/SignatureReader;->a(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I

    move-result v5

    goto :goto_5c

    :cond_6e
    invoke-virtual {p2, v3}, Lorg/objectweb/asm/signature/SignatureVisitor;->visitClassType(Ljava/lang/String;)V

    goto :goto_5c

    :sswitch_72
    move v3, v2

    move v6, v5

    goto :goto_11

    :sswitch_75
    add-int/lit8 v5, v5, 0x1

    invoke-virtual {p2}, Lorg/objectweb/asm/signature/SignatureVisitor;->visitTypeArgument()V

    goto :goto_5c

    :sswitch_7b
    add-int/lit8 v5, v5, 0x1

    invoke-virtual {p2, v3}, Lorg/objectweb/asm/signature/SignatureVisitor;->visitTypeArgument(C)Lorg/objectweb/asm/signature/SignatureVisitor;

    move-result-object v3

    invoke-static {p0, v5, v3}, Lorg/objectweb/asm/signature/SignatureReader;->a(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I

    move-result v5

    goto :goto_5c

    :pswitch_data_86
    .packed-switch 0x42
        :pswitch_1c
        :pswitch_1c
        :pswitch_1c
        :pswitch_d
        :pswitch_1c
        :pswitch_d
        :pswitch_d
        :pswitch_1c
        :pswitch_1c
        :pswitch_d
        :pswitch_d
        :pswitch_d
        :pswitch_d
        :pswitch_d
        :pswitch_d
        :pswitch_d
        :pswitch_d
        :pswitch_1c
        :pswitch_26
        :pswitch_d
        :pswitch_1c
        :pswitch_d
        :pswitch_d
        :pswitch_d
        :pswitch_1c
        :pswitch_20
    .end packed-switch

    :sswitch_data_be
    .sparse-switch
        0x2e -> :sswitch_34
        0x3b -> :sswitch_34
        0x3c -> :sswitch_51
    .end sparse-switch

    :sswitch_data_cc
    .sparse-switch
        0x2a -> :sswitch_75
        0x2b -> :sswitch_7b
        0x2d -> :sswitch_7b
        0x3e -> :sswitch_72
    .end sparse-switch
.end method


# virtual methods
.method public accept(Lorg/objectweb/asm/signature/SignatureVisitor;)V
    .registers 8

    const/16 v5, 0x3a

    const/4 v0, 0x0

    iget-object v2, p0, Lorg/objectweb/asm/signature/SignatureReader;->a:Ljava/lang/String;

    invoke-virtual {v2}, Ljava/lang/String;->length()I

    move-result v3

    invoke-virtual {v2, v0}, Ljava/lang/String;->charAt(I)C

    move-result v1

    const/16 v4, 0x3c

    if-ne v1, v4, :cond_50

    const/4 v0, 0x2

    :cond_12
    invoke-virtual {v2, v5, v0}, Ljava/lang/String;->indexOf(II)I

    move-result v1

    add-int/lit8 v0, v0, -0x1

    invoke-virtual {v2, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p1, v0}, Lorg/objectweb/asm/signature/SignatureVisitor;->visitFormalTypeParameter(Ljava/lang/String;)V

    add-int/lit8 v0, v1, 0x1

    invoke-virtual {v2, v0}, Ljava/lang/String;->charAt(I)C

    move-result v1

    const/16 v4, 0x4c

    if-eq v1, v4, :cond_31

    const/16 v4, 0x5b

    if-eq v1, v4, :cond_31

    const/16 v4, 0x54

    if-ne v1, v4, :cond_96

    :cond_31
    invoke-virtual {p1}, Lorg/objectweb/asm/signature/SignatureVisitor;->visitClassBound()Lorg/objectweb/asm/signature/SignatureVisitor;

    move-result-object v1

    invoke-static {v2, v0, v1}, Lorg/objectweb/asm/signature/SignatureReader;->a(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I

    move-result v0

    move v1, v0

    :goto_3a
    add-int/lit8 v0, v1, 0x1

    invoke-virtual {v2, v1}, Ljava/lang/String;->charAt(I)C

    move-result v1

    if-ne v1, v5, :cond_4c

    invoke-virtual {p1}, Lorg/objectweb/asm/signature/SignatureVisitor;->visitInterfaceBound()Lorg/objectweb/asm/signature/SignatureVisitor;

    move-result-object v1

    invoke-static {v2, v0, v1}, Lorg/objectweb/asm/signature/SignatureReader;->a(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I

    move-result v0

    move v1, v0

    goto :goto_3a

    :cond_4c
    const/16 v4, 0x3e

    if-ne v1, v4, :cond_12

    :cond_50
    invoke-virtual {v2, v0}, Ljava/lang/String;->charAt(I)C

    move-result v1

    const/16 v4, 0x28

    if-ne v1, v4, :cond_82

    add-int/lit8 v0, v0, 0x1

    :goto_5a
    invoke-virtual {v2, v0}, Ljava/lang/String;->charAt(I)C

    move-result v1

    const/16 v4, 0x29

    if-eq v1, v4, :cond_6b

    invoke-virtual {p1}, Lorg/objectweb/asm/signature/SignatureVisitor;->visitParameterType()Lorg/objectweb/asm/signature/SignatureVisitor;

    move-result-object v1

    invoke-static {v2, v0, v1}, Lorg/objectweb/asm/signature/SignatureReader;->a(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I

    move-result v0

    goto :goto_5a

    :cond_6b
    add-int/lit8 v0, v0, 0x1

    invoke-virtual {p1}, Lorg/objectweb/asm/signature/SignatureVisitor;->visitReturnType()Lorg/objectweb/asm/signature/SignatureVisitor;

    move-result-object v1

    invoke-static {v2, v0, v1}, Lorg/objectweb/asm/signature/SignatureReader;->a(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I

    move-result v0

    :goto_75
    if-ge v0, v3, :cond_95

    add-int/lit8 v0, v0, 0x1

    invoke-virtual {p1}, Lorg/objectweb/asm/signature/SignatureVisitor;->visitExceptionType()Lorg/objectweb/asm/signature/SignatureVisitor;

    move-result-object v1

    invoke-static {v2, v0, v1}, Lorg/objectweb/asm/signature/SignatureReader;->a(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I

    move-result v0

    goto :goto_75

    :cond_82
    invoke-virtual {p1}, Lorg/objectweb/asm/signature/SignatureVisitor;->visitSuperclass()Lorg/objectweb/asm/signature/SignatureVisitor;

    move-result-object v1

    invoke-static {v2, v0, v1}, Lorg/objectweb/asm/signature/SignatureReader;->a(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I

    move-result v0

    :goto_8a
    if-ge v0, v3, :cond_95

    invoke-virtual {p1}, Lorg/objectweb/asm/signature/SignatureVisitor;->visitInterface()Lorg/objectweb/asm/signature/SignatureVisitor;

    move-result-object v1

    invoke-static {v2, v0, v1}, Lorg/objectweb/asm/signature/SignatureReader;->a(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I

    move-result v0

    goto :goto_8a

    :cond_95
    return-void

    :cond_96
    move v1, v0

    goto :goto_3a
.end method

.method public acceptType(Lorg/objectweb/asm/signature/SignatureVisitor;)V
    .registers 4

    iget-object v0, p0, Lorg/objectweb/asm/signature/SignatureReader;->a:Ljava/lang/String;

    const/4 v1, 0x0

    invoke-static {v0, v1, p1}, Lorg/objectweb/asm/signature/SignatureReader;->a(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I

    return-void
.end method