10917 lines
221 KiB
Smali
10917 lines
221 KiB
Smali
.class public abstract Lcom/alibaba/fastjson/parser/JSONLexerBase;
|
|
.super Ljava/lang/Object;
|
|
.source "JSONLexerBase.java"
|
|
|
|
# interfaces
|
|
.implements Lcom/alibaba/fastjson/parser/JSONLexer;
|
|
.implements Ljava/io/Closeable;
|
|
|
|
|
|
# static fields
|
|
.field protected static final INT_MULTMIN_RADIX_TEN:I = -0xccccccc
|
|
|
|
.field protected static final MULTMIN_RADIX_TEN:J = -0xcccccccccccccccL
|
|
|
|
.field private static final SBUF_REF_LOCAL:Ljava/lang/ThreadLocal;
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"Ljava/lang/ThreadLocal<",
|
|
"Ljava/lang/ref/SoftReference<",
|
|
"[C>;>;"
|
|
}
|
|
.end annotation
|
|
.end field
|
|
|
|
.field protected static final digits:[I
|
|
|
|
.field protected static final typeFieldName:[C
|
|
|
|
|
|
# instance fields
|
|
.field protected bp:I
|
|
|
|
.field protected calendar:Ljava/util/Calendar;
|
|
|
|
.field protected ch:C
|
|
|
|
.field protected eofPos:I
|
|
|
|
.field protected features:I
|
|
|
|
.field protected hasSpecial:Z
|
|
|
|
.field protected locale:Ljava/util/Locale;
|
|
|
|
.field public matchStat:I
|
|
|
|
.field protected np:I
|
|
|
|
.field protected pos:I
|
|
|
|
.field protected sbuf:[C
|
|
|
|
.field private final sbufRef:Ljava/lang/ref/SoftReference;
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"Ljava/lang/ref/SoftReference<",
|
|
"[C>;"
|
|
}
|
|
.end annotation
|
|
.end field
|
|
|
|
.field protected sp:I
|
|
|
|
.field protected stringDefaultValue:Ljava/lang/String;
|
|
|
|
.field protected timeZone:Ljava/util/TimeZone;
|
|
|
|
.field protected token:I
|
|
|
|
|
|
# direct methods
|
|
.method static constructor <clinit>()V
|
|
.locals 3
|
|
|
|
.line 84
|
|
new-instance v0, Ljava/lang/ThreadLocal;
|
|
|
|
invoke-direct {v0}, Ljava/lang/ThreadLocal;-><init>()V
|
|
|
|
sput-object v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->SBUF_REF_LOCAL:Ljava/lang/ThreadLocal;
|
|
|
|
.line 1087
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v1, "\""
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
sget-object v1, Lcom/alibaba/fastjson/JSON;->DEFAULT_TYPE_KEY:Ljava/lang/String;
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
const-string v1, "\":\""
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-virtual {v0}, Ljava/lang/String;->toCharArray()[C
|
|
|
|
move-result-object v0
|
|
|
|
sput-object v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->typeFieldName:[C
|
|
|
|
const/16 v0, 0x67
|
|
|
|
.line 2989
|
|
new-array v0, v0, [I
|
|
|
|
sput-object v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
const/16 v0, 0x30
|
|
|
|
:goto_0
|
|
const/16 v1, 0x39
|
|
|
|
if-gt v0, v1, :cond_0
|
|
|
|
.line 2993
|
|
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
add-int/lit8 v2, v0, -0x30
|
|
|
|
aput v2, v1, v0
|
|
|
|
add-int/lit8 v0, v0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/16 v0, 0x61
|
|
|
|
:goto_1
|
|
const/16 v1, 0x66
|
|
|
|
if-gt v0, v1, :cond_1
|
|
|
|
.line 2997
|
|
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
add-int/lit8 v2, v0, -0x61
|
|
|
|
add-int/lit8 v2, v2, 0xa
|
|
|
|
aput v2, v1, v0
|
|
|
|
add-int/lit8 v0, v0, 0x1
|
|
|
|
goto :goto_1
|
|
|
|
:cond_1
|
|
const/16 v0, 0x41
|
|
|
|
:goto_2
|
|
const/16 v1, 0x46
|
|
|
|
if-gt v0, v1, :cond_2
|
|
|
|
.line 3000
|
|
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
add-int/lit8 v2, v0, -0x41
|
|
|
|
add-int/lit8 v2, v2, 0xa
|
|
|
|
aput v2, v1, v0
|
|
|
|
add-int/lit8 v0, v0, 0x1
|
|
|
|
goto :goto_2
|
|
|
|
:cond_2
|
|
return-void
|
|
.end method
|
|
|
|
.method public constructor <init>(I)V
|
|
.locals 2
|
|
|
|
.line 88
|
|
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 77
|
|
iput-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->calendar:Ljava/util/Calendar;
|
|
|
|
.line 78
|
|
sget-object v1, Lcom/alibaba/fastjson/JSON;->defaultTimeZone:Ljava/util/TimeZone;
|
|
|
|
iput-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->timeZone:Ljava/util/TimeZone;
|
|
|
|
.line 79
|
|
sget-object v1, Lcom/alibaba/fastjson/JSON;->defaultLocale:Ljava/util/Locale;
|
|
|
|
iput-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->locale:Ljava/util/Locale;
|
|
|
|
const/4 v1, 0x0
|
|
|
|
.line 81
|
|
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 86
|
|
iput-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->stringDefaultValue:Ljava/lang/String;
|
|
|
|
.line 89
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->features:I
|
|
|
|
.line 91
|
|
sget-object v1, Lcom/alibaba/fastjson/parser/Feature;->InitStringFieldAsEmpty:Lcom/alibaba/fastjson/parser/Feature;
|
|
|
|
iget v1, v1, Lcom/alibaba/fastjson/parser/Feature;->mask:I
|
|
|
|
and-int/2addr p1, v1
|
|
|
|
if-eqz p1, :cond_0
|
|
|
|
const-string p1, ""
|
|
|
|
.line 92
|
|
iput-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->stringDefaultValue:Ljava/lang/String;
|
|
|
|
.line 95
|
|
:cond_0
|
|
sget-object p1, Lcom/alibaba/fastjson/parser/JSONLexerBase;->SBUF_REF_LOCAL:Ljava/lang/ThreadLocal;
|
|
|
|
invoke-virtual {p1}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object;
|
|
|
|
move-result-object p1
|
|
|
|
check-cast p1, Ljava/lang/ref/SoftReference;
|
|
|
|
iput-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbufRef:Ljava/lang/ref/SoftReference;
|
|
|
|
.line 97
|
|
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbufRef:Ljava/lang/ref/SoftReference;
|
|
|
|
if-eqz p1, :cond_1
|
|
|
|
.line 98
|
|
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbufRef:Ljava/lang/ref/SoftReference;
|
|
|
|
invoke-virtual {p1}, Ljava/lang/ref/SoftReference;->get()Ljava/lang/Object;
|
|
|
|
move-result-object p1
|
|
|
|
check-cast p1, [C
|
|
|
|
iput-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
.line 99
|
|
sget-object p1, Lcom/alibaba/fastjson/parser/JSONLexerBase;->SBUF_REF_LOCAL:Ljava/lang/ThreadLocal;
|
|
|
|
invoke-virtual {p1, v0}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V
|
|
|
|
.line 102
|
|
:cond_1
|
|
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
if-nez p1, :cond_2
|
|
|
|
const/16 p1, 0x100
|
|
|
|
.line 103
|
|
new-array p1, p1, [C
|
|
|
|
iput-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
:cond_2
|
|
return-void
|
|
.end method
|
|
|
|
.method public static isWhitespace(C)Z
|
|
.locals 1
|
|
|
|
const/16 v0, 0x20
|
|
|
|
if-gt p0, v0, :cond_1
|
|
|
|
if-eq p0, v0, :cond_0
|
|
|
|
const/16 v0, 0xa
|
|
|
|
if-eq p0, v0, :cond_0
|
|
|
|
const/16 v0, 0xd
|
|
|
|
if-eq p0, v0, :cond_0
|
|
|
|
const/16 v0, 0x9
|
|
|
|
if-eq p0, v0, :cond_0
|
|
|
|
const/16 v0, 0xc
|
|
|
|
if-eq p0, v0, :cond_0
|
|
|
|
const/16 v0, 0x8
|
|
|
|
if-ne p0, v0, :cond_1
|
|
|
|
:cond_0
|
|
const/4 p0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const/4 p0, 0x0
|
|
|
|
:goto_0
|
|
return p0
|
|
.end method
|
|
|
|
.method private scanStringSingleQuote()V
|
|
.locals 9
|
|
|
|
.line 2667
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 2668
|
|
iput-boolean v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->hasSpecial:Z
|
|
|
|
.line 2671
|
|
:goto_0
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v1
|
|
|
|
const/16 v2, 0x27
|
|
|
|
const/4 v3, 0x4
|
|
|
|
if-ne v1, v2, :cond_0
|
|
|
|
.line 2783
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 2784
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
return-void
|
|
|
|
:cond_0
|
|
const/16 v4, 0x1a
|
|
|
|
if-ne v1, v4, :cond_2
|
|
|
|
.line 2678
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->isEOF()Z
|
|
|
|
move-result v1
|
|
|
|
if-nez v1, :cond_1
|
|
|
|
.line 2679
|
|
invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto :goto_0
|
|
|
|
.line 2682
|
|
:cond_1
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "unclosed single-quote string"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
:cond_2
|
|
const/16 v4, 0x5c
|
|
|
|
const/4 v5, 0x1
|
|
|
|
if-ne v1, v4, :cond_5
|
|
|
|
.line 2686
|
|
iget-boolean v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->hasSpecial:Z
|
|
|
|
const/4 v6, 0x2
|
|
|
|
if-nez v1, :cond_4
|
|
|
|
.line 2687
|
|
iput-boolean v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->hasSpecial:Z
|
|
|
|
.line 2689
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
iget-object v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
array-length v7, v7
|
|
|
|
if-le v1, v7, :cond_3
|
|
|
|
.line 2690
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
mul-int/lit8 v1, v1, 0x2
|
|
|
|
new-array v1, v1, [C
|
|
|
|
.line 2691
|
|
iget-object v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
iget-object v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
array-length v8, v8
|
|
|
|
invoke-static {v7, v0, v1, v0, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
|
|
|
|
.line 2692
|
|
iput-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
.line 2696
|
|
:cond_3
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
add-int/2addr v1, v5
|
|
|
|
iget v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
iget-object v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
invoke-virtual {p0, v1, v7, v8}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->copyTo(II[C)V
|
|
|
|
.line 2700
|
|
:cond_4
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v1
|
|
|
|
const/4 v7, 0x3
|
|
|
|
packed-switch v1, :pswitch_data_0
|
|
|
|
const/16 v8, 0x10
|
|
|
|
packed-switch v1, :pswitch_data_1
|
|
|
|
sparse-switch v1, :sswitch_data_0
|
|
|
|
.line 2765
|
|
iput-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
.line 2766
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "unclosed single-quote string"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2759
|
|
:sswitch_0
|
|
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v2
|
|
|
|
aget v1, v1, v2
|
|
|
|
mul-int/lit8 v1, v1, 0x10
|
|
|
|
sget-object v2, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v3
|
|
|
|
aget v2, v2, v3
|
|
|
|
add-int/2addr v1, v2
|
|
|
|
int-to-char v1, v1
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_1
|
|
const/16 v1, 0xd
|
|
|
|
.line 2744
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_2
|
|
const/16 v1, 0xa
|
|
|
|
.line 2734
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_3
|
|
const/16 v1, 0x8
|
|
|
|
.line 2728
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 2756
|
|
:sswitch_4
|
|
invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_5
|
|
const/16 v1, 0xc
|
|
|
|
.line 2741
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 2750
|
|
:sswitch_6
|
|
invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_7
|
|
const/16 v1, 0x22
|
|
|
|
.line 2747
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_0
|
|
const/16 v1, 0xb
|
|
|
|
.line 2737
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 2762
|
|
:pswitch_1
|
|
new-instance v1, Ljava/lang/String;
|
|
|
|
new-array v2, v3, [C
|
|
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v3
|
|
|
|
aput-char v3, v2, v0
|
|
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v3
|
|
|
|
aput-char v3, v2, v5
|
|
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v3
|
|
|
|
aput-char v3, v2, v6
|
|
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v3
|
|
|
|
aput-char v3, v2, v7
|
|
|
|
invoke-direct {v1, v2}, Ljava/lang/String;-><init>([C)V
|
|
|
|
invoke-static {v1, v8}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I
|
|
|
|
move-result v1
|
|
|
|
int-to-char v1, v1
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_2
|
|
const/16 v1, 0x9
|
|
|
|
.line 2731
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_3
|
|
const/4 v1, 0x7
|
|
|
|
.line 2725
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_4
|
|
const/4 v1, 0x6
|
|
|
|
.line 2722
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_5
|
|
const/4 v1, 0x5
|
|
|
|
.line 2719
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 2716
|
|
:pswitch_6
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 2713
|
|
:pswitch_7
|
|
invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 2710
|
|
:pswitch_8
|
|
invoke-virtual {p0, v6}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 2707
|
|
:pswitch_9
|
|
invoke-virtual {p0, v5}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 2704
|
|
:pswitch_a
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_b
|
|
const/16 v1, 0x2f
|
|
|
|
.line 2753
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 2771
|
|
:cond_5
|
|
iget-boolean v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->hasSpecial:Z
|
|
|
|
if-nez v2, :cond_6
|
|
|
|
.line 2772
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v1, v5
|
|
|
|
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 2776
|
|
:cond_6
|
|
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
array-length v3, v3
|
|
|
|
if-ne v2, v3, :cond_7
|
|
|
|
.line 2777
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 2779
|
|
:cond_7
|
|
iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/lit8 v4, v3, 0x1
|
|
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
aput-char v1, v2, v3
|
|
|
|
goto/16 :goto_0
|
|
|
|
nop
|
|
|
|
:pswitch_data_0
|
|
.packed-switch 0x2f
|
|
:pswitch_b
|
|
:pswitch_a
|
|
:pswitch_9
|
|
:pswitch_8
|
|
:pswitch_7
|
|
:pswitch_6
|
|
:pswitch_5
|
|
:pswitch_4
|
|
:pswitch_3
|
|
.end packed-switch
|
|
|
|
:pswitch_data_1
|
|
.packed-switch 0x74
|
|
:pswitch_2
|
|
:pswitch_1
|
|
:pswitch_0
|
|
.end packed-switch
|
|
|
|
:sswitch_data_0
|
|
.sparse-switch
|
|
0x22 -> :sswitch_7
|
|
0x27 -> :sswitch_6
|
|
0x46 -> :sswitch_5
|
|
0x5c -> :sswitch_4
|
|
0x62 -> :sswitch_3
|
|
0x66 -> :sswitch_5
|
|
0x6e -> :sswitch_2
|
|
0x72 -> :sswitch_1
|
|
0x78 -> :sswitch_0
|
|
.end sparse-switch
|
|
.end method
|
|
|
|
|
|
# virtual methods
|
|
.method public abstract addSymbol(IIILcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
|
|
.end method
|
|
|
|
.method protected abstract arrayCopy(I[CII)V
|
|
.end method
|
|
|
|
.method public abstract bytesValue()[B
|
|
.end method
|
|
|
|
.method protected abstract charArrayCompare([C)Z
|
|
.end method
|
|
|
|
.method public abstract charAt(I)C
|
|
.end method
|
|
|
|
.method public close()V
|
|
.locals 2
|
|
|
|
.line 1067
|
|
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
array-length v0, v0
|
|
|
|
const/16 v1, 0x2000
|
|
|
|
if-gt v0, v1, :cond_2
|
|
|
|
.line 1069
|
|
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbufRef:Ljava/lang/ref/SoftReference;
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbufRef:Ljava/lang/ref/SoftReference;
|
|
|
|
invoke-virtual {v0}, Ljava/lang/ref/SoftReference;->get()Ljava/lang/Object;
|
|
|
|
move-result-object v0
|
|
|
|
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
if-eq v0, v1, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 1072
|
|
:cond_0
|
|
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbufRef:Ljava/lang/ref/SoftReference;
|
|
|
|
goto :goto_1
|
|
|
|
.line 1070
|
|
:cond_1
|
|
:goto_0
|
|
new-instance v0, Ljava/lang/ref/SoftReference;
|
|
|
|
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
invoke-direct {v0, v1}, Ljava/lang/ref/SoftReference;-><init>(Ljava/lang/Object;)V
|
|
|
|
.line 1074
|
|
:goto_1
|
|
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexerBase;->SBUF_REF_LOCAL:Ljava/lang/ThreadLocal;
|
|
|
|
invoke-virtual {v1, v0}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V
|
|
|
|
:cond_2
|
|
const/4 v0, 0x0
|
|
|
|
.line 1076
|
|
iput-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public config(Lcom/alibaba/fastjson/parser/Feature;Z)V
|
|
.locals 1
|
|
|
|
.line 524
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->features:I
|
|
|
|
invoke-static {v0, p1, p2}, Lcom/alibaba/fastjson/parser/Feature;->config(ILcom/alibaba/fastjson/parser/Feature;Z)I
|
|
|
|
move-result p1
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->features:I
|
|
|
|
.line 526
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->features:I
|
|
|
|
sget-object p2, Lcom/alibaba/fastjson/parser/Feature;->InitStringFieldAsEmpty:Lcom/alibaba/fastjson/parser/Feature;
|
|
|
|
iget p2, p2, Lcom/alibaba/fastjson/parser/Feature;->mask:I
|
|
|
|
and-int/2addr p1, p2
|
|
|
|
if-eqz p1, :cond_0
|
|
|
|
const-string p1, ""
|
|
|
|
.line 527
|
|
iput-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->stringDefaultValue:Ljava/lang/String;
|
|
|
|
:cond_0
|
|
return-void
|
|
.end method
|
|
|
|
.method protected abstract copyTo(II[C)V
|
|
.end method
|
|
|
|
.method public final decimalValue(Z)Ljava/lang/Number;
|
|
.locals 2
|
|
|
|
.line 2961
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v0, v1
|
|
|
|
add-int/lit8 v0, v0, -0x1
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
const/16 v1, 0x46
|
|
|
|
if-ne v0, v1, :cond_0
|
|
|
|
.line 2963
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-static {p1}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F
|
|
|
|
move-result p1
|
|
|
|
invoke-static {p1}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
|
|
:cond_0
|
|
const/16 v1, 0x44
|
|
|
|
if-ne v0, v1, :cond_1
|
|
|
|
.line 2967
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-static {p1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
|
|
|
|
move-result-wide v0
|
|
|
|
invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
|
|
:cond_1
|
|
if-eqz p1, :cond_2
|
|
|
|
.line 2971
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->decimalValue()Ljava/math/BigDecimal;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
|
|
.line 2973
|
|
:cond_2
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->doubleValue()D
|
|
|
|
move-result-wide v0
|
|
|
|
invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
.end method
|
|
|
|
.method public final decimalValue()Ljava/math/BigDecimal;
|
|
.locals 2
|
|
|
|
.line 2978
|
|
new-instance v0, Ljava/math/BigDecimal;
|
|
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-direct {v0, v1}, Ljava/math/BigDecimal;-><init>(Ljava/lang/String;)V
|
|
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public doubleValue()D
|
|
.locals 2
|
|
|
|
.line 520
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
|
|
|
|
move-result-wide v0
|
|
|
|
return-wide v0
|
|
.end method
|
|
|
|
.method public floatValue()F
|
|
.locals 1
|
|
|
|
.line 516
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-static {v0}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F
|
|
|
|
move-result v0
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public final getBufferPosition()I
|
|
.locals 1
|
|
|
|
.line 411
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public getCalendar()Ljava/util/Calendar;
|
|
.locals 1
|
|
|
|
.line 991
|
|
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->calendar:Ljava/util/Calendar;
|
|
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public final getCurrent()C
|
|
.locals 1
|
|
|
|
.line 540
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public getLocale()Ljava/util/Locale;
|
|
.locals 1
|
|
|
|
.line 1003
|
|
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->locale:Ljava/util/Locale;
|
|
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public getTimeZone()Ljava/util/TimeZone;
|
|
.locals 1
|
|
|
|
.line 995
|
|
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->timeZone:Ljava/util/TimeZone;
|
|
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public abstract indexOf(CI)I
|
|
.end method
|
|
|
|
.method public info()Ljava/lang/String;
|
|
.locals 1
|
|
|
|
const-string v0, ""
|
|
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public final intValue()I
|
|
.locals 12
|
|
|
|
.line 1011
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
const/4 v1, 0x0
|
|
|
|
const/4 v2, -0x1
|
|
|
|
if-ne v0, v2, :cond_0
|
|
|
|
.line 1012
|
|
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
.line 1017
|
|
:cond_0
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v2, v3
|
|
|
|
.line 1021
|
|
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v3
|
|
|
|
const/16 v4, 0x2d
|
|
|
|
const/4 v5, 0x1
|
|
|
|
if-ne v3, v4, :cond_1
|
|
|
|
const/high16 v3, -0x80000000
|
|
|
|
add-int/lit8 v0, v0, 0x1
|
|
|
|
const/4 v3, 0x1
|
|
|
|
const/high16 v4, -0x80000000
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const v3, -0x7fffffff
|
|
|
|
const/4 v3, 0x0
|
|
|
|
const v4, -0x7fffffff
|
|
|
|
:goto_0
|
|
const-wide/32 v6, -0xccccccc
|
|
|
|
if-ge v0, v2, :cond_2
|
|
|
|
.line 1030
|
|
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
add-int/lit8 v8, v0, 0x1
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
aget v0, v1, v0
|
|
|
|
neg-int v1, v0
|
|
|
|
:goto_1
|
|
move v0, v8
|
|
|
|
:cond_2
|
|
if-ge v0, v2, :cond_7
|
|
|
|
add-int/lit8 v8, v0, 0x1
|
|
|
|
.line 1035
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
const/16 v9, 0x4c
|
|
|
|
if-eq v0, v9, :cond_6
|
|
|
|
const/16 v9, 0x53
|
|
|
|
if-eq v0, v9, :cond_6
|
|
|
|
const/16 v9, 0x42
|
|
|
|
if-ne v0, v9, :cond_3
|
|
|
|
goto :goto_2
|
|
|
|
.line 1041
|
|
:cond_3
|
|
sget-object v9, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
aget v0, v9, v0
|
|
|
|
int-to-long v9, v1
|
|
|
|
cmp-long v11, v9, v6
|
|
|
|
if-ltz v11, :cond_5
|
|
|
|
mul-int/lit8 v1, v1, 0xa
|
|
|
|
add-int v9, v4, v0
|
|
|
|
if-lt v1, v9, :cond_4
|
|
|
|
sub-int/2addr v1, v0
|
|
|
|
goto :goto_1
|
|
|
|
.line 1048
|
|
:cond_4
|
|
new-instance v0, Ljava/lang/NumberFormatException;
|
|
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-direct {v0, v1}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 1044
|
|
:cond_5
|
|
new-instance v0, Ljava/lang/NumberFormatException;
|
|
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-direct {v0, v1}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
:cond_6
|
|
:goto_2
|
|
move v0, v8
|
|
|
|
:cond_7
|
|
if-eqz v3, :cond_9
|
|
|
|
.line 1054
|
|
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
add-int/2addr v2, v5
|
|
|
|
if-le v0, v2, :cond_8
|
|
|
|
return v1
|
|
|
|
.line 1057
|
|
:cond_8
|
|
new-instance v0, Ljava/lang/NumberFormatException;
|
|
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-direct {v0, v1}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
:cond_9
|
|
neg-int v0, v1
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public final integerValue()Ljava/lang/Number;
|
|
.locals 18
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Ljava/lang/NumberFormatException;
|
|
}
|
|
.end annotation
|
|
|
|
move-object/from16 v0, p0
|
|
|
|
.line 421
|
|
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
const/4 v2, 0x0
|
|
|
|
const/4 v3, -0x1
|
|
|
|
if-ne v1, v3, :cond_0
|
|
|
|
.line 422
|
|
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
.line 424
|
|
:cond_0
|
|
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v3, v4
|
|
|
|
const/16 v4, 0x20
|
|
|
|
add-int/lit8 v5, v3, -0x1
|
|
|
|
.line 431
|
|
invoke-virtual {v0, v5}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v5
|
|
|
|
const/16 v6, 0x53
|
|
|
|
const/16 v7, 0x4c
|
|
|
|
const/16 v8, 0x42
|
|
|
|
if-eq v5, v8, :cond_3
|
|
|
|
if-eq v5, v7, :cond_2
|
|
|
|
if-eq v5, v6, :cond_1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
add-int/lit8 v3, v3, -0x1
|
|
|
|
const/16 v4, 0x53
|
|
|
|
goto :goto_0
|
|
|
|
:cond_2
|
|
add-int/lit8 v3, v3, -0x1
|
|
|
|
const/16 v4, 0x4c
|
|
|
|
goto :goto_0
|
|
|
|
:cond_3
|
|
add-int/lit8 v3, v3, -0x1
|
|
|
|
const/16 v4, 0x42
|
|
|
|
.line 448
|
|
:goto_0
|
|
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
invoke-virtual {v0, v5}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v5
|
|
|
|
const/16 v9, 0x2d
|
|
|
|
const/4 v10, 0x1
|
|
|
|
if-ne v5, v9, :cond_4
|
|
|
|
const-wide/high16 v11, -0x8000000000000000L
|
|
|
|
add-int/lit8 v1, v1, 0x1
|
|
|
|
const/4 v2, 0x1
|
|
|
|
goto :goto_1
|
|
|
|
:cond_4
|
|
const-wide v11, -0x7fffffffffffffffL # -4.9E-324
|
|
|
|
:goto_1
|
|
const-wide v13, -0xcccccccccccccccL
|
|
|
|
if-ge v1, v3, :cond_5
|
|
|
|
.line 457
|
|
sget-object v5, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
add-int/lit8 v9, v1, 0x1
|
|
|
|
invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
aget v1, v5, v1
|
|
|
|
neg-int v1, v1
|
|
|
|
move v15, v9
|
|
|
|
int-to-long v8, v1
|
|
|
|
move v1, v15
|
|
|
|
goto :goto_2
|
|
|
|
:cond_5
|
|
const-wide/16 v8, 0x0
|
|
|
|
:goto_2
|
|
if-ge v1, v3, :cond_8
|
|
|
|
.line 462
|
|
sget-object v5, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
add-int/lit8 v15, v1, 0x1
|
|
|
|
invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
aget v1, v5, v1
|
|
|
|
cmp-long v5, v8, v13
|
|
|
|
if-gez v5, :cond_6
|
|
|
|
.line 464
|
|
new-instance v1, Ljava/math/BigInteger;
|
|
|
|
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-direct {v1, v2}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;)V
|
|
|
|
return-object v1
|
|
|
|
:cond_6
|
|
const-wide/16 v16, 0xa
|
|
|
|
mul-long v8, v8, v16
|
|
|
|
int-to-long v13, v1
|
|
|
|
add-long v16, v11, v13
|
|
|
|
cmp-long v1, v8, v16
|
|
|
|
if-gez v1, :cond_7
|
|
|
|
.line 468
|
|
new-instance v1, Ljava/math/BigInteger;
|
|
|
|
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-direct {v1, v2}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;)V
|
|
|
|
return-object v1
|
|
|
|
:cond_7
|
|
const/4 v1, 0x0
|
|
|
|
sub-long/2addr v8, v13
|
|
|
|
move v1, v15
|
|
|
|
const-wide v13, -0xcccccccccccccccL
|
|
|
|
goto :goto_2
|
|
|
|
:cond_8
|
|
if-eqz v2, :cond_d
|
|
|
|
.line 474
|
|
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
add-int/2addr v2, v10
|
|
|
|
if-le v1, v2, :cond_c
|
|
|
|
const-wide/32 v1, -0x80000000
|
|
|
|
cmp-long v3, v8, v1
|
|
|
|
if-ltz v3, :cond_b
|
|
|
|
if-eq v4, v7, :cond_b
|
|
|
|
if-ne v4, v6, :cond_9
|
|
|
|
long-to-int v1, v8
|
|
|
|
int-to-short v1, v1
|
|
|
|
.line 477
|
|
invoke-static {v1}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short;
|
|
|
|
move-result-object v1
|
|
|
|
return-object v1
|
|
|
|
:cond_9
|
|
const/16 v1, 0x42
|
|
|
|
if-ne v4, v1, :cond_a
|
|
|
|
long-to-int v1, v8
|
|
|
|
int-to-byte v1, v1
|
|
|
|
.line 481
|
|
invoke-static {v1}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
|
|
|
|
move-result-object v1
|
|
|
|
return-object v1
|
|
|
|
:cond_a
|
|
long-to-int v1, v8
|
|
|
|
.line 484
|
|
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object v1
|
|
|
|
return-object v1
|
|
|
|
.line 486
|
|
:cond_b
|
|
invoke-static {v8, v9}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
|
|
|
|
move-result-object v1
|
|
|
|
return-object v1
|
|
|
|
.line 488
|
|
:cond_c
|
|
new-instance v1, Ljava/lang/NumberFormatException;
|
|
|
|
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-direct {v1, v2}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v1
|
|
|
|
:cond_d
|
|
neg-long v1, v8
|
|
|
|
const-wide/32 v8, 0x7fffffff
|
|
|
|
cmp-long v3, v1, v8
|
|
|
|
if-gtz v3, :cond_10
|
|
|
|
if-eq v4, v7, :cond_10
|
|
|
|
if-ne v4, v6, :cond_e
|
|
|
|
long-to-int v1, v1
|
|
|
|
int-to-short v1, v1
|
|
|
|
.line 494
|
|
invoke-static {v1}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short;
|
|
|
|
move-result-object v1
|
|
|
|
return-object v1
|
|
|
|
:cond_e
|
|
const/16 v3, 0x42
|
|
|
|
if-ne v4, v3, :cond_f
|
|
|
|
long-to-int v1, v1
|
|
|
|
int-to-byte v1, v1
|
|
|
|
.line 498
|
|
invoke-static {v1}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
|
|
|
|
move-result-object v1
|
|
|
|
return-object v1
|
|
|
|
:cond_f
|
|
long-to-int v1, v1
|
|
|
|
.line 501
|
|
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object v1
|
|
|
|
return-object v1
|
|
|
|
.line 503
|
|
:cond_10
|
|
invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
|
|
|
|
move-result-object v1
|
|
|
|
return-object v1
|
|
.end method
|
|
|
|
.method public final isBlankInput()Z
|
|
.locals 4
|
|
|
|
const/4 v0, 0x0
|
|
|
|
const/4 v1, 0x0
|
|
|
|
.line 2635
|
|
:goto_0
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v2
|
|
|
|
const/16 v3, 0x1a
|
|
|
|
if-ne v2, v3, :cond_0
|
|
|
|
const/4 v0, 0x1
|
|
|
|
return v0
|
|
|
|
.line 2640
|
|
:cond_0
|
|
invoke-static {v2}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->isWhitespace(C)Z
|
|
|
|
move-result v2
|
|
|
|
if-nez v2, :cond_1
|
|
|
|
return v0
|
|
|
|
:cond_1
|
|
add-int/lit8 v1, v1, 0x1
|
|
|
|
goto :goto_0
|
|
.end method
|
|
|
|
.method public abstract isEOF()Z
|
|
.end method
|
|
|
|
.method public final isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
|
|
.locals 1
|
|
|
|
.line 532
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->features:I
|
|
|
|
iget p1, p1, Lcom/alibaba/fastjson/parser/Feature;->mask:I
|
|
|
|
and-int/2addr p1, v0
|
|
|
|
if-eqz p1, :cond_0
|
|
|
|
const/4 p1, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 p1, 0x0
|
|
|
|
:goto_0
|
|
return p1
|
|
.end method
|
|
|
|
.method public final isRef()Z
|
|
.locals 5
|
|
|
|
.line 1080
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
const/4 v1, 0x0
|
|
|
|
const/4 v2, 0x4
|
|
|
|
if-eq v0, v2, :cond_0
|
|
|
|
return v1
|
|
|
|
.line 1084
|
|
:cond_0
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
const/4 v3, 0x1
|
|
|
|
add-int/2addr v0, v3
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
const/16 v4, 0x24
|
|
|
|
if-ne v0, v4, :cond_1
|
|
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
add-int/lit8 v0, v0, 0x2
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
const/16 v4, 0x72
|
|
|
|
if-ne v0, v4, :cond_1
|
|
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
add-int/lit8 v0, v0, 0x3
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
const/16 v4, 0x65
|
|
|
|
if-ne v0, v4, :cond_1
|
|
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
add-int/2addr v0, v2
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
const/16 v2, 0x66
|
|
|
|
if-ne v0, v2, :cond_1
|
|
|
|
const/4 v1, 0x1
|
|
|
|
:cond_1
|
|
return v1
|
|
.end method
|
|
|
|
.method protected varargs lexError(Ljava/lang/String;[Ljava/lang/Object;)V
|
|
.locals 0
|
|
|
|
const/4 p1, 0x1
|
|
|
|
.line 52
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public final longValue()J
|
|
.locals 17
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Ljava/lang/NumberFormatException;
|
|
}
|
|
.end annotation
|
|
|
|
move-object/from16 v0, p0
|
|
|
|
.line 2912
|
|
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
const/4 v2, 0x0
|
|
|
|
const/4 v3, -0x1
|
|
|
|
if-ne v1, v3, :cond_0
|
|
|
|
.line 2913
|
|
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
.line 2916
|
|
:cond_0
|
|
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v3, v4
|
|
|
|
.line 2918
|
|
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v4
|
|
|
|
const/16 v5, 0x2d
|
|
|
|
const/4 v6, 0x1
|
|
|
|
if-ne v4, v5, :cond_1
|
|
|
|
const-wide/high16 v4, -0x8000000000000000L
|
|
|
|
add-int/lit8 v1, v1, 0x1
|
|
|
|
const/4 v2, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const-wide v4, -0x7fffffffffffffffL # -4.9E-324
|
|
|
|
:goto_0
|
|
const-wide v7, -0xcccccccccccccccL
|
|
|
|
if-ge v1, v3, :cond_2
|
|
|
|
.line 2927
|
|
sget-object v9, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
add-int/lit8 v10, v1, 0x1
|
|
|
|
invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
aget v1, v9, v1
|
|
|
|
neg-int v1, v1
|
|
|
|
int-to-long v11, v1
|
|
|
|
move v1, v10
|
|
|
|
goto :goto_1
|
|
|
|
:cond_2
|
|
const-wide/16 v11, 0x0
|
|
|
|
:goto_1
|
|
if-ge v1, v3, :cond_7
|
|
|
|
add-int/lit8 v9, v1, 0x1
|
|
|
|
.line 2932
|
|
invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
const/16 v10, 0x4c
|
|
|
|
if-eq v1, v10, :cond_6
|
|
|
|
const/16 v10, 0x53
|
|
|
|
if-eq v1, v10, :cond_6
|
|
|
|
const/16 v10, 0x42
|
|
|
|
if-ne v1, v10, :cond_3
|
|
|
|
goto :goto_2
|
|
|
|
.line 2938
|
|
:cond_3
|
|
sget-object v10, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
aget v1, v10, v1
|
|
|
|
cmp-long v10, v11, v7
|
|
|
|
if-ltz v10, :cond_5
|
|
|
|
const-wide/16 v13, 0xa
|
|
|
|
mul-long v11, v11, v13
|
|
|
|
int-to-long v13, v1
|
|
|
|
add-long v15, v4, v13
|
|
|
|
cmp-long v1, v11, v15
|
|
|
|
if-ltz v1, :cond_4
|
|
|
|
sub-long/2addr v11, v13
|
|
|
|
move v1, v9
|
|
|
|
goto :goto_1
|
|
|
|
.line 2944
|
|
:cond_4
|
|
new-instance v1, Ljava/lang/NumberFormatException;
|
|
|
|
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-direct {v1, v2}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v1
|
|
|
|
.line 2940
|
|
:cond_5
|
|
new-instance v1, Ljava/lang/NumberFormatException;
|
|
|
|
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-direct {v1, v2}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v1
|
|
|
|
:cond_6
|
|
:goto_2
|
|
move v1, v9
|
|
|
|
:cond_7
|
|
if-eqz v2, :cond_9
|
|
|
|
.line 2950
|
|
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
add-int/2addr v2, v6
|
|
|
|
if-le v1, v2, :cond_8
|
|
|
|
return-wide v11
|
|
|
|
.line 2953
|
|
:cond_8
|
|
new-instance v1, Ljava/lang/NumberFormatException;
|
|
|
|
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-direct {v1, v2}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v1
|
|
|
|
:cond_9
|
|
neg-long v1, v11
|
|
|
|
return-wide v1
|
|
.end method
|
|
|
|
.method public final matchField([C)Z
|
|
.locals 3
|
|
|
|
.line 1140
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charArrayCompare([C)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
const/4 p1, 0x0
|
|
|
|
return p1
|
|
|
|
.line 1144
|
|
:cond_0
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
array-length p1, p1
|
|
|
|
add-int/2addr v0, p1
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1145
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
.line 1147
|
|
iget-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v0, 0x7b
|
|
|
|
const/4 v1, 0x1
|
|
|
|
if-ne p1, v0, :cond_1
|
|
|
|
.line 1148
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/16 p1, 0xc
|
|
|
|
.line 1149
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
goto :goto_0
|
|
|
|
.line 1150
|
|
:cond_1
|
|
iget-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v0, 0x5b
|
|
|
|
if-ne p1, v0, :cond_2
|
|
|
|
.line 1151
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/16 p1, 0xe
|
|
|
|
.line 1152
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
goto :goto_0
|
|
|
|
.line 1153
|
|
:cond_2
|
|
iget-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v2, 0x53
|
|
|
|
if-ne p1, v2, :cond_3
|
|
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr p1, v1
|
|
|
|
.line 1154
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
const/16 v2, 0x65
|
|
|
|
if-ne p1, v2, :cond_3
|
|
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 p1, p1, 0x2
|
|
|
|
.line 1155
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
const/16 v2, 0x74
|
|
|
|
if-ne p1, v2, :cond_3
|
|
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 p1, p1, 0x3
|
|
|
|
.line 1156
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
if-ne p1, v0, :cond_3
|
|
|
|
.line 1158
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 p1, p1, 0x3
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1159
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 p1, 0x15
|
|
|
|
.line 1160
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
goto :goto_0
|
|
|
|
.line 1162
|
|
:cond_3
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->nextToken()V
|
|
|
|
:goto_0
|
|
return v1
|
|
.end method
|
|
|
|
.method public final matchStat()I
|
|
.locals 1
|
|
|
|
.line 108
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public abstract next()C
|
|
.end method
|
|
|
|
.method public final nextIdent()V
|
|
.locals 2
|
|
|
|
.line 365
|
|
:goto_0
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
invoke-static {v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->isWhitespace(C)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
.line 366
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_0
|
|
|
|
.line 368
|
|
:cond_0
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x5f
|
|
|
|
if-eq v0, v1, :cond_2
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
invoke-static {v0}, Ljava/lang/Character;->isLetter(C)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
goto :goto_1
|
|
|
|
.line 371
|
|
:cond_1
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->nextToken()V
|
|
|
|
goto :goto_2
|
|
|
|
.line 369
|
|
:cond_2
|
|
:goto_1
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanIdent()V
|
|
|
|
:goto_2
|
|
return-void
|
|
.end method
|
|
|
|
.method public final nextToken()V
|
|
.locals 4
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 112
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
.line 115
|
|
:goto_0
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->pos:I
|
|
|
|
.line 117
|
|
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v2, 0x2f
|
|
|
|
if-ne v1, v2, :cond_0
|
|
|
|
.line 118
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->skipComment()V
|
|
|
|
goto :goto_0
|
|
|
|
.line 122
|
|
:cond_0
|
|
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v2, 0x22
|
|
|
|
if-ne v1, v2, :cond_1
|
|
|
|
.line 123
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanString()V
|
|
|
|
return-void
|
|
|
|
.line 127
|
|
:cond_1
|
|
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v2, 0x2c
|
|
|
|
if-ne v1, v2, :cond_2
|
|
|
|
.line 128
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/16 v0, 0x10
|
|
|
|
.line 129
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-void
|
|
|
|
.line 133
|
|
:cond_2
|
|
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v2, 0x30
|
|
|
|
if-lt v1, v2, :cond_3
|
|
|
|
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v2, 0x39
|
|
|
|
if-gt v1, v2, :cond_3
|
|
|
|
.line 134
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanNumber()V
|
|
|
|
return-void
|
|
|
|
.line 138
|
|
:cond_3
|
|
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v2, 0x2d
|
|
|
|
if-ne v1, v2, :cond_4
|
|
|
|
.line 139
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanNumber()V
|
|
|
|
return-void
|
|
|
|
.line 143
|
|
:cond_4
|
|
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
sparse-switch v1, :sswitch_data_0
|
|
|
|
.line 208
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->isEOF()Z
|
|
|
|
move-result v1
|
|
|
|
if-eqz v1, :cond_7
|
|
|
|
.line 209
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
const/16 v1, 0x14
|
|
|
|
if-eq v0, v1, :cond_6
|
|
|
|
.line 213
|
|
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 214
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->eofPos:I
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->pos:I
|
|
|
|
goto/16 :goto_1
|
|
|
|
.line 200
|
|
:sswitch_0
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/16 v0, 0xd
|
|
|
|
.line 201
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-void
|
|
|
|
.line 196
|
|
:sswitch_1
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/16 v0, 0xc
|
|
|
|
.line 197
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-void
|
|
|
|
.line 177
|
|
:sswitch_2
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanUndefined()V
|
|
|
|
return-void
|
|
|
|
.line 159
|
|
:sswitch_3
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanTrue()V
|
|
|
|
return-void
|
|
|
|
.line 171
|
|
:sswitch_4
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanNullOrNew()V
|
|
|
|
return-void
|
|
|
|
.line 168
|
|
:sswitch_5
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanFalse()V
|
|
|
|
return-void
|
|
|
|
.line 192
|
|
:sswitch_6
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/16 v0, 0xf
|
|
|
|
.line 193
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-void
|
|
|
|
.line 188
|
|
:sswitch_7
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/16 v0, 0xe
|
|
|
|
.line 189
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-void
|
|
|
|
.line 162
|
|
:sswitch_8
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanTreeSet()V
|
|
|
|
return-void
|
|
|
|
.line 165
|
|
:sswitch_9
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanSet()V
|
|
|
|
return-void
|
|
|
|
.line 174
|
|
:sswitch_a
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanNULL()V
|
|
|
|
return-void
|
|
|
|
.line 204
|
|
:sswitch_b
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/16 v0, 0x11
|
|
|
|
.line 205
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-void
|
|
|
|
.line 184
|
|
:sswitch_c
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/16 v0, 0xb
|
|
|
|
.line 185
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-void
|
|
|
|
.line 180
|
|
:sswitch_d
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/16 v0, 0xa
|
|
|
|
.line 181
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-void
|
|
|
|
.line 145
|
|
:sswitch_e
|
|
sget-object v0, Lcom/alibaba/fastjson/parser/Feature;->AllowSingleQuotes:Lcom/alibaba/fastjson/parser/Feature;
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_5
|
|
|
|
.line 148
|
|
invoke-direct {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanStringSingleQuote()V
|
|
|
|
return-void
|
|
|
|
.line 146
|
|
:cond_5
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "Feature.AllowSingleQuotes is false"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 156
|
|
:sswitch_f
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 210
|
|
:cond_6
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "EOF error"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 216
|
|
:cond_7
|
|
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v2, 0x1f
|
|
|
|
if-le v1, v2, :cond_9
|
|
|
|
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v2, 0x7f
|
|
|
|
if-ne v1, v2, :cond_8
|
|
|
|
goto :goto_2
|
|
|
|
:cond_8
|
|
const-string v1, "illegal.char"
|
|
|
|
const/4 v2, 0x1
|
|
|
|
.line 220
|
|
new-array v2, v2, [Ljava/lang/Object;
|
|
|
|
iget-char v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
|
|
|
|
move-result-object v3
|
|
|
|
aput-object v3, v2, v0
|
|
|
|
invoke-virtual {p0, v1, v2}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->lexError(Ljava/lang/String;[Ljava/lang/Object;)V
|
|
|
|
.line 221
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
:goto_1
|
|
return-void
|
|
|
|
.line 217
|
|
:cond_9
|
|
:goto_2
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto/16 :goto_0
|
|
|
|
nop
|
|
|
|
:sswitch_data_0
|
|
.sparse-switch
|
|
0x8 -> :sswitch_f
|
|
0x9 -> :sswitch_f
|
|
0xa -> :sswitch_f
|
|
0xc -> :sswitch_f
|
|
0xd -> :sswitch_f
|
|
0x20 -> :sswitch_f
|
|
0x27 -> :sswitch_e
|
|
0x28 -> :sswitch_d
|
|
0x29 -> :sswitch_c
|
|
0x3a -> :sswitch_b
|
|
0x4e -> :sswitch_a
|
|
0x53 -> :sswitch_9
|
|
0x54 -> :sswitch_8
|
|
0x5b -> :sswitch_7
|
|
0x5d -> :sswitch_6
|
|
0x66 -> :sswitch_5
|
|
0x6e -> :sswitch_4
|
|
0x74 -> :sswitch_3
|
|
0x75 -> :sswitch_2
|
|
0x7b -> :sswitch_1
|
|
0x7d -> :sswitch_0
|
|
.end sparse-switch
|
|
.end method
|
|
|
|
.method public final nextToken(I)V
|
|
.locals 9
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 231
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
:goto_0
|
|
const/4 v0, 0x2
|
|
|
|
const/16 v1, 0xd
|
|
|
|
const/16 v2, 0x39
|
|
|
|
const/16 v3, 0x22
|
|
|
|
const/16 v4, 0x30
|
|
|
|
const/16 v5, 0xe
|
|
|
|
const/16 v6, 0x5b
|
|
|
|
const/16 v7, 0x7b
|
|
|
|
const/16 v8, 0xc
|
|
|
|
if-eq p1, v0, :cond_c
|
|
|
|
const/4 v0, 0x4
|
|
|
|
if-eq p1, v0, :cond_8
|
|
|
|
if-eq p1, v8, :cond_6
|
|
|
|
const/16 v0, 0x12
|
|
|
|
if-eq p1, v0, :cond_5
|
|
|
|
const/16 v0, 0x1a
|
|
|
|
const/16 v2, 0x14
|
|
|
|
if-eq p1, v2, :cond_4
|
|
|
|
const/16 v3, 0xf
|
|
|
|
const/16 v4, 0x5d
|
|
|
|
packed-switch p1, :pswitch_data_0
|
|
|
|
goto/16 :goto_1
|
|
|
|
.line 248
|
|
:pswitch_0
|
|
iget-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v6, 0x2c
|
|
|
|
if-ne v5, v6, :cond_0
|
|
|
|
const/16 p1, 0x10
|
|
|
|
.line 249
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 250
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
return-void
|
|
|
|
.line 254
|
|
:cond_0
|
|
iget-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v6, 0x7d
|
|
|
|
if-ne v5, v6, :cond_1
|
|
|
|
.line 255
|
|
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 256
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
return-void
|
|
|
|
.line 260
|
|
:cond_1
|
|
iget-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v5, v4, :cond_2
|
|
|
|
.line 261
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 262
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
return-void
|
|
|
|
.line 266
|
|
:cond_2
|
|
iget-char v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v3, v0, :cond_10
|
|
|
|
.line 267
|
|
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-void
|
|
|
|
.line 336
|
|
:pswitch_1
|
|
iget-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v5, v4, :cond_4
|
|
|
|
.line 337
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 338
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
return-void
|
|
|
|
.line 323
|
|
:pswitch_2
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v6, :cond_3
|
|
|
|
.line 324
|
|
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 325
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
return-void
|
|
|
|
.line 329
|
|
:cond_3
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v7, :cond_10
|
|
|
|
.line 330
|
|
iput v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 331
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
return-void
|
|
|
|
.line 342
|
|
:cond_4
|
|
iget-char v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v3, v0, :cond_10
|
|
|
|
.line 343
|
|
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-void
|
|
|
|
.line 348
|
|
:cond_5
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->nextIdent()V
|
|
|
|
return-void
|
|
|
|
.line 236
|
|
:cond_6
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v7, :cond_7
|
|
|
|
.line 237
|
|
iput v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 238
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
return-void
|
|
|
|
.line 241
|
|
:cond_7
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v6, :cond_10
|
|
|
|
.line 242
|
|
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 243
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
return-void
|
|
|
|
.line 298
|
|
:cond_8
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v3, :cond_9
|
|
|
|
.line 299
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->pos:I
|
|
|
|
.line 300
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanString()V
|
|
|
|
return-void
|
|
|
|
.line 304
|
|
:cond_9
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-lt v0, v4, :cond_a
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-gt v0, v2, :cond_a
|
|
|
|
.line 305
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->pos:I
|
|
|
|
.line 306
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanNumber()V
|
|
|
|
return-void
|
|
|
|
.line 310
|
|
:cond_a
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v6, :cond_b
|
|
|
|
.line 311
|
|
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 312
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
return-void
|
|
|
|
.line 316
|
|
:cond_b
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v7, :cond_10
|
|
|
|
.line 317
|
|
iput v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 318
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
return-void
|
|
|
|
.line 272
|
|
:cond_c
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-lt v0, v4, :cond_d
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-gt v0, v2, :cond_d
|
|
|
|
.line 273
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->pos:I
|
|
|
|
.line 274
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanNumber()V
|
|
|
|
return-void
|
|
|
|
.line 278
|
|
:cond_d
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v3, :cond_e
|
|
|
|
.line 279
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->pos:I
|
|
|
|
.line 280
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanString()V
|
|
|
|
return-void
|
|
|
|
.line 284
|
|
:cond_e
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v6, :cond_f
|
|
|
|
.line 285
|
|
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 286
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
return-void
|
|
|
|
.line 290
|
|
:cond_f
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v7, :cond_10
|
|
|
|
.line 291
|
|
iput v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 292
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
return-void
|
|
|
|
.line 354
|
|
:cond_10
|
|
:goto_1
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v2, 0x20
|
|
|
|
if-eq v0, v2, :cond_12
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v2, 0xa
|
|
|
|
if-eq v0, v2, :cond_12
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v1, :cond_12
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x9
|
|
|
|
if-eq v0, v1, :cond_12
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v8, :cond_12
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x8
|
|
|
|
if-ne v0, v1, :cond_11
|
|
|
|
goto :goto_2
|
|
|
|
.line 359
|
|
:cond_11
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->nextToken()V
|
|
|
|
return-void
|
|
|
|
.line 355
|
|
:cond_12
|
|
:goto_2
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_data_0
|
|
.packed-switch 0xe
|
|
:pswitch_2
|
|
:pswitch_1
|
|
:pswitch_0
|
|
.end packed-switch
|
|
.end method
|
|
|
|
.method public final nextTokenWithChar(C)V
|
|
.locals 3
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 380
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
.line 383
|
|
:goto_0
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, p1, :cond_0
|
|
|
|
.line 384
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 385
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->nextToken()V
|
|
|
|
return-void
|
|
|
|
.line 389
|
|
:cond_0
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x20
|
|
|
|
if-eq v0, v1, :cond_2
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xa
|
|
|
|
if-eq v0, v1, :cond_2
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xd
|
|
|
|
if-eq v0, v1, :cond_2
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x9
|
|
|
|
if-eq v0, v1, :cond_2
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xc
|
|
|
|
if-eq v0, v1, :cond_2
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x8
|
|
|
|
if-ne v0, v1, :cond_1
|
|
|
|
goto :goto_1
|
|
|
|
.line 394
|
|
:cond_1
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
new-instance v1, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v2, "not match "
|
|
|
|
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
|
|
|
|
const-string p1, " - "
|
|
|
|
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
iget-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-direct {v0, p1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 390
|
|
:cond_2
|
|
:goto_1
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_0
|
|
.end method
|
|
|
|
.method public final nextTokenWithColon()V
|
|
.locals 1
|
|
|
|
const/16 v0, 0x3a
|
|
|
|
.line 376
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->nextTokenWithChar(C)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public final nextTokenWithColon(I)V
|
|
.locals 0
|
|
|
|
const/16 p1, 0x3a
|
|
|
|
.line 508
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->nextTokenWithChar(C)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public final nextTokenWithComma(I)V
|
|
.locals 0
|
|
|
|
const/16 p1, 0x2c
|
|
|
|
.line 512
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->nextTokenWithChar(C)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public abstract numberString()Ljava/lang/String;
|
|
.end method
|
|
|
|
.method public final pos()I
|
|
.locals 1
|
|
|
|
.line 407
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->pos:I
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method protected final putChar(C)V
|
|
.locals 4
|
|
|
|
.line 2814
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
array-length v1, v1
|
|
|
|
if-ne v0, v1, :cond_0
|
|
|
|
.line 2815
|
|
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
array-length v0, v0
|
|
|
|
mul-int/lit8 v0, v0, 0x2
|
|
|
|
new-array v0, v0, [C
|
|
|
|
.line 2816
|
|
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
array-length v2, v2
|
|
|
|
const/4 v3, 0x0
|
|
|
|
invoke-static {v1, v3, v0, v3, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
|
|
|
|
.line 2817
|
|
iput-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
.line 2819
|
|
:cond_0
|
|
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/lit8 v2, v1, 0x1
|
|
|
|
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
aput-char p1, v0, v1
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public final resetStringPosition()V
|
|
.locals 1
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 799
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public scanBoolean(C)Z
|
|
.locals 8
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 1762
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1765
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v1, v0
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
const/4 v2, 0x5
|
|
|
|
const/4 v3, 0x3
|
|
|
|
const/16 v4, 0x65
|
|
|
|
const/4 v5, -0x1
|
|
|
|
const/4 v6, 0x1
|
|
|
|
const/16 v7, 0x74
|
|
|
|
if-ne v1, v7, :cond_1
|
|
|
|
.line 1769
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v1, v6
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
const/16 v7, 0x72
|
|
|
|
if-ne v1, v7, :cond_0
|
|
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v1, v6
|
|
|
|
add-int/2addr v1, v6
|
|
|
|
.line 1770
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
const/16 v7, 0x75
|
|
|
|
if-ne v1, v7, :cond_0
|
|
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v1, v6
|
|
|
|
add-int/lit8 v1, v1, 0x2
|
|
|
|
.line 1771
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
if-ne v1, v4, :cond_0
|
|
|
|
.line 1773
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v0, v0, 0x4
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
const/4 v0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
.line 1776
|
|
:cond_0
|
|
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
|
|
:cond_1
|
|
const/16 v7, 0x66
|
|
|
|
if-ne v1, v7, :cond_3
|
|
|
|
.line 1780
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v1, v6
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
const/16 v7, 0x61
|
|
|
|
if-ne v1, v7, :cond_2
|
|
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v1, v6
|
|
|
|
add-int/2addr v1, v6
|
|
|
|
.line 1781
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
const/16 v7, 0x6c
|
|
|
|
if-ne v1, v7, :cond_2
|
|
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v1, v6
|
|
|
|
add-int/lit8 v1, v1, 0x2
|
|
|
|
.line 1782
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
const/16 v7, 0x73
|
|
|
|
if-ne v1, v7, :cond_2
|
|
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v1, v6
|
|
|
|
add-int/2addr v1, v3
|
|
|
|
.line 1783
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
if-ne v1, v4, :cond_2
|
|
|
|
.line 1785
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
const/4 v4, 0x6
|
|
|
|
add-int/2addr v1, v2
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
const/4 v2, 0x6
|
|
|
|
goto :goto_0
|
|
|
|
.line 1788
|
|
:cond_2
|
|
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
|
|
:cond_3
|
|
const/4 v2, 0x1
|
|
|
|
:goto_0
|
|
if-ne v1, p1, :cond_4
|
|
|
|
.line 1794
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
sub-int/2addr v2, v6
|
|
|
|
add-int/2addr p1, v2
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1795
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 1796
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
|
|
.line 1799
|
|
:cond_4
|
|
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public scanEnum(Ljava/lang/Class;Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/Enum;
|
|
.locals 0
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"(",
|
|
"Ljava/lang/Class<",
|
|
"*>;",
|
|
"Lcom/alibaba/fastjson/parser/SymbolTable;",
|
|
"C)",
|
|
"Ljava/lang/Enum<",
|
|
"*>;"
|
|
}
|
|
.end annotation
|
|
|
|
.line 1408
|
|
invoke-virtual {p0, p2, p3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanSymbolWithSeperator(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
|
|
|
|
move-result-object p2
|
|
|
|
if-nez p2, :cond_0
|
|
|
|
const/4 p1, 0x0
|
|
|
|
return-object p1
|
|
|
|
.line 1412
|
|
:cond_0
|
|
invoke-static {p1, p2}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
.end method
|
|
|
|
.method public final scanFalse()V
|
|
.locals 2
|
|
|
|
.line 2563
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x66
|
|
|
|
if-ne v0, v1, :cond_6
|
|
|
|
.line 2566
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2568
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x61
|
|
|
|
if-ne v0, v1, :cond_5
|
|
|
|
.line 2571
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2573
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x6c
|
|
|
|
if-ne v0, v1, :cond_4
|
|
|
|
.line 2576
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2578
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x73
|
|
|
|
if-ne v0, v1, :cond_3
|
|
|
|
.line 2581
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2583
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x65
|
|
|
|
if-ne v0, v1, :cond_2
|
|
|
|
.line 2586
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2588
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x20
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x2c
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x7d
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x5d
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xa
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xd
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x9
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x1a
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xc
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x8
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x3a
|
|
|
|
if-ne v0, v1, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 2592
|
|
:cond_0
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "scan false error"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
:cond_1
|
|
:goto_0
|
|
const/4 v0, 0x7
|
|
|
|
.line 2590
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-void
|
|
|
|
.line 2584
|
|
:cond_2
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse false"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2579
|
|
:cond_3
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse false"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2574
|
|
:cond_4
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse false"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2569
|
|
:cond_5
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse false"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2564
|
|
:cond_6
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse false"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
.end method
|
|
|
|
.method public scanFieldBoolean([C)Z
|
|
.locals 9
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 1846
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1848
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charArrayCompare([C)Z
|
|
|
|
move-result v1
|
|
|
|
if-nez v1, :cond_0
|
|
|
|
const/4 p1, -0x2
|
|
|
|
.line 1849
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
|
|
.line 1853
|
|
:cond_0
|
|
array-length p1, p1
|
|
|
|
.line 1854
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v2, p1, 0x1
|
|
|
|
add-int/2addr v1, p1
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
const/16 v1, 0x74
|
|
|
|
const/16 v3, 0x65
|
|
|
|
const/4 v4, -0x1
|
|
|
|
const/4 v5, 0x1
|
|
|
|
if-ne p1, v1, :cond_4
|
|
|
|
.line 1858
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v1, v2, 0x1
|
|
|
|
add-int/2addr p1, v2
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
const/16 v2, 0x72
|
|
|
|
if-eq p1, v2, :cond_1
|
|
|
|
.line 1859
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
|
|
.line 1862
|
|
:cond_1
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v2, v1, 0x1
|
|
|
|
add-int/2addr p1, v1
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
const/16 v1, 0x75
|
|
|
|
if-eq p1, v1, :cond_2
|
|
|
|
.line 1863
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
|
|
.line 1866
|
|
:cond_2
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v1, v2, 0x1
|
|
|
|
add-int/2addr p1, v2
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
if-eq p1, v3, :cond_3
|
|
|
|
.line 1867
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
|
|
:cond_3
|
|
const/4 p1, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_4
|
|
const/16 v1, 0x66
|
|
|
|
if-ne p1, v1, :cond_f
|
|
|
|
.line 1873
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v1, v2, 0x1
|
|
|
|
add-int/2addr p1, v2
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
const/16 v2, 0x61
|
|
|
|
if-eq p1, v2, :cond_5
|
|
|
|
.line 1874
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
|
|
.line 1877
|
|
:cond_5
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v2, v1, 0x1
|
|
|
|
add-int/2addr p1, v1
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
const/16 v1, 0x6c
|
|
|
|
if-eq p1, v1, :cond_6
|
|
|
|
.line 1878
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
|
|
.line 1881
|
|
:cond_6
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v1, v2, 0x1
|
|
|
|
add-int/2addr p1, v2
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
const/16 v2, 0x73
|
|
|
|
if-eq p1, v2, :cond_7
|
|
|
|
.line 1882
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
|
|
.line 1885
|
|
:cond_7
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v2, v1, 0x1
|
|
|
|
add-int/2addr p1, v1
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
if-eq p1, v3, :cond_8
|
|
|
|
.line 1886
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
|
|
:cond_8
|
|
move v1, v2
|
|
|
|
const/4 p1, 0x0
|
|
|
|
.line 1896
|
|
:goto_0
|
|
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v3, v1, 0x1
|
|
|
|
add-int/2addr v2, v1
|
|
|
|
invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
const/16 v2, 0x10
|
|
|
|
const/16 v6, 0x2c
|
|
|
|
if-ne v1, v6, :cond_9
|
|
|
|
.line 1898
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
sub-int/2addr v3, v5
|
|
|
|
add-int/2addr v0, v3
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1899
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/4 v0, 0x3
|
|
|
|
.line 1900
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1901
|
|
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return p1
|
|
|
|
:cond_9
|
|
const/16 v7, 0x7d
|
|
|
|
if-ne v1, v7, :cond_e
|
|
|
|
.line 1907
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v8, v3, 0x1
|
|
|
|
add-int/2addr v1, v3
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
if-ne v1, v6, :cond_a
|
|
|
|
.line 1909
|
|
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1910
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
sub-int/2addr v8, v5
|
|
|
|
add-int/2addr v0, v8
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1911
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_1
|
|
|
|
:cond_a
|
|
const/16 v2, 0x5d
|
|
|
|
if-ne v1, v2, :cond_b
|
|
|
|
const/16 v0, 0xf
|
|
|
|
.line 1913
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1914
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
sub-int/2addr v8, v5
|
|
|
|
add-int/2addr v0, v8
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1915
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_1
|
|
|
|
:cond_b
|
|
if-ne v1, v7, :cond_c
|
|
|
|
const/16 v0, 0xd
|
|
|
|
.line 1917
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1918
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
sub-int/2addr v8, v5
|
|
|
|
add-int/2addr v0, v8
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1919
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_1
|
|
|
|
:cond_c
|
|
const/16 v2, 0x1a
|
|
|
|
if-ne v1, v2, :cond_d
|
|
|
|
const/16 v0, 0x14
|
|
|
|
.line 1921
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1922
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
sub-int/2addr v8, v5
|
|
|
|
add-int/2addr v0, v8
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1923
|
|
iput-char v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
:goto_1
|
|
const/4 v0, 0x4
|
|
|
|
.line 1928
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return p1
|
|
|
|
.line 1925
|
|
:cond_d
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
|
|
.line 1930
|
|
:cond_e
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
|
|
.line 1892
|
|
:cond_f
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public final scanFieldDouble(C)D
|
|
.locals 9
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 2295
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 2298
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v1, v0
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
const-wide/16 v1, 0x0
|
|
|
|
const/4 v3, -0x1
|
|
|
|
const/16 v4, 0x30
|
|
|
|
if-lt v0, v4, :cond_9
|
|
|
|
const/16 v5, 0x39
|
|
|
|
if-gt v0, v5, :cond_9
|
|
|
|
const/4 v0, 0x1
|
|
|
|
const/4 v6, 0x1
|
|
|
|
.line 2303
|
|
:goto_0
|
|
iget v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v8, v6, 0x1
|
|
|
|
add-int/2addr v7, v6
|
|
|
|
invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v6
|
|
|
|
if-lt v6, v4, :cond_0
|
|
|
|
if-gt v6, v5, :cond_0
|
|
|
|
move v6, v8
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/16 v7, 0x2e
|
|
|
|
if-ne v6, v7, :cond_2
|
|
|
|
.line 2312
|
|
iget v6, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v7, v8, 0x1
|
|
|
|
add-int/2addr v6, v8
|
|
|
|
invoke-virtual {p0, v6}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v6
|
|
|
|
if-lt v6, v4, :cond_1
|
|
|
|
if-gt v6, v5, :cond_1
|
|
|
|
.line 2315
|
|
:goto_1
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v2, v7, 0x1
|
|
|
|
add-int/2addr v1, v7
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v6
|
|
|
|
if-lt v6, v4, :cond_3
|
|
|
|
if-gt v6, v5, :cond_3
|
|
|
|
move v7, v2
|
|
|
|
goto :goto_1
|
|
|
|
.line 2323
|
|
:cond_1
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-wide v1
|
|
|
|
:cond_2
|
|
move v2, v8
|
|
|
|
:cond_3
|
|
const/16 v1, 0x65
|
|
|
|
if-eq v6, v1, :cond_4
|
|
|
|
const/16 v1, 0x45
|
|
|
|
if-ne v6, v1, :cond_7
|
|
|
|
.line 2329
|
|
:cond_4
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v6, v2, 0x1
|
|
|
|
add-int/2addr v1, v2
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
const/16 v2, 0x2b
|
|
|
|
if-eq v1, v2, :cond_6
|
|
|
|
const/16 v2, 0x2d
|
|
|
|
if-ne v1, v2, :cond_5
|
|
|
|
goto :goto_4
|
|
|
|
:cond_5
|
|
:goto_2
|
|
move v2, v6
|
|
|
|
:goto_3
|
|
move v6, v1
|
|
|
|
goto :goto_5
|
|
|
|
.line 2331
|
|
:cond_6
|
|
:goto_4
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v2, v6, 0x1
|
|
|
|
add-int/2addr v1, v6
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
goto :goto_3
|
|
|
|
:goto_5
|
|
if-lt v6, v4, :cond_7
|
|
|
|
if-gt v6, v5, :cond_7
|
|
|
|
.line 2335
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v6, v2, 0x1
|
|
|
|
add-int/2addr v1, v2
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
goto :goto_2
|
|
|
|
.line 2342
|
|
:cond_7
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 2343
|
|
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v4, v2
|
|
|
|
sub-int/2addr v4, v1
|
|
|
|
sub-int/2addr v4, v0
|
|
|
|
.line 2344
|
|
invoke-virtual {p0, v1, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->subString(II)Ljava/lang/String;
|
|
|
|
move-result-object v1
|
|
|
|
.line 2345
|
|
invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
|
|
|
|
move-result-wide v4
|
|
|
|
if-ne v6, p1, :cond_8
|
|
|
|
.line 2352
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
sub-int/2addr v2, v0
|
|
|
|
add-int/2addr p1, v2
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 2353
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/4 p1, 0x3
|
|
|
|
.line 2354
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
const/16 p1, 0x10
|
|
|
|
.line 2355
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-wide v4
|
|
|
|
.line 2358
|
|
:cond_8
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-wide v4
|
|
|
|
.line 2347
|
|
:cond_9
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-wide v1
|
|
.end method
|
|
|
|
.method public final scanFieldDouble([C)D
|
|
.locals 10
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 2194
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 2196
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charArrayCompare([C)Z
|
|
|
|
move-result v0
|
|
|
|
const-wide/16 v1, 0x0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
const/4 p1, -0x2
|
|
|
|
.line 2197
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-wide v1
|
|
|
|
.line 2201
|
|
:cond_0
|
|
array-length v0, p1
|
|
|
|
.line 2202
|
|
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v4, v0, 0x1
|
|
|
|
add-int/2addr v3, v0
|
|
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
const/4 v3, -0x1
|
|
|
|
const/16 v5, 0x30
|
|
|
|
if-lt v0, v5, :cond_e
|
|
|
|
const/16 v6, 0x39
|
|
|
|
if-gt v0, v6, :cond_e
|
|
|
|
.line 2207
|
|
:goto_0
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v7, v4, 0x1
|
|
|
|
add-int/2addr v0, v4
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
if-lt v0, v5, :cond_1
|
|
|
|
if-gt v0, v6, :cond_1
|
|
|
|
move v4, v7
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const/16 v4, 0x2e
|
|
|
|
if-ne v0, v4, :cond_3
|
|
|
|
.line 2216
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v4, v7, 0x1
|
|
|
|
add-int/2addr v0, v7
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
if-lt v0, v5, :cond_2
|
|
|
|
if-gt v0, v6, :cond_2
|
|
|
|
.line 2219
|
|
:goto_1
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v7, v4, 0x1
|
|
|
|
add-int/2addr v0, v4
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
if-lt v0, v5, :cond_3
|
|
|
|
if-gt v0, v6, :cond_3
|
|
|
|
move v4, v7
|
|
|
|
goto :goto_1
|
|
|
|
.line 2227
|
|
:cond_2
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-wide v1
|
|
|
|
:cond_3
|
|
const/16 v4, 0x65
|
|
|
|
if-eq v0, v4, :cond_4
|
|
|
|
const/16 v4, 0x45
|
|
|
|
if-ne v0, v4, :cond_7
|
|
|
|
.line 2233
|
|
:cond_4
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v4, v7, 0x1
|
|
|
|
add-int/2addr v0, v7
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
const/16 v7, 0x2b
|
|
|
|
if-eq v0, v7, :cond_6
|
|
|
|
const/16 v7, 0x2d
|
|
|
|
if-ne v0, v7, :cond_5
|
|
|
|
goto :goto_3
|
|
|
|
:cond_5
|
|
:goto_2
|
|
move v7, v4
|
|
|
|
goto :goto_4
|
|
|
|
.line 2235
|
|
:cond_6
|
|
:goto_3
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v7, v4, 0x1
|
|
|
|
add-int/2addr v0, v4
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
:goto_4
|
|
if-lt v0, v5, :cond_7
|
|
|
|
if-gt v0, v6, :cond_7
|
|
|
|
.line 2239
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v4, v7, 0x1
|
|
|
|
add-int/2addr v0, v7
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
goto :goto_2
|
|
|
|
.line 2246
|
|
:cond_7
|
|
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
array-length p1, p1
|
|
|
|
add-int/2addr v4, p1
|
|
|
|
.line 2247
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr p1, v7
|
|
|
|
sub-int/2addr p1, v4
|
|
|
|
add-int/lit8 p1, p1, -0x1
|
|
|
|
.line 2248
|
|
invoke-virtual {p0, v4, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->subString(II)Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
.line 2249
|
|
invoke-static {p1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
|
|
|
|
move-result-wide v4
|
|
|
|
const/16 p1, 0x10
|
|
|
|
const/16 v6, 0x2c
|
|
|
|
if-ne v0, v6, :cond_8
|
|
|
|
.line 2256
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v7, v7, -0x1
|
|
|
|
add-int/2addr v0, v7
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 2257
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/4 v0, 0x3
|
|
|
|
.line 2258
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 2259
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-wide v4
|
|
|
|
:cond_8
|
|
const/16 v8, 0x7d
|
|
|
|
if-ne v0, v8, :cond_d
|
|
|
|
.line 2264
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v9, v7, 0x1
|
|
|
|
add-int/2addr v0, v7
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
if-ne v0, v6, :cond_9
|
|
|
|
.line 2266
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 2267
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v9, v9, -0x1
|
|
|
|
add-int/2addr p1, v9
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 2268
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_5
|
|
|
|
:cond_9
|
|
const/16 p1, 0x5d
|
|
|
|
if-ne v0, p1, :cond_a
|
|
|
|
const/16 p1, 0xf
|
|
|
|
.line 2270
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 2271
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v9, v9, -0x1
|
|
|
|
add-int/2addr p1, v9
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 2272
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_5
|
|
|
|
:cond_a
|
|
if-ne v0, v8, :cond_b
|
|
|
|
const/16 p1, 0xd
|
|
|
|
.line 2274
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 2275
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v9, v9, -0x1
|
|
|
|
add-int/2addr p1, v9
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 2276
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_5
|
|
|
|
:cond_b
|
|
const/16 p1, 0x1a
|
|
|
|
if-ne v0, p1, :cond_c
|
|
|
|
const/16 v0, 0x14
|
|
|
|
.line 2278
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 2279
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v9, v9, -0x1
|
|
|
|
add-int/2addr v0, v9
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 2280
|
|
iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
:goto_5
|
|
const/4 p1, 0x4
|
|
|
|
.line 2285
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-wide v4
|
|
|
|
.line 2282
|
|
:cond_c
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-wide v1
|
|
|
|
.line 2287
|
|
:cond_d
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-wide v1
|
|
|
|
.line 2251
|
|
:cond_e
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-wide v1
|
|
.end method
|
|
|
|
.method public final scanFieldFloat([C)F
|
|
.locals 8
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 2052
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 2054
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charArrayCompare([C)Z
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, 0x0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
const/4 p1, -0x2
|
|
|
|
.line 2055
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v1
|
|
|
|
.line 2059
|
|
:cond_0
|
|
array-length v0, p1
|
|
|
|
.line 2060
|
|
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v3, v0, 0x1
|
|
|
|
add-int/2addr v2, v0
|
|
|
|
invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
const/4 v2, -0x1
|
|
|
|
const/16 v4, 0x30
|
|
|
|
if-lt v0, v4, :cond_a
|
|
|
|
const/16 v5, 0x39
|
|
|
|
if-gt v0, v5, :cond_a
|
|
|
|
.line 2065
|
|
:goto_0
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v6, v3, 0x1
|
|
|
|
add-int/2addr v0, v3
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
if-lt v0, v4, :cond_1
|
|
|
|
if-gt v0, v5, :cond_1
|
|
|
|
move v3, v6
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const/16 v3, 0x2e
|
|
|
|
if-ne v0, v3, :cond_3
|
|
|
|
.line 2074
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v3, v6, 0x1
|
|
|
|
add-int/2addr v0, v6
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
if-lt v0, v4, :cond_2
|
|
|
|
if-gt v0, v5, :cond_2
|
|
|
|
.line 2077
|
|
:goto_1
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v6, v3, 0x1
|
|
|
|
add-int/2addr v0, v3
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
if-lt v0, v4, :cond_3
|
|
|
|
if-gt v0, v5, :cond_3
|
|
|
|
move v3, v6
|
|
|
|
goto :goto_1
|
|
|
|
.line 2085
|
|
:cond_2
|
|
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v1
|
|
|
|
.line 2090
|
|
:cond_3
|
|
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
array-length p1, p1
|
|
|
|
add-int/2addr v3, p1
|
|
|
|
.line 2091
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr p1, v6
|
|
|
|
sub-int/2addr p1, v3
|
|
|
|
add-int/lit8 p1, p1, -0x1
|
|
|
|
.line 2092
|
|
invoke-virtual {p0, v3, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->subString(II)Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
.line 2093
|
|
invoke-static {p1}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F
|
|
|
|
move-result p1
|
|
|
|
const/16 v3, 0x10
|
|
|
|
const/16 v4, 0x2c
|
|
|
|
if-ne v0, v4, :cond_4
|
|
|
|
.line 2100
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v6, v6, -0x1
|
|
|
|
add-int/2addr v0, v6
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 2101
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/4 v0, 0x3
|
|
|
|
.line 2102
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 2103
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return p1
|
|
|
|
:cond_4
|
|
const/16 v5, 0x7d
|
|
|
|
if-ne v0, v5, :cond_9
|
|
|
|
.line 2108
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v7, v6, 0x1
|
|
|
|
add-int/2addr v0, v6
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
if-ne v0, v4, :cond_5
|
|
|
|
.line 2110
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 2111
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v7, v7, -0x1
|
|
|
|
add-int/2addr v0, v7
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 2112
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_2
|
|
|
|
:cond_5
|
|
const/16 v3, 0x5d
|
|
|
|
if-ne v0, v3, :cond_6
|
|
|
|
const/16 v0, 0xf
|
|
|
|
.line 2114
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 2115
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v7, v7, -0x1
|
|
|
|
add-int/2addr v0, v7
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 2116
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_2
|
|
|
|
:cond_6
|
|
if-ne v0, v5, :cond_7
|
|
|
|
const/16 v0, 0xd
|
|
|
|
.line 2118
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 2119
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v7, v7, -0x1
|
|
|
|
add-int/2addr v0, v7
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 2120
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_2
|
|
|
|
:cond_7
|
|
const/16 v3, 0x1a
|
|
|
|
if-ne v0, v3, :cond_8
|
|
|
|
.line 2122
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v7, v7, -0x1
|
|
|
|
add-int/2addr v0, v7
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
const/16 v0, 0x14
|
|
|
|
.line 2123
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 2124
|
|
iput-char v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
:goto_2
|
|
const/4 v0, 0x4
|
|
|
|
.line 2129
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return p1
|
|
|
|
.line 2126
|
|
:cond_8
|
|
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v1
|
|
|
|
.line 2131
|
|
:cond_9
|
|
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v1
|
|
|
|
.line 2095
|
|
:cond_a
|
|
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v1
|
|
.end method
|
|
|
|
.method public scanFieldInt([C)I
|
|
.locals 8
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 1689
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1691
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charArrayCompare([C)Z
|
|
|
|
move-result v1
|
|
|
|
if-nez v1, :cond_0
|
|
|
|
const/4 p1, -0x2
|
|
|
|
.line 1692
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
|
|
.line 1696
|
|
:cond_0
|
|
array-length p1, p1
|
|
|
|
.line 1697
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v2, p1, 0x1
|
|
|
|
add-int/2addr v1, p1
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
const/16 v1, 0x30
|
|
|
|
const/4 v3, -0x1
|
|
|
|
if-lt p1, v1, :cond_a
|
|
|
|
const/16 v4, 0x39
|
|
|
|
if-gt p1, v4, :cond_a
|
|
|
|
.line 1701
|
|
sget-object v5, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
aget p1, v5, p1
|
|
|
|
.line 1703
|
|
:goto_0
|
|
iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v6, v2, 0x1
|
|
|
|
add-int/2addr v5, v2
|
|
|
|
invoke-virtual {p0, v5}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v2
|
|
|
|
if-lt v2, v1, :cond_1
|
|
|
|
if-gt v2, v4, :cond_1
|
|
|
|
mul-int/lit8 p1, p1, 0xa
|
|
|
|
.line 1705
|
|
sget-object v5, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
aget v2, v5, v2
|
|
|
|
add-int/2addr p1, v2
|
|
|
|
move v2, v6
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const/16 v1, 0x2e
|
|
|
|
if-ne v2, v1, :cond_2
|
|
|
|
.line 1707
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
|
|
:cond_2
|
|
if-gez p1, :cond_3
|
|
|
|
.line 1714
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
|
|
:cond_3
|
|
const/16 v1, 0x10
|
|
|
|
const/16 v4, 0x2c
|
|
|
|
if-ne v2, v4, :cond_4
|
|
|
|
.line 1723
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v6, v6, -0x1
|
|
|
|
add-int/2addr v0, v6
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1724
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/4 v0, 0x3
|
|
|
|
.line 1725
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1726
|
|
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return p1
|
|
|
|
:cond_4
|
|
const/16 v5, 0x7d
|
|
|
|
if-ne v2, v5, :cond_9
|
|
|
|
.line 1731
|
|
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v7, v6, 0x1
|
|
|
|
add-int/2addr v2, v6
|
|
|
|
invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v2
|
|
|
|
if-ne v2, v4, :cond_5
|
|
|
|
.line 1733
|
|
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1734
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v7, v7, -0x1
|
|
|
|
add-int/2addr v0, v7
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1735
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_1
|
|
|
|
:cond_5
|
|
const/16 v1, 0x5d
|
|
|
|
if-ne v2, v1, :cond_6
|
|
|
|
const/16 v0, 0xf
|
|
|
|
.line 1737
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1738
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v7, v7, -0x1
|
|
|
|
add-int/2addr v0, v7
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1739
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_1
|
|
|
|
:cond_6
|
|
if-ne v2, v5, :cond_7
|
|
|
|
const/16 v0, 0xd
|
|
|
|
.line 1741
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1742
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v7, v7, -0x1
|
|
|
|
add-int/2addr v0, v7
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1743
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_1
|
|
|
|
:cond_7
|
|
const/16 v1, 0x1a
|
|
|
|
if-ne v2, v1, :cond_8
|
|
|
|
const/16 v0, 0x14
|
|
|
|
.line 1745
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1746
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v7, v7, -0x1
|
|
|
|
add-int/2addr v0, v7
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1747
|
|
iput-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
:goto_1
|
|
const/4 v0, 0x4
|
|
|
|
.line 1752
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return p1
|
|
|
|
.line 1749
|
|
:cond_8
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
|
|
.line 1754
|
|
:cond_9
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
|
|
.line 1718
|
|
:cond_a
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public scanFieldLong([C)J
|
|
.locals 11
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 1938
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1940
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charArrayCompare([C)Z
|
|
|
|
move-result v0
|
|
|
|
const-wide/16 v1, 0x0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
const/4 p1, -0x2
|
|
|
|
.line 1941
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-wide v1
|
|
|
|
.line 1945
|
|
:cond_0
|
|
array-length p1, p1
|
|
|
|
.line 1946
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v3, p1, 0x1
|
|
|
|
add-int/2addr v0, p1
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
const/16 v0, 0x30
|
|
|
|
const/4 v4, -0x1
|
|
|
|
if-lt p1, v0, :cond_a
|
|
|
|
const/16 v5, 0x39
|
|
|
|
if-gt p1, v5, :cond_a
|
|
|
|
.line 1950
|
|
sget-object v6, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
aget p1, v6, p1
|
|
|
|
int-to-long v6, p1
|
|
|
|
.line 1952
|
|
:goto_0
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v8, v3, 0x1
|
|
|
|
add-int/2addr p1, v3
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
if-lt p1, v0, :cond_1
|
|
|
|
if-gt p1, v5, :cond_1
|
|
|
|
const-wide/16 v9, 0xa
|
|
|
|
mul-long v6, v6, v9
|
|
|
|
.line 1954
|
|
sget-object v3, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
aget p1, v3, p1
|
|
|
|
int-to-long v9, p1
|
|
|
|
add-long/2addr v6, v9
|
|
|
|
move v3, v8
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const/16 v0, 0x2e
|
|
|
|
if-ne p1, v0, :cond_2
|
|
|
|
.line 1956
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-wide v1
|
|
|
|
:cond_2
|
|
cmp-long v0, v6, v1
|
|
|
|
if-gez v0, :cond_3
|
|
|
|
.line 1963
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-wide v1
|
|
|
|
:cond_3
|
|
const/16 v0, 0x10
|
|
|
|
const/16 v3, 0x2c
|
|
|
|
if-ne p1, v3, :cond_4
|
|
|
|
.line 1972
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v8, v8, -0x1
|
|
|
|
add-int/2addr p1, v8
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1973
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/4 p1, 0x3
|
|
|
|
.line 1974
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1975
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-wide v6
|
|
|
|
:cond_4
|
|
const/16 v5, 0x7d
|
|
|
|
if-ne p1, v5, :cond_9
|
|
|
|
.line 1980
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v9, v8, 0x1
|
|
|
|
add-int/2addr p1, v8
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
if-ne p1, v3, :cond_5
|
|
|
|
.line 1982
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1983
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v9, v9, -0x1
|
|
|
|
add-int/2addr p1, v9
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1984
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_1
|
|
|
|
:cond_5
|
|
const/16 v0, 0x5d
|
|
|
|
if-ne p1, v0, :cond_6
|
|
|
|
const/16 p1, 0xf
|
|
|
|
.line 1986
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1987
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v9, v9, -0x1
|
|
|
|
add-int/2addr p1, v9
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1988
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_1
|
|
|
|
:cond_6
|
|
if-ne p1, v5, :cond_7
|
|
|
|
const/16 p1, 0xd
|
|
|
|
.line 1990
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1991
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v9, v9, -0x1
|
|
|
|
add-int/2addr p1, v9
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1992
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_1
|
|
|
|
:cond_7
|
|
const/16 v0, 0x1a
|
|
|
|
if-ne p1, v0, :cond_8
|
|
|
|
const/16 p1, 0x14
|
|
|
|
.line 1994
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1995
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v9, v9, -0x1
|
|
|
|
add-int/2addr p1, v9
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1996
|
|
iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
:goto_1
|
|
const/4 p1, 0x4
|
|
|
|
.line 2001
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-wide v6
|
|
|
|
.line 1998
|
|
:cond_8
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-wide v1
|
|
|
|
.line 2003
|
|
:cond_9
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-wide v1
|
|
|
|
.line 1967
|
|
:cond_a
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-wide v1
|
|
.end method
|
|
|
|
.method public scanFieldString([C)Ljava/lang/String;
|
|
.locals 9
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 1173
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1175
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charArrayCompare([C)Z
|
|
|
|
move-result v1
|
|
|
|
if-nez v1, :cond_0
|
|
|
|
const/4 p1, -0x2
|
|
|
|
.line 1176
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1177
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->stringDefaultValue()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
|
|
.line 1182
|
|
:cond_0
|
|
array-length v1, p1
|
|
|
|
.line 1183
|
|
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v3, v1, 0x1
|
|
|
|
add-int/2addr v2, v1
|
|
|
|
invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
const/16 v2, 0x22
|
|
|
|
const/4 v4, -0x1
|
|
|
|
if-eq v1, v2, :cond_1
|
|
|
|
.line 1186
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1188
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->stringDefaultValue()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
|
|
.line 1194
|
|
:cond_1
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
array-length v5, p1
|
|
|
|
add-int/2addr v1, v5
|
|
|
|
const/4 v5, 0x1
|
|
|
|
add-int/2addr v1, v5
|
|
|
|
.line 1195
|
|
invoke-virtual {p0, v2, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->indexOf(CI)I
|
|
|
|
move-result v1
|
|
|
|
if-eq v1, v4, :cond_b
|
|
|
|
.line 1200
|
|
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
array-length v6, p1
|
|
|
|
add-int/2addr v2, v6
|
|
|
|
add-int/2addr v2, v5
|
|
|
|
sub-int v6, v1, v2
|
|
|
|
.line 1201
|
|
invoke-virtual {p0, v2, v6}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->subString(II)Ljava/lang/String;
|
|
|
|
move-result-object v2
|
|
|
|
.line 1202
|
|
iget v6, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
array-length v7, p1
|
|
|
|
add-int/2addr v6, v7
|
|
|
|
add-int/2addr v6, v5
|
|
|
|
:goto_0
|
|
if-ge v6, v1, :cond_3
|
|
|
|
.line 1203
|
|
invoke-virtual {p0, v6}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v7
|
|
|
|
const/16 v8, 0x5c
|
|
|
|
if-ne v7, v8, :cond_2
|
|
|
|
const/4 v0, 0x1
|
|
|
|
goto :goto_1
|
|
|
|
:cond_2
|
|
add-int/lit8 v6, v6, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_3
|
|
:goto_1
|
|
if-eqz v0, :cond_4
|
|
|
|
.line 1210
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1212
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->stringDefaultValue()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
|
|
.line 1215
|
|
:cond_4
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
array-length p1, p1
|
|
|
|
add-int/2addr v0, p1
|
|
|
|
add-int/2addr v0, v5
|
|
|
|
sub-int/2addr v1, v0
|
|
|
|
add-int/2addr v1, v5
|
|
|
|
add-int/2addr v3, v1
|
|
|
|
.line 1216
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v0, v3, 0x1
|
|
|
|
add-int/2addr p1, v3
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
const/16 v1, 0x2c
|
|
|
|
if-ne p1, v1, :cond_5
|
|
|
|
.line 1221
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
sub-int/2addr v0, v5
|
|
|
|
add-int/2addr p1, v0
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1222
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/4 p1, 0x3
|
|
|
|
.line 1223
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v2
|
|
|
|
:cond_5
|
|
const/16 v3, 0x7d
|
|
|
|
if-ne p1, v3, :cond_a
|
|
|
|
.line 1228
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v6, v0, 0x1
|
|
|
|
add-int/2addr p1, v0
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
if-ne p1, v1, :cond_6
|
|
|
|
const/16 p1, 0x10
|
|
|
|
.line 1230
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1231
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
sub-int/2addr v6, v5
|
|
|
|
add-int/2addr p1, v6
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1232
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_2
|
|
|
|
:cond_6
|
|
const/16 v0, 0x5d
|
|
|
|
if-ne p1, v0, :cond_7
|
|
|
|
const/16 p1, 0xf
|
|
|
|
.line 1234
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1235
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
sub-int/2addr v6, v5
|
|
|
|
add-int/2addr p1, v6
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1236
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_2
|
|
|
|
:cond_7
|
|
if-ne p1, v3, :cond_8
|
|
|
|
const/16 p1, 0xd
|
|
|
|
.line 1238
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1239
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
sub-int/2addr v6, v5
|
|
|
|
add-int/2addr p1, v6
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1240
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_2
|
|
|
|
:cond_8
|
|
const/16 v0, 0x1a
|
|
|
|
if-ne p1, v0, :cond_9
|
|
|
|
const/16 p1, 0x14
|
|
|
|
.line 1242
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1243
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
sub-int/2addr v6, v5
|
|
|
|
add-int/2addr p1, v6
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1244
|
|
iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
:goto_2
|
|
const/4 p1, 0x4
|
|
|
|
.line 1249
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v2
|
|
|
|
.line 1246
|
|
:cond_9
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1247
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->stringDefaultValue()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
|
|
.line 1251
|
|
:cond_a
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1252
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->stringDefaultValue()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
|
|
.line 1197
|
|
:cond_b
|
|
new-instance p1, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v0, "unclosed str"
|
|
|
|
invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p1
|
|
.end method
|
|
|
|
.method public scanFieldStringArray([CLjava/lang/Class;)Ljava/util/Collection;
|
|
.locals 7
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"([C",
|
|
"Ljava/lang/Class<",
|
|
"*>;)",
|
|
"Ljava/util/Collection<",
|
|
"Ljava/lang/String;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 1482
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1484
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charArrayCompare([C)Z
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, 0x0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
const/4 p1, -0x2
|
|
|
|
.line 1485
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v1
|
|
|
|
.line 1491
|
|
:cond_0
|
|
const-class v0, Ljava/util/HashSet;
|
|
|
|
invoke-virtual {p2, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
.line 1492
|
|
new-instance p2, Ljava/util/HashSet;
|
|
|
|
invoke-direct {p2}, Ljava/util/HashSet;-><init>()V
|
|
|
|
goto :goto_0
|
|
|
|
.line 1493
|
|
:cond_1
|
|
const-class v0, Ljava/util/ArrayList;
|
|
|
|
invoke-virtual {p2, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_2
|
|
|
|
.line 1494
|
|
new-instance p2, Ljava/util/ArrayList;
|
|
|
|
invoke-direct {p2}, Ljava/util/ArrayList;-><init>()V
|
|
|
|
goto :goto_0
|
|
|
|
.line 1497
|
|
:cond_2
|
|
:try_start_0
|
|
invoke-virtual {p2}, Ljava/lang/Class;->newInstance()Ljava/lang/Object;
|
|
|
|
move-result-object p2
|
|
|
|
check-cast p2, Ljava/util/Collection;
|
|
:try_end_0
|
|
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
|
|
|
|
.line 1505
|
|
:goto_0
|
|
array-length p1, p1
|
|
|
|
.line 1506
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v2, p1, 0x1
|
|
|
|
add-int/2addr v0, p1
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
const/16 v0, 0x5b
|
|
|
|
const/4 v3, -0x1
|
|
|
|
if-eq p1, v0, :cond_3
|
|
|
|
.line 1509
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v1
|
|
|
|
.line 1513
|
|
:cond_3
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v0, v2, 0x1
|
|
|
|
add-int/2addr p1, v2
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
:goto_1
|
|
const/16 v2, 0x22
|
|
|
|
if-eq p1, v2, :cond_4
|
|
|
|
.line 1517
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v1
|
|
|
|
:cond_4
|
|
move p1, v0
|
|
|
|
.line 1525
|
|
:goto_2
|
|
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v5, p1, 0x1
|
|
|
|
add-int/2addr v4, p1
|
|
|
|
invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
if-ne p1, v2, :cond_d
|
|
|
|
.line 1527
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr p1, v0
|
|
|
|
.line 1528
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v0, v5
|
|
|
|
sub-int/2addr v0, p1
|
|
|
|
add-int/lit8 v0, v0, -0x1
|
|
|
|
.line 1529
|
|
invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->subString(II)Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
.line 1530
|
|
invoke-interface {p2, p1}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
|
|
|
|
.line 1532
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v0, v5, 0x1
|
|
|
|
add-int/2addr p1, v5
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
const/16 v2, 0x2c
|
|
|
|
if-ne p1, v2, :cond_5
|
|
|
|
.line 1543
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v2, v0, 0x1
|
|
|
|
add-int/2addr p1, v0
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
move v0, v2
|
|
|
|
goto :goto_1
|
|
|
|
:cond_5
|
|
const/16 v4, 0x5d
|
|
|
|
if-ne p1, v4, :cond_c
|
|
|
|
.line 1548
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v5, v0, 0x1
|
|
|
|
add-int/2addr p1, v0
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
if-ne p1, v2, :cond_6
|
|
|
|
.line 1557
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v5, v5, -0x1
|
|
|
|
add-int/2addr p1, v5
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1558
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/4 p1, 0x3
|
|
|
|
.line 1559
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object p2
|
|
|
|
:cond_6
|
|
const/16 v0, 0x7d
|
|
|
|
if-ne p1, v0, :cond_b
|
|
|
|
.line 1564
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v6, v5, 0x1
|
|
|
|
add-int/2addr p1, v5
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
if-ne p1, v2, :cond_7
|
|
|
|
const/16 p1, 0x10
|
|
|
|
.line 1566
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1567
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v6, v6, -0x1
|
|
|
|
add-int/2addr p1, v6
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1568
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_3
|
|
|
|
:cond_7
|
|
if-ne p1, v4, :cond_8
|
|
|
|
const/16 p1, 0xf
|
|
|
|
.line 1570
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1571
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v6, v6, -0x1
|
|
|
|
add-int/2addr p1, v6
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1572
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_3
|
|
|
|
:cond_8
|
|
if-ne p1, v0, :cond_9
|
|
|
|
const/16 p1, 0xd
|
|
|
|
.line 1574
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1575
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v6, v6, -0x1
|
|
|
|
add-int/2addr p1, v6
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1576
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_3
|
|
|
|
:cond_9
|
|
const/16 v0, 0x1a
|
|
|
|
if-ne p1, v0, :cond_a
|
|
|
|
.line 1578
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v6, v6, -0x1
|
|
|
|
add-int/2addr p1, v6
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
const/16 p1, 0x14
|
|
|
|
.line 1579
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1580
|
|
iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
:goto_3
|
|
const/4 p1, 0x4
|
|
|
|
.line 1585
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object p2
|
|
|
|
.line 1582
|
|
:cond_a
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v1
|
|
|
|
.line 1587
|
|
:cond_b
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v1
|
|
|
|
.line 1552
|
|
:cond_c
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v1
|
|
|
|
:cond_d
|
|
const/16 v4, 0x5c
|
|
|
|
if-ne p1, v4, :cond_e
|
|
|
|
.line 1537
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v1
|
|
|
|
:cond_e
|
|
move p1, v5
|
|
|
|
goto/16 :goto_2
|
|
|
|
:catch_0
|
|
move-exception p1
|
|
|
|
.line 1499
|
|
new-instance p2, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
invoke-virtual {p1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-direct {p2, v0, p1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
|
|
|
|
throw p2
|
|
.end method
|
|
|
|
.method public scanFieldSymbol([CLcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
|
|
.locals 7
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 1330
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1332
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charArrayCompare([C)Z
|
|
|
|
move-result v1
|
|
|
|
const/4 v2, 0x0
|
|
|
|
if-nez v1, :cond_0
|
|
|
|
const/4 p1, -0x2
|
|
|
|
.line 1333
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v2
|
|
|
|
.line 1337
|
|
:cond_0
|
|
array-length v1, p1
|
|
|
|
.line 1338
|
|
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v4, v1, 0x1
|
|
|
|
add-int/2addr v3, v1
|
|
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
const/16 v3, 0x22
|
|
|
|
const/4 v5, -0x1
|
|
|
|
if-eq v1, v3, :cond_1
|
|
|
|
.line 1341
|
|
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v2
|
|
|
|
.line 1349
|
|
:cond_1
|
|
:goto_0
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v6, v4, 0x1
|
|
|
|
add-int/2addr v1, v4
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
if-ne v1, v3, :cond_8
|
|
|
|
.line 1353
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
array-length p1, p1
|
|
|
|
add-int/2addr v1, p1
|
|
|
|
add-int/lit8 v1, v1, 0x1
|
|
|
|
.line 1354
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr p1, v6
|
|
|
|
sub-int/2addr p1, v1
|
|
|
|
add-int/lit8 p1, p1, -0x1
|
|
|
|
.line 1355
|
|
invoke-virtual {p0, v1, p1, v0, p2}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->addSymbol(IIILcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
.line 1356
|
|
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v0, v6, 0x1
|
|
|
|
add-int/2addr p2, v6
|
|
|
|
invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p2
|
|
|
|
const/16 v1, 0x2c
|
|
|
|
if-ne p2, v1, :cond_2
|
|
|
|
.line 1369
|
|
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v0, v0, -0x1
|
|
|
|
add-int/2addr p2, v0
|
|
|
|
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1370
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/4 p2, 0x3
|
|
|
|
.line 1371
|
|
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object p1
|
|
|
|
:cond_2
|
|
const/16 v3, 0x7d
|
|
|
|
if-ne p2, v3, :cond_7
|
|
|
|
.line 1376
|
|
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v4, v0, 0x1
|
|
|
|
add-int/2addr p2, v0
|
|
|
|
invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p2
|
|
|
|
if-ne p2, v1, :cond_3
|
|
|
|
const/16 p2, 0x10
|
|
|
|
.line 1378
|
|
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1379
|
|
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v4, v4, -0x1
|
|
|
|
add-int/2addr p2, v4
|
|
|
|
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1380
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_1
|
|
|
|
:cond_3
|
|
const/16 v0, 0x5d
|
|
|
|
if-ne p2, v0, :cond_4
|
|
|
|
const/16 p2, 0xf
|
|
|
|
.line 1382
|
|
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1383
|
|
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v4, v4, -0x1
|
|
|
|
add-int/2addr p2, v4
|
|
|
|
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1384
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_1
|
|
|
|
:cond_4
|
|
if-ne p2, v3, :cond_5
|
|
|
|
const/16 p2, 0xd
|
|
|
|
.line 1386
|
|
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1387
|
|
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v4, v4, -0x1
|
|
|
|
add-int/2addr p2, v4
|
|
|
|
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1388
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_1
|
|
|
|
:cond_5
|
|
const/16 v0, 0x1a
|
|
|
|
if-ne p2, v0, :cond_6
|
|
|
|
const/16 p2, 0x14
|
|
|
|
.line 1390
|
|
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 1391
|
|
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v4, v4, -0x1
|
|
|
|
add-int/2addr p2, v4
|
|
|
|
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1392
|
|
iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
:goto_1
|
|
const/4 p2, 0x4
|
|
|
|
.line 1397
|
|
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object p1
|
|
|
|
.line 1394
|
|
:cond_6
|
|
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v2
|
|
|
|
.line 1399
|
|
:cond_7
|
|
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v2
|
|
|
|
:cond_8
|
|
mul-int/lit8 v0, v0, 0x1f
|
|
|
|
add-int/2addr v0, v1
|
|
|
|
const/16 v4, 0x5c
|
|
|
|
if-ne v1, v4, :cond_9
|
|
|
|
.line 1363
|
|
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v2
|
|
|
|
:cond_9
|
|
move v4, v6
|
|
|
|
goto/16 :goto_0
|
|
.end method
|
|
|
|
.method public final scanFloat(C)F
|
|
.locals 8
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 2139
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 2142
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v1, v0
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, 0x0
|
|
|
|
const/4 v2, -0x1
|
|
|
|
const/16 v3, 0x30
|
|
|
|
if-lt v0, v3, :cond_5
|
|
|
|
const/16 v4, 0x39
|
|
|
|
if-gt v0, v4, :cond_5
|
|
|
|
const/4 v0, 0x1
|
|
|
|
const/4 v5, 0x1
|
|
|
|
.line 2147
|
|
:goto_0
|
|
iget v6, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v7, v5, 0x1
|
|
|
|
add-int/2addr v6, v5
|
|
|
|
invoke-virtual {p0, v6}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v5
|
|
|
|
if-lt v5, v3, :cond_0
|
|
|
|
if-gt v5, v4, :cond_0
|
|
|
|
move v5, v7
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/16 v6, 0x2e
|
|
|
|
if-ne v5, v6, :cond_2
|
|
|
|
.line 2156
|
|
iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v6, v7, 0x1
|
|
|
|
add-int/2addr v5, v7
|
|
|
|
invoke-virtual {p0, v5}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v5
|
|
|
|
if-lt v5, v3, :cond_1
|
|
|
|
if-gt v5, v4, :cond_1
|
|
|
|
.line 2159
|
|
:goto_1
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v5, v6, 0x1
|
|
|
|
add-int/2addr v1, v6
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
if-lt v1, v3, :cond_3
|
|
|
|
if-gt v1, v4, :cond_3
|
|
|
|
move v6, v5
|
|
|
|
goto :goto_1
|
|
|
|
.line 2167
|
|
:cond_1
|
|
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v1
|
|
|
|
:cond_2
|
|
move v1, v5
|
|
|
|
move v5, v7
|
|
|
|
.line 2172
|
|
:cond_3
|
|
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 2173
|
|
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v4, v5
|
|
|
|
sub-int/2addr v4, v3
|
|
|
|
sub-int/2addr v4, v0
|
|
|
|
.line 2174
|
|
invoke-virtual {p0, v3, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->subString(II)Ljava/lang/String;
|
|
|
|
move-result-object v3
|
|
|
|
.line 2175
|
|
invoke-static {v3}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F
|
|
|
|
move-result v3
|
|
|
|
if-ne v1, p1, :cond_4
|
|
|
|
.line 2182
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
sub-int/2addr v5, v0
|
|
|
|
add-int/2addr p1, v5
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 2183
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/4 p1, 0x3
|
|
|
|
.line 2184
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
const/16 p1, 0x10
|
|
|
|
.line 2185
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return v3
|
|
|
|
.line 2188
|
|
:cond_4
|
|
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v3
|
|
|
|
.line 2177
|
|
:cond_5
|
|
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v1
|
|
.end method
|
|
|
|
.method public final scanIdent()V
|
|
.locals 2
|
|
|
|
.line 2597
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v0, v0, -0x1
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 2598
|
|
iput-boolean v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->hasSpecial:Z
|
|
|
|
.line 2601
|
|
:goto_0
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/lit8 v0, v0, 0x1
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
.line 2603
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2604
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
invoke-static {v0}, Ljava/lang/Character;->isLetterOrDigit(C)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 2608
|
|
:cond_0
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->stringVal()Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
const-string v1, "null"
|
|
|
|
.line 2610
|
|
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v1
|
|
|
|
if-eqz v1, :cond_1
|
|
|
|
const/16 v0, 0x8
|
|
|
|
.line 2611
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
goto :goto_1
|
|
|
|
:cond_1
|
|
const-string v1, "new"
|
|
|
|
.line 2612
|
|
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v1
|
|
|
|
if-eqz v1, :cond_2
|
|
|
|
const/16 v0, 0x9
|
|
|
|
.line 2613
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
goto :goto_1
|
|
|
|
:cond_2
|
|
const-string v1, "true"
|
|
|
|
.line 2614
|
|
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v1
|
|
|
|
if-eqz v1, :cond_3
|
|
|
|
const/4 v0, 0x6
|
|
|
|
.line 2615
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
goto :goto_1
|
|
|
|
:cond_3
|
|
const-string v1, "false"
|
|
|
|
.line 2616
|
|
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v1
|
|
|
|
if-eqz v1, :cond_4
|
|
|
|
const/4 v0, 0x7
|
|
|
|
.line 2617
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
goto :goto_1
|
|
|
|
:cond_4
|
|
const-string v1, "undefined"
|
|
|
|
.line 2618
|
|
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_5
|
|
|
|
const/16 v0, 0x17
|
|
|
|
.line 2619
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
goto :goto_1
|
|
|
|
:cond_5
|
|
const/16 v0, 0x12
|
|
|
|
.line 2621
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
:goto_1
|
|
return-void
|
|
.end method
|
|
|
|
.method public scanInt(C)I
|
|
.locals 9
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 1805
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1808
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v1, v0
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
const/16 v2, 0x30
|
|
|
|
const/4 v3, -0x1
|
|
|
|
if-lt v1, v2, :cond_4
|
|
|
|
const/16 v4, 0x39
|
|
|
|
if-gt v1, v4, :cond_4
|
|
|
|
.line 1812
|
|
sget-object v5, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
aget v1, v5, v1
|
|
|
|
const/4 v5, 0x1
|
|
|
|
move v6, v1
|
|
|
|
const/4 v1, 0x1
|
|
|
|
.line 1814
|
|
:goto_0
|
|
iget v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v8, v1, 0x1
|
|
|
|
add-int/2addr v7, v1
|
|
|
|
invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
if-lt v1, v2, :cond_0
|
|
|
|
if-gt v1, v4, :cond_0
|
|
|
|
mul-int/lit8 v6, v6, 0xa
|
|
|
|
.line 1816
|
|
sget-object v7, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
aget v1, v7, v1
|
|
|
|
add-int/2addr v6, v1
|
|
|
|
move v1, v8
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/16 v2, 0x2e
|
|
|
|
if-ne v1, v2, :cond_1
|
|
|
|
.line 1818
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
|
|
:cond_1
|
|
if-gez v6, :cond_2
|
|
|
|
.line 1825
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
|
|
:cond_2
|
|
if-ne v1, p1, :cond_3
|
|
|
|
.line 1834
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
sub-int/2addr v8, v5
|
|
|
|
add-int/2addr p1, v8
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1835
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/4 p1, 0x3
|
|
|
|
.line 1836
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
const/16 p1, 0x10
|
|
|
|
.line 1837
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return v6
|
|
|
|
.line 1840
|
|
:cond_3
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v6
|
|
|
|
.line 1829
|
|
:cond_4
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public scanLong(C)J
|
|
.locals 13
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 2011
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 2014
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v1, v0
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
const/16 v1, 0x30
|
|
|
|
const-wide/16 v2, 0x0
|
|
|
|
const/4 v4, -0x1
|
|
|
|
if-lt v0, v1, :cond_4
|
|
|
|
const/16 v5, 0x39
|
|
|
|
if-gt v0, v5, :cond_4
|
|
|
|
.line 2018
|
|
sget-object v6, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
aget v0, v6, v0
|
|
|
|
int-to-long v6, v0
|
|
|
|
const/4 v0, 0x1
|
|
|
|
move-wide v7, v6
|
|
|
|
const/4 v6, 0x1
|
|
|
|
.line 2020
|
|
:goto_0
|
|
iget v9, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v10, v6, 0x1
|
|
|
|
add-int/2addr v9, v6
|
|
|
|
invoke-virtual {p0, v9}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v6
|
|
|
|
if-lt v6, v1, :cond_0
|
|
|
|
if-gt v6, v5, :cond_0
|
|
|
|
const-wide/16 v11, 0xa
|
|
|
|
mul-long v7, v7, v11
|
|
|
|
.line 2022
|
|
sget-object v9, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
aget v6, v9, v6
|
|
|
|
int-to-long v11, v6
|
|
|
|
add-long/2addr v7, v11
|
|
|
|
move v6, v10
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/16 v1, 0x2e
|
|
|
|
if-ne v6, v1, :cond_1
|
|
|
|
.line 2024
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-wide v2
|
|
|
|
:cond_1
|
|
cmp-long v1, v7, v2
|
|
|
|
if-gez v1, :cond_2
|
|
|
|
.line 2031
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-wide v2
|
|
|
|
:cond_2
|
|
if-ne v6, p1, :cond_3
|
|
|
|
.line 2040
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
sub-int/2addr v10, v0
|
|
|
|
add-int/2addr p1, v10
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 2041
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/4 p1, 0x3
|
|
|
|
.line 2042
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
const/16 p1, 0x10
|
|
|
|
.line 2043
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-wide v7
|
|
|
|
.line 2046
|
|
:cond_3
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-wide v7
|
|
|
|
.line 2035
|
|
:cond_4
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-wide v2
|
|
.end method
|
|
|
|
.method public final scanNULL()V
|
|
.locals 3
|
|
|
|
.line 2481
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x4e
|
|
|
|
if-ne v0, v1, :cond_5
|
|
|
|
.line 2484
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2486
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x55
|
|
|
|
if-ne v0, v1, :cond_4
|
|
|
|
.line 2489
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2491
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x4c
|
|
|
|
if-ne v0, v1, :cond_3
|
|
|
|
.line 2494
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2496
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v1, :cond_2
|
|
|
|
.line 2499
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2501
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x20
|
|
|
|
const/16 v2, 0x8
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x2c
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x7d
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x5d
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xa
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xd
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x9
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x1a
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xc
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v2, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 2505
|
|
:cond_0
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "scan NULL error"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2503
|
|
:cond_1
|
|
:goto_0
|
|
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-void
|
|
|
|
.line 2497
|
|
:cond_2
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse NULL"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2492
|
|
:cond_3
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse NULL"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2487
|
|
:cond_4
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse NULL"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2482
|
|
:cond_5
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse NULL"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
.end method
|
|
|
|
.method public final scanNullOrNew()V
|
|
.locals 12
|
|
|
|
.line 2436
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x6e
|
|
|
|
if-ne v0, v1, :cond_9
|
|
|
|
.line 2439
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2441
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x75
|
|
|
|
const/16 v2, 0xc
|
|
|
|
const/16 v3, 0x1a
|
|
|
|
const/16 v4, 0xd
|
|
|
|
const/16 v5, 0xa
|
|
|
|
const/16 v6, 0x5d
|
|
|
|
const/16 v7, 0x7d
|
|
|
|
const/16 v8, 0x2c
|
|
|
|
const/16 v9, 0x20
|
|
|
|
const/16 v10, 0x9
|
|
|
|
const/16 v11, 0x8
|
|
|
|
if-ne v0, v1, :cond_4
|
|
|
|
.line 2442
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2443
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x6c
|
|
|
|
if-ne v0, v1, :cond_3
|
|
|
|
.line 2446
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2448
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v1, :cond_2
|
|
|
|
.line 2451
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2453
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v9, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v8, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v7, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v6, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v5, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v4, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v10, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v3, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v2, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v11, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 2457
|
|
:cond_0
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "scan null error"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2455
|
|
:cond_1
|
|
:goto_0
|
|
iput v11, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-void
|
|
|
|
.line 2449
|
|
:cond_2
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse null"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2444
|
|
:cond_3
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse null"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2462
|
|
:cond_4
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x65
|
|
|
|
if-ne v0, v1, :cond_8
|
|
|
|
.line 2465
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2467
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x77
|
|
|
|
if-ne v0, v1, :cond_7
|
|
|
|
.line 2470
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2472
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v9, :cond_6
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v8, :cond_6
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v7, :cond_6
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v6, :cond_6
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v5, :cond_6
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v4, :cond_6
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v10, :cond_6
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v3, :cond_6
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v2, :cond_6
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v11, :cond_5
|
|
|
|
goto :goto_1
|
|
|
|
.line 2476
|
|
:cond_5
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "scan new error"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2474
|
|
:cond_6
|
|
:goto_1
|
|
iput v10, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-void
|
|
|
|
.line 2468
|
|
:cond_7
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse new"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2463
|
|
:cond_8
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse new"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2437
|
|
:cond_9
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse null or new"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
.end method
|
|
|
|
.method public final scanNumber()V
|
|
.locals 9
|
|
|
|
.line 2823
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
.line 2825
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x2d
|
|
|
|
const/4 v2, 0x1
|
|
|
|
if-ne v0, v1, :cond_0
|
|
|
|
.line 2826
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v0, v2
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
.line 2827
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2831
|
|
:cond_0
|
|
:goto_0
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v3, 0x39
|
|
|
|
const/16 v4, 0x30
|
|
|
|
if-lt v0, v4, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-gt v0, v3, :cond_1
|
|
|
|
.line 2832
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v0, v2
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
.line 2836
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const/4 v0, 0x0
|
|
|
|
.line 2841
|
|
iget-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v6, 0x2e
|
|
|
|
if-ne v5, v6, :cond_3
|
|
|
|
.line 2842
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v0, v2
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
.line 2843
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2847
|
|
:goto_1
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-lt v0, v4, :cond_2
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-gt v0, v3, :cond_2
|
|
|
|
.line 2848
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v0, v2
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
.line 2852
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_1
|
|
|
|
:cond_2
|
|
const/4 v0, 0x1
|
|
|
|
.line 2856
|
|
:cond_3
|
|
iget-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v6, 0x4c
|
|
|
|
if-ne v5, v6, :cond_4
|
|
|
|
.line 2857
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v1, v2
|
|
|
|
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
.line 2858
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_2
|
|
|
|
.line 2859
|
|
:cond_4
|
|
iget-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v6, 0x53
|
|
|
|
if-ne v5, v6, :cond_5
|
|
|
|
.line 2860
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v1, v2
|
|
|
|
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
.line 2861
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_2
|
|
|
|
.line 2862
|
|
:cond_5
|
|
iget-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v6, 0x42
|
|
|
|
if-ne v5, v6, :cond_6
|
|
|
|
.line 2863
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v1, v2
|
|
|
|
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
.line 2864
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_2
|
|
|
|
.line 2865
|
|
:cond_6
|
|
iget-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v6, 0x46
|
|
|
|
if-ne v5, v6, :cond_7
|
|
|
|
.line 2866
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v0, v2
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
.line 2867
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_5
|
|
|
|
.line 2869
|
|
:cond_7
|
|
iget-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v7, 0x44
|
|
|
|
if-ne v5, v7, :cond_8
|
|
|
|
.line 2870
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v0, v2
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
.line 2871
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_5
|
|
|
|
.line 2873
|
|
:cond_8
|
|
iget-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v8, 0x65
|
|
|
|
if-eq v5, v8, :cond_a
|
|
|
|
iget-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v8, 0x45
|
|
|
|
if-ne v5, v8, :cond_9
|
|
|
|
goto :goto_3
|
|
|
|
:cond_9
|
|
:goto_2
|
|
move v2, v0
|
|
|
|
goto :goto_5
|
|
|
|
.line 2874
|
|
:cond_a
|
|
:goto_3
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v0, v2
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
.line 2875
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2877
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v5, 0x2b
|
|
|
|
if-eq v0, v5, :cond_b
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v1, :cond_c
|
|
|
|
.line 2878
|
|
:cond_b
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v0, v2
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
.line 2879
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2883
|
|
:cond_c
|
|
:goto_4
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-lt v0, v4, :cond_d
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-gt v0, v3, :cond_d
|
|
|
|
.line 2884
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v0, v2
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
.line 2888
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_4
|
|
|
|
.line 2891
|
|
:cond_d
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-eq v0, v7, :cond_e
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v6, :cond_f
|
|
|
|
.line 2892
|
|
:cond_e
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v0, v2
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
.line 2893
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
:cond_f
|
|
:goto_5
|
|
if-eqz v2, :cond_10
|
|
|
|
const/4 v0, 0x3
|
|
|
|
.line 2900
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
goto :goto_6
|
|
|
|
:cond_10
|
|
const/4 v0, 0x2
|
|
|
|
.line 2902
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
:goto_6
|
|
return-void
|
|
.end method
|
|
|
|
.method public final scanSet()V
|
|
.locals 2
|
|
|
|
.line 2788
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x53
|
|
|
|
if-ne v0, v1, :cond_4
|
|
|
|
.line 2791
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2793
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x65
|
|
|
|
if-ne v0, v1, :cond_3
|
|
|
|
.line 2796
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2798
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x74
|
|
|
|
if-ne v0, v1, :cond_2
|
|
|
|
.line 2801
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2803
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x20
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xa
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xd
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x9
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xc
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x8
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x5b
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x28
|
|
|
|
if-ne v0, v1, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 2806
|
|
:cond_0
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "scan set error"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
:cond_1
|
|
:goto_0
|
|
const/16 v0, 0x15
|
|
|
|
.line 2804
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-void
|
|
|
|
.line 2799
|
|
:cond_2
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse set"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2794
|
|
:cond_3
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse set"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2789
|
|
:cond_4
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse set"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
.end method
|
|
|
|
.method public scanString(C)Ljava/lang/String;
|
|
.locals 9
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 1259
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1262
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v1, v0
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
const/4 v2, 0x3
|
|
|
|
const/4 v3, -0x1
|
|
|
|
const/4 v4, 0x1
|
|
|
|
const/16 v5, 0x6e
|
|
|
|
if-ne v1, v5, :cond_2
|
|
|
|
.line 1265
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v0, v4
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
const/16 v1, 0x75
|
|
|
|
const/4 v5, 0x0
|
|
|
|
if-ne v0, v1, :cond_1
|
|
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v0, v4
|
|
|
|
add-int/2addr v0, v4
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
const/16 v1, 0x6c
|
|
|
|
if-ne v0, v1, :cond_1
|
|
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v0, v4
|
|
|
|
add-int/lit8 v0, v0, 0x2
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
if-ne v0, v1, :cond_1
|
|
|
|
.line 1267
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v0, v0, 0x4
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
if-ne v0, p1, :cond_0
|
|
|
|
.line 1274
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 p1, p1, 0x4
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1275
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 1276
|
|
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v5
|
|
|
|
.line 1279
|
|
:cond_0
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v5
|
|
|
|
.line 1269
|
|
:cond_1
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v5
|
|
|
|
:cond_2
|
|
const/16 v5, 0x22
|
|
|
|
if-eq v1, v5, :cond_3
|
|
|
|
.line 1285
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1287
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->stringDefaultValue()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
|
|
.line 1293
|
|
:cond_3
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v1, v4
|
|
|
|
.line 1294
|
|
invoke-virtual {p0, v5, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->indexOf(CI)I
|
|
|
|
move-result v5
|
|
|
|
if-eq v5, v3, :cond_8
|
|
|
|
.line 1299
|
|
iget v6, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v6, v4
|
|
|
|
sub-int v1, v5, v1
|
|
|
|
invoke-virtual {p0, v6, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->subString(II)Ljava/lang/String;
|
|
|
|
move-result-object v1
|
|
|
|
.line 1300
|
|
iget v6, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v6, v4
|
|
|
|
:goto_0
|
|
if-ge v6, v5, :cond_5
|
|
|
|
.line 1301
|
|
invoke-virtual {p0, v6}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v7
|
|
|
|
const/16 v8, 0x5c
|
|
|
|
if-ne v7, v8, :cond_4
|
|
|
|
const/4 v0, 0x1
|
|
|
|
goto :goto_1
|
|
|
|
:cond_4
|
|
add-int/lit8 v6, v6, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_5
|
|
:goto_1
|
|
if-eqz v0, :cond_6
|
|
|
|
.line 1308
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1310
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->stringDefaultValue()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
|
|
.line 1313
|
|
:cond_6
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v0, v4
|
|
|
|
sub-int/2addr v5, v0
|
|
|
|
add-int/2addr v5, v4
|
|
|
|
add-int/2addr v5, v4
|
|
|
|
.line 1314
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v6, v5, 0x1
|
|
|
|
add-int/2addr v0, v5
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
if-ne v0, p1, :cond_7
|
|
|
|
.line 1319
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
sub-int/2addr v6, v4
|
|
|
|
add-int/2addr p1, v6
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1320
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 1321
|
|
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v1
|
|
|
|
.line 1324
|
|
:cond_7
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v1
|
|
|
|
.line 1296
|
|
:cond_8
|
|
new-instance p1, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v0, "unclosed str"
|
|
|
|
invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p1
|
|
.end method
|
|
|
|
.method public final scanString()V
|
|
.locals 11
|
|
|
|
.line 856
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 857
|
|
iput-boolean v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->hasSpecial:Z
|
|
|
|
.line 860
|
|
:goto_0
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v1
|
|
|
|
const/16 v2, 0x22
|
|
|
|
const/4 v3, 0x4
|
|
|
|
if-ne v1, v2, :cond_0
|
|
|
|
.line 986
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 987
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v0
|
|
|
|
iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
return-void
|
|
|
|
:cond_0
|
|
const/16 v4, 0x1a
|
|
|
|
if-ne v1, v4, :cond_2
|
|
|
|
.line 867
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->isEOF()Z
|
|
|
|
move-result v2
|
|
|
|
if-nez v2, :cond_1
|
|
|
|
.line 868
|
|
invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto :goto_0
|
|
|
|
.line 871
|
|
:cond_1
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
new-instance v2, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v3, "unclosed string : "
|
|
|
|
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
:cond_2
|
|
const/16 v4, 0x5c
|
|
|
|
const/4 v5, 0x1
|
|
|
|
if-ne v1, v4, :cond_6
|
|
|
|
.line 875
|
|
iget-boolean v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->hasSpecial:Z
|
|
|
|
const/4 v6, 0x2
|
|
|
|
if-nez v1, :cond_5
|
|
|
|
.line 876
|
|
iput-boolean v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->hasSpecial:Z
|
|
|
|
.line 878
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
iget-object v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
array-length v7, v7
|
|
|
|
if-lt v1, v7, :cond_4
|
|
|
|
.line 879
|
|
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
array-length v1, v1
|
|
|
|
mul-int/lit8 v1, v1, 0x2
|
|
|
|
.line 880
|
|
iget v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
if-le v7, v1, :cond_3
|
|
|
|
.line 881
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
.line 883
|
|
:cond_3
|
|
new-array v1, v1, [C
|
|
|
|
.line 884
|
|
iget-object v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
iget-object v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
array-length v8, v8
|
|
|
|
invoke-static {v7, v0, v1, v0, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
|
|
|
|
.line 885
|
|
iput-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
.line 888
|
|
:cond_4
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
add-int/2addr v1, v5
|
|
|
|
iget v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
iget-object v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
invoke-virtual {p0, v1, v7, v8}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->copyTo(II[C)V
|
|
|
|
.line 893
|
|
:cond_5
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v1
|
|
|
|
const/4 v7, 0x3
|
|
|
|
packed-switch v1, :pswitch_data_0
|
|
|
|
const/16 v8, 0x10
|
|
|
|
packed-switch v1, :pswitch_data_1
|
|
|
|
sparse-switch v1, :sswitch_data_0
|
|
|
|
.line 968
|
|
iput-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
.line 969
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
new-instance v2, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v3, "unclosed string : "
|
|
|
|
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 952
|
|
:sswitch_0
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v1
|
|
|
|
.line 953
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v2
|
|
|
|
.line 955
|
|
sget-object v3, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
aget v1, v3, v1
|
|
|
|
mul-int/lit8 v1, v1, 0x10
|
|
|
|
sget-object v3, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
aget v2, v3, v2
|
|
|
|
add-int/2addr v1, v2
|
|
|
|
int-to-char v1, v1
|
|
|
|
.line 957
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_1
|
|
const/16 v1, 0xd
|
|
|
|
.line 937
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_2
|
|
const/16 v1, 0xa
|
|
|
|
.line 927
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_3
|
|
const/16 v1, 0x8
|
|
|
|
.line 921
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 949
|
|
:sswitch_4
|
|
invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_5
|
|
const/16 v1, 0xc
|
|
|
|
.line 934
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_6
|
|
const/16 v1, 0x27
|
|
|
|
.line 943
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 940
|
|
:sswitch_7
|
|
invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_0
|
|
const/16 v1, 0xb
|
|
|
|
.line 930
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 960
|
|
:pswitch_1
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v1
|
|
|
|
.line 961
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v2
|
|
|
|
.line 962
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v4
|
|
|
|
.line 963
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v9
|
|
|
|
.line 964
|
|
new-instance v10, Ljava/lang/String;
|
|
|
|
new-array v3, v3, [C
|
|
|
|
aput-char v1, v3, v0
|
|
|
|
aput-char v2, v3, v5
|
|
|
|
aput-char v4, v3, v6
|
|
|
|
aput-char v9, v3, v7
|
|
|
|
invoke-direct {v10, v3}, Ljava/lang/String;-><init>([C)V
|
|
|
|
invoke-static {v10, v8}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I
|
|
|
|
move-result v1
|
|
|
|
int-to-char v1, v1
|
|
|
|
.line 965
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_2
|
|
const/16 v1, 0x9
|
|
|
|
.line 924
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_3
|
|
const/4 v1, 0x7
|
|
|
|
.line 918
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_4
|
|
const/4 v1, 0x6
|
|
|
|
.line 915
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_5
|
|
const/4 v1, 0x5
|
|
|
|
.line 912
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 909
|
|
:pswitch_6
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 906
|
|
:pswitch_7
|
|
invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 903
|
|
:pswitch_8
|
|
invoke-virtual {p0, v6}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 900
|
|
:pswitch_9
|
|
invoke-virtual {p0, v5}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 897
|
|
:pswitch_a
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_b
|
|
const/16 v1, 0x2f
|
|
|
|
.line 946
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 974
|
|
:cond_6
|
|
iget-boolean v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->hasSpecial:Z
|
|
|
|
if-nez v2, :cond_7
|
|
|
|
.line 975
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v1, v5
|
|
|
|
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 979
|
|
:cond_7
|
|
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
array-length v3, v3
|
|
|
|
if-ne v2, v3, :cond_8
|
|
|
|
.line 980
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 982
|
|
:cond_8
|
|
iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/lit8 v4, v3, 0x1
|
|
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
aput-char v1, v2, v3
|
|
|
|
goto/16 :goto_0
|
|
|
|
nop
|
|
|
|
:pswitch_data_0
|
|
.packed-switch 0x2f
|
|
:pswitch_b
|
|
:pswitch_a
|
|
:pswitch_9
|
|
:pswitch_8
|
|
:pswitch_7
|
|
:pswitch_6
|
|
:pswitch_5
|
|
:pswitch_4
|
|
:pswitch_3
|
|
.end packed-switch
|
|
|
|
:pswitch_data_1
|
|
.packed-switch 0x74
|
|
:pswitch_2
|
|
:pswitch_1
|
|
:pswitch_0
|
|
.end packed-switch
|
|
|
|
:sswitch_data_0
|
|
.sparse-switch
|
|
0x22 -> :sswitch_7
|
|
0x27 -> :sswitch_6
|
|
0x46 -> :sswitch_5
|
|
0x5c -> :sswitch_4
|
|
0x62 -> :sswitch_3
|
|
0x66 -> :sswitch_5
|
|
0x6e -> :sswitch_2
|
|
0x72 -> :sswitch_1
|
|
0x78 -> :sswitch_0
|
|
.end sparse-switch
|
|
.end method
|
|
|
|
.method public scanStringArray(Ljava/lang/Class;C)Ljava/util/Collection;
|
|
.locals 12
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"(",
|
|
"Ljava/lang/Class<",
|
|
"*>;C)",
|
|
"Ljava/util/Collection<",
|
|
"Ljava/lang/String;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
|
|
.line 1596
|
|
invoke-static {p1}, Lcom/alibaba/fastjson/util/TypeUtils;->createCollection(Ljava/lang/reflect/Type;)Ljava/util/Collection;
|
|
|
|
move-result-object p1
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 1597
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1600
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v1, v0
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
const/16 v1, 0x75
|
|
|
|
const/16 v2, 0x6e
|
|
|
|
const/4 v3, 0x3
|
|
|
|
const/4 v4, 0x2
|
|
|
|
const/16 v5, 0x6c
|
|
|
|
const/4 v6, 0x0
|
|
|
|
const/4 v7, -0x1
|
|
|
|
if-ne v0, v2, :cond_2
|
|
|
|
.line 1603
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 p1, p1, 0x1
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
if-ne p1, v1, :cond_1
|
|
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 p1, p1, 0x1
|
|
|
|
add-int/lit8 p1, p1, 0x1
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
if-ne p1, v5, :cond_1
|
|
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 p1, p1, 0x1
|
|
|
|
add-int/2addr p1, v4
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
if-ne p1, v5, :cond_1
|
|
|
|
.line 1605
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 p1, p1, 0x4
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
if-ne p1, p2, :cond_0
|
|
|
|
.line 1612
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 p1, p1, 0x4
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1613
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 1614
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v6
|
|
|
|
.line 1617
|
|
:cond_0
|
|
iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v6
|
|
|
|
.line 1607
|
|
:cond_1
|
|
iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v6
|
|
|
|
:cond_2
|
|
const/16 v8, 0x5b
|
|
|
|
if-eq v0, v8, :cond_3
|
|
|
|
.line 1623
|
|
iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v6
|
|
|
|
.line 1627
|
|
:cond_3
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v0, v0, 0x1
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
const/4 v8, 0x2
|
|
|
|
:goto_0
|
|
if-ne v0, v2, :cond_4
|
|
|
|
.line 1630
|
|
iget v9, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v9, v8
|
|
|
|
.line 1631
|
|
invoke-virtual {p0, v9}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v9
|
|
|
|
if-ne v9, v1, :cond_4
|
|
|
|
iget v9, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v9, v8
|
|
|
|
add-int/lit8 v9, v9, 0x1
|
|
|
|
.line 1632
|
|
invoke-virtual {p0, v9}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v9
|
|
|
|
if-ne v9, v5, :cond_4
|
|
|
|
iget v9, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v9, v8
|
|
|
|
add-int/2addr v9, v4
|
|
|
|
.line 1633
|
|
invoke-virtual {p0, v9}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v9
|
|
|
|
if-ne v9, v5, :cond_4
|
|
|
|
add-int/lit8 v8, v8, 0x3
|
|
|
|
.line 1635
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v9, v8, 0x1
|
|
|
|
add-int/2addr v0, v8
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
goto :goto_2
|
|
|
|
:cond_4
|
|
const/16 v9, 0x22
|
|
|
|
if-eq v0, v9, :cond_5
|
|
|
|
.line 1637
|
|
iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v6
|
|
|
|
:cond_5
|
|
move v0, v8
|
|
|
|
.line 1645
|
|
:goto_1
|
|
iget v10, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v11, v0, 0x1
|
|
|
|
add-int/2addr v10, v0
|
|
|
|
invoke-virtual {p0, v10}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
if-ne v0, v9, :cond_9
|
|
|
|
.line 1647
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v0, v8
|
|
|
|
.line 1648
|
|
iget v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v8, v11
|
|
|
|
sub-int/2addr v8, v0
|
|
|
|
add-int/lit8 v8, v8, -0x1
|
|
|
|
.line 1649
|
|
invoke-virtual {p0, v0, v8}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->subString(II)Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
.line 1650
|
|
invoke-interface {p1, v0}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
|
|
|
|
.line 1652
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v9, v11, 0x1
|
|
|
|
add-int/2addr v0, v11
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
:goto_2
|
|
const/16 v8, 0x2c
|
|
|
|
if-ne v0, v8, :cond_6
|
|
|
|
.line 1664
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v8, v9, 0x1
|
|
|
|
add-int/2addr v0, v9
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
goto :goto_0
|
|
|
|
:cond_6
|
|
const/16 v1, 0x5d
|
|
|
|
if-ne v0, v1, :cond_8
|
|
|
|
.line 1669
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v1, v9, 0x1
|
|
|
|
add-int/2addr v0, v9
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
if-ne v0, p2, :cond_7
|
|
|
|
.line 1678
|
|
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v1, v1, -0x1
|
|
|
|
add-int/2addr p2, v1
|
|
|
|
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1679
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 1680
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object p1
|
|
|
|
.line 1683
|
|
:cond_7
|
|
iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object p1
|
|
|
|
.line 1673
|
|
:cond_8
|
|
iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v6
|
|
|
|
:cond_9
|
|
const/16 v10, 0x5c
|
|
|
|
if-ne v0, v10, :cond_a
|
|
|
|
.line 1657
|
|
iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v6
|
|
|
|
:cond_a
|
|
move v0, v11
|
|
|
|
goto :goto_1
|
|
.end method
|
|
|
|
.method public final scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
|
|
.locals 3
|
|
|
|
.line 582
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->skipWhitespace()V
|
|
|
|
.line 584
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x22
|
|
|
|
if-ne v0, v1, :cond_0
|
|
|
|
.line 585
|
|
invoke-virtual {p0, p1, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
|
|
.line 588
|
|
:cond_0
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x27
|
|
|
|
if-ne v0, v1, :cond_2
|
|
|
|
.line 589
|
|
sget-object v0, Lcom/alibaba/fastjson/parser/Feature;->AllowSingleQuotes:Lcom/alibaba/fastjson/parser/Feature;
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
.line 593
|
|
invoke-virtual {p0, p1, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
|
|
.line 590
|
|
:cond_1
|
|
new-instance p1, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v0, "syntax error"
|
|
|
|
invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p1
|
|
|
|
.line 596
|
|
:cond_2
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x7d
|
|
|
|
const/4 v2, 0x0
|
|
|
|
if-ne v0, v1, :cond_3
|
|
|
|
.line 597
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/16 p1, 0xd
|
|
|
|
.line 598
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-object v2
|
|
|
|
.line 602
|
|
:cond_3
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x2c
|
|
|
|
if-ne v0, v1, :cond_4
|
|
|
|
.line 603
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
const/16 p1, 0x10
|
|
|
|
.line 604
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-object v2
|
|
|
|
.line 608
|
|
:cond_4
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x1a
|
|
|
|
if-ne v0, v1, :cond_5
|
|
|
|
const/16 p1, 0x14
|
|
|
|
.line 609
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-object v2
|
|
|
|
.line 613
|
|
:cond_5
|
|
sget-object v0, Lcom/alibaba/fastjson/parser/Feature;->AllowUnQuotedFieldNames:Lcom/alibaba/fastjson/parser/Feature;
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_6
|
|
|
|
.line 617
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanSymbolUnQuoted(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
|
|
.line 614
|
|
:cond_6
|
|
new-instance p1, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v0, "syntax error"
|
|
|
|
invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p1
|
|
.end method
|
|
|
|
.method public final scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
|
|
.locals 12
|
|
|
|
.line 627
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 628
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
const/4 v1, 0x0
|
|
|
|
const/4 v2, 0x0
|
|
|
|
.line 632
|
|
:goto_0
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v3
|
|
|
|
const/4 v4, 0x4
|
|
|
|
const/4 v5, 0x1
|
|
|
|
if-ne v3, p2, :cond_2
|
|
|
|
.line 776
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
if-nez v1, :cond_1
|
|
|
|
.line 782
|
|
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
const/4 v1, -0x1
|
|
|
|
if-ne p2, v1, :cond_0
|
|
|
|
const/4 p2, 0x0
|
|
|
|
goto :goto_1
|
|
|
|
.line 785
|
|
:cond_0
|
|
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
add-int/2addr p2, v5
|
|
|
|
.line 787
|
|
:goto_1
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
invoke-virtual {p0, p2, v1, v2, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->addSymbol(IIILcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
goto :goto_2
|
|
|
|
.line 789
|
|
:cond_1
|
|
iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
invoke-virtual {p1, p2, v0, v1, v2}, Lcom/alibaba/fastjson/parser/SymbolTable;->addSymbol([CIII)Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
.line 792
|
|
:goto_2
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
.line 793
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
return-object p1
|
|
|
|
:cond_2
|
|
const/16 v6, 0x1a
|
|
|
|
if-eq v3, v6, :cond_9
|
|
|
|
const/16 v6, 0x5c
|
|
|
|
if-ne v3, v6, :cond_6
|
|
|
|
const/4 v3, 0x2
|
|
|
|
if-nez v1, :cond_5
|
|
|
|
.line 646
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
iget-object v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
array-length v7, v7
|
|
|
|
if-lt v1, v7, :cond_4
|
|
|
|
.line 647
|
|
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
array-length v1, v1
|
|
|
|
mul-int/lit8 v1, v1, 0x2
|
|
|
|
.line 648
|
|
iget v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
if-le v7, v1, :cond_3
|
|
|
|
.line 649
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
.line 651
|
|
:cond_3
|
|
new-array v1, v1, [C
|
|
|
|
.line 652
|
|
iget-object v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
iget-object v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
array-length v8, v8
|
|
|
|
invoke-static {v7, v0, v1, v0, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
|
|
|
|
.line 653
|
|
iput-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
.line 658
|
|
:cond_4
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
add-int/2addr v1, v5
|
|
|
|
iget-object v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
iget v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
invoke-virtual {p0, v1, v7, v0, v8}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->arrayCopy(I[CII)V
|
|
|
|
const/4 v1, 0x1
|
|
|
|
.line 661
|
|
:cond_5
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v7
|
|
|
|
const/4 v8, 0x3
|
|
|
|
packed-switch v7, :pswitch_data_0
|
|
|
|
packed-switch v7, :pswitch_data_1
|
|
|
|
sparse-switch v7, :sswitch_data_0
|
|
|
|
.line 756
|
|
iput-char v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
.line 757
|
|
new-instance p1, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string p2, "unclosed.str.lit"
|
|
|
|
invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p1
|
|
|
|
.line 738
|
|
:sswitch_0
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v3
|
|
|
|
iput-char v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
.line 739
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v4
|
|
|
|
iput-char v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
.line 741
|
|
sget-object v5, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
aget v3, v5, v3
|
|
|
|
mul-int/lit8 v3, v3, 0x10
|
|
|
|
sget-object v5, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
|
|
|
|
aget v4, v5, v4
|
|
|
|
add-int/2addr v3, v4
|
|
|
|
int-to-char v3, v3
|
|
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
add-int/2addr v2, v3
|
|
|
|
.line 744
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_1
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
const/16 v3, 0xd
|
|
|
|
add-int/2addr v2, v3
|
|
|
|
.line 719
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_2
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
const/16 v3, 0xa
|
|
|
|
add-int/2addr v2, v3
|
|
|
|
.line 706
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_3
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
const/16 v3, 0x8
|
|
|
|
add-int/2addr v2, v3
|
|
|
|
.line 698
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_4
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
add-int/2addr v2, v6
|
|
|
|
.line 735
|
|
invoke-virtual {p0, v6}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_5
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
const/16 v3, 0xc
|
|
|
|
add-int/2addr v2, v3
|
|
|
|
.line 715
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_6
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
const/16 v3, 0x27
|
|
|
|
add-int/2addr v2, v3
|
|
|
|
.line 727
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:sswitch_7
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
const/16 v3, 0x22
|
|
|
|
add-int/2addr v2, v3
|
|
|
|
.line 723
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_0
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
add-int/lit8 v2, v2, 0xb
|
|
|
|
const/16 v3, 0xb
|
|
|
|
.line 710
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 747
|
|
:pswitch_1
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v6
|
|
|
|
.line 748
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v7
|
|
|
|
.line 749
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v9
|
|
|
|
.line 750
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v10
|
|
|
|
.line 751
|
|
new-instance v11, Ljava/lang/String;
|
|
|
|
new-array v4, v4, [C
|
|
|
|
aput-char v6, v4, v0
|
|
|
|
aput-char v7, v4, v5
|
|
|
|
aput-char v9, v4, v3
|
|
|
|
aput-char v10, v4, v8
|
|
|
|
invoke-direct {v11, v4}, Ljava/lang/String;-><init>([C)V
|
|
|
|
const/16 v3, 0x10
|
|
|
|
invoke-static {v11, v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I
|
|
|
|
move-result v3
|
|
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
add-int/2addr v2, v3
|
|
|
|
int-to-char v3, v3
|
|
|
|
.line 753
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_2
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
const/16 v3, 0x9
|
|
|
|
add-int/2addr v2, v3
|
|
|
|
.line 702
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_3
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
add-int/2addr v2, v7
|
|
|
|
const/4 v3, 0x7
|
|
|
|
.line 694
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_4
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
add-int/2addr v2, v7
|
|
|
|
const/4 v3, 0x6
|
|
|
|
.line 690
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_5
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
add-int/2addr v2, v7
|
|
|
|
const/4 v3, 0x5
|
|
|
|
.line 686
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_6
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
add-int/2addr v2, v7
|
|
|
|
.line 682
|
|
invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_7
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
add-int/2addr v2, v7
|
|
|
|
.line 678
|
|
invoke-virtual {p0, v8}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_8
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
add-int/2addr v2, v7
|
|
|
|
.line 674
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_9
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
add-int/2addr v2, v7
|
|
|
|
.line 670
|
|
invoke-virtual {p0, v5}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_a
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
add-int/2addr v2, v7
|
|
|
|
.line 666
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:pswitch_b
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
const/16 v3, 0x2f
|
|
|
|
add-int/2addr v2, v3
|
|
|
|
.line 731
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_6
|
|
mul-int/lit8 v2, v2, 0x1f
|
|
|
|
add-int/2addr v2, v3
|
|
|
|
if-nez v1, :cond_7
|
|
|
|
.line 765
|
|
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v3, v5
|
|
|
|
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 769
|
|
:cond_7
|
|
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
iget-object v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
array-length v5, v5
|
|
|
|
if-ne v4, v5, :cond_8
|
|
|
|
.line 770
|
|
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 772
|
|
:cond_8
|
|
iget-object v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
|
|
|
|
iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/lit8 v6, v5, 0x1
|
|
|
|
iput v6, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
aput-char v3, v4, v5
|
|
|
|
goto/16 :goto_0
|
|
|
|
.line 639
|
|
:cond_9
|
|
new-instance p1, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string p2, "unclosed.str"
|
|
|
|
invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p1
|
|
|
|
:pswitch_data_0
|
|
.packed-switch 0x2f
|
|
:pswitch_b
|
|
:pswitch_a
|
|
:pswitch_9
|
|
:pswitch_8
|
|
:pswitch_7
|
|
:pswitch_6
|
|
:pswitch_5
|
|
:pswitch_4
|
|
:pswitch_3
|
|
.end packed-switch
|
|
|
|
:pswitch_data_1
|
|
.packed-switch 0x74
|
|
:pswitch_2
|
|
:pswitch_1
|
|
:pswitch_0
|
|
.end packed-switch
|
|
|
|
:sswitch_data_0
|
|
.sparse-switch
|
|
0x22 -> :sswitch_7
|
|
0x27 -> :sswitch_6
|
|
0x46 -> :sswitch_5
|
|
0x5c -> :sswitch_4
|
|
0x62 -> :sswitch_3
|
|
0x66 -> :sswitch_5
|
|
0x6e -> :sswitch_2
|
|
0x72 -> :sswitch_1
|
|
0x78 -> :sswitch_0
|
|
.end sparse-switch
|
|
.end method
|
|
|
|
.method public final scanSymbolUnQuoted(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
|
|
.locals 5
|
|
|
|
.line 807
|
|
sget-object v0, Lcom/alibaba/fastjson/util/IOUtils;->firstIdentifierFlags:[Z
|
|
|
|
.line 808
|
|
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
.line 810
|
|
iget-char v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
array-length v3, v0
|
|
|
|
const/4 v4, 0x1
|
|
|
|
if-ge v2, v3, :cond_1
|
|
|
|
aget-boolean v0, v0, v1
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 v0, 0x0
|
|
|
|
goto :goto_1
|
|
|
|
:cond_1
|
|
:goto_0
|
|
const/4 v0, 0x1
|
|
|
|
:goto_1
|
|
if-eqz v0, :cond_4
|
|
|
|
.line 816
|
|
sget-object v0, Lcom/alibaba/fastjson/util/IOUtils;->identifierFlags:[Z
|
|
|
|
.line 820
|
|
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
.line 821
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
.line 824
|
|
:goto_2
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
move-result v2
|
|
|
|
.line 826
|
|
array-length v3, v0
|
|
|
|
if-ge v2, v3, :cond_3
|
|
|
|
.line 827
|
|
aget-boolean v3, v0, v2
|
|
|
|
if-nez v3, :cond_3
|
|
|
|
.line 838
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v0, 0x12
|
|
|
|
.line 839
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
.line 842
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
const/4 v2, 0x4
|
|
|
|
if-ne v0, v2, :cond_2
|
|
|
|
const v0, 0x33c587
|
|
|
|
if-ne v1, v0, :cond_2
|
|
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
const/16 v2, 0x6e
|
|
|
|
if-ne v0, v2, :cond_2
|
|
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
add-int/2addr v0, v4
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
const/16 v2, 0x75
|
|
|
|
if-ne v0, v2, :cond_2
|
|
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
add-int/lit8 v0, v0, 0x2
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
const/16 v2, 0x6c
|
|
|
|
if-ne v0, v2, :cond_2
|
|
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
add-int/lit8 v0, v0, 0x3
|
|
|
|
.line 843
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
if-ne v0, v2, :cond_2
|
|
|
|
const/4 p1, 0x0
|
|
|
|
return-object p1
|
|
|
|
.line 849
|
|
:cond_2
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
|
|
|
|
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
invoke-virtual {p0, v0, v2, v1, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->addSymbol(IIILcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
return-object p1
|
|
|
|
:cond_3
|
|
mul-int/lit8 v1, v1, 0x1f
|
|
|
|
add-int/2addr v1, v2
|
|
|
|
.line 834
|
|
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
add-int/2addr v2, v4
|
|
|
|
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
|
|
|
|
goto :goto_2
|
|
|
|
.line 812
|
|
:cond_4
|
|
new-instance p1, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v1, "illegal identifier : "
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
|
|
|
|
.line 813
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->info()Ljava/lang/String;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p1
|
|
.end method
|
|
|
|
.method public scanSymbolWithSeperator(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
|
|
.locals 10
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 1416
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1419
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v1, v0
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
const/4 v2, 0x3
|
|
|
|
const/4 v3, 0x0
|
|
|
|
const/4 v4, -0x1
|
|
|
|
const/4 v5, 0x1
|
|
|
|
const/16 v6, 0x6e
|
|
|
|
if-ne v1, v6, :cond_2
|
|
|
|
.line 1422
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr p1, v5
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
const/16 v0, 0x75
|
|
|
|
if-ne p1, v0, :cond_1
|
|
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr p1, v5
|
|
|
|
add-int/2addr p1, v5
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
const/16 v0, 0x6c
|
|
|
|
if-ne p1, v0, :cond_1
|
|
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr p1, v5
|
|
|
|
add-int/lit8 p1, p1, 0x2
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
if-ne p1, v0, :cond_1
|
|
|
|
.line 1424
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 p1, p1, 0x4
|
|
|
|
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
if-ne p1, p2, :cond_0
|
|
|
|
.line 1431
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 p1, p1, 0x4
|
|
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1432
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 1433
|
|
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v3
|
|
|
|
.line 1436
|
|
:cond_0
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v3
|
|
|
|
.line 1426
|
|
:cond_1
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v3
|
|
|
|
:cond_2
|
|
const/16 v6, 0x22
|
|
|
|
if-eq v1, v6, :cond_3
|
|
|
|
.line 1442
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v3
|
|
|
|
:cond_3
|
|
const/4 v1, 0x1
|
|
|
|
const/4 v7, 0x0
|
|
|
|
.line 1450
|
|
:goto_0
|
|
iget v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v9, v1, 0x1
|
|
|
|
add-int/2addr v8, v1
|
|
|
|
invoke-virtual {p0, v8}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v1
|
|
|
|
if-ne v1, v6, :cond_5
|
|
|
|
.line 1454
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v1, v0
|
|
|
|
add-int/2addr v1, v5
|
|
|
|
.line 1455
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/2addr v0, v9
|
|
|
|
sub-int/2addr v0, v1
|
|
|
|
sub-int/2addr v0, v5
|
|
|
|
.line 1456
|
|
invoke-virtual {p0, v1, v0, v7, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->addSymbol(IIILcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
.line 1457
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
add-int/lit8 v1, v9, 0x1
|
|
|
|
add-int/2addr v0, v9
|
|
|
|
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v0
|
|
|
|
if-ne v0, p2, :cond_4
|
|
|
|
.line 1470
|
|
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
sub-int/2addr v1, v5
|
|
|
|
add-int/2addr p2, v1
|
|
|
|
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1471
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 1472
|
|
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object p1
|
|
|
|
.line 1475
|
|
:cond_4
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object p1
|
|
|
|
:cond_5
|
|
mul-int/lit8 v7, v7, 0x1f
|
|
|
|
add-int/2addr v7, v1
|
|
|
|
const/16 v8, 0x5c
|
|
|
|
if-ne v1, v8, :cond_6
|
|
|
|
.line 1464
|
|
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return-object v3
|
|
|
|
:cond_6
|
|
move v1, v9
|
|
|
|
goto :goto_0
|
|
.end method
|
|
|
|
.method public final scanTreeSet()V
|
|
.locals 3
|
|
|
|
.line 2393
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x54
|
|
|
|
if-ne v0, v1, :cond_8
|
|
|
|
.line 2396
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2398
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x72
|
|
|
|
if-ne v0, v1, :cond_7
|
|
|
|
.line 2401
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2403
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x65
|
|
|
|
if-ne v0, v1, :cond_6
|
|
|
|
.line 2406
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2408
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v1, :cond_5
|
|
|
|
.line 2411
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2413
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v2, 0x53
|
|
|
|
if-ne v0, v2, :cond_4
|
|
|
|
.line 2416
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2418
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v1, :cond_3
|
|
|
|
.line 2421
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2423
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x74
|
|
|
|
if-ne v0, v1, :cond_2
|
|
|
|
.line 2426
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2428
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x20
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xa
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xd
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x9
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xc
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x8
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x5b
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x28
|
|
|
|
if-ne v0, v1, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 2431
|
|
:cond_0
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "scan treeSet error"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
:cond_1
|
|
:goto_0
|
|
const/16 v0, 0x16
|
|
|
|
.line 2429
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-void
|
|
|
|
.line 2424
|
|
:cond_2
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse treeSet"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2419
|
|
:cond_3
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse treeSet"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2414
|
|
:cond_4
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse treeSet"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2409
|
|
:cond_5
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse treeSet"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2404
|
|
:cond_6
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse treeSet"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2399
|
|
:cond_7
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse treeSet"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2394
|
|
:cond_8
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse treeSet"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
.end method
|
|
|
|
.method public final scanTrue()V
|
|
.locals 2
|
|
|
|
.line 2364
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x74
|
|
|
|
if-ne v0, v1, :cond_5
|
|
|
|
.line 2367
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2369
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x72
|
|
|
|
if-ne v0, v1, :cond_4
|
|
|
|
.line 2372
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2374
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x75
|
|
|
|
if-ne v0, v1, :cond_3
|
|
|
|
.line 2377
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2379
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x65
|
|
|
|
if-ne v0, v1, :cond_2
|
|
|
|
.line 2382
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2384
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x20
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x2c
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x7d
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x5d
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xa
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xd
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x9
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x1a
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xc
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x8
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x3a
|
|
|
|
if-ne v0, v1, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 2388
|
|
:cond_0
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "scan true error"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
:cond_1
|
|
:goto_0
|
|
const/4 v0, 0x6
|
|
|
|
.line 2386
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-void
|
|
|
|
.line 2380
|
|
:cond_2
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse true"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2375
|
|
:cond_3
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse true"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2370
|
|
:cond_4
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse true"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2365
|
|
:cond_5
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse true"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
.end method
|
|
|
|
.method public final scanType(Ljava/lang/String;)I
|
|
.locals 6
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 1090
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
.line 1092
|
|
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexerBase;->typeFieldName:[C
|
|
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charArrayCompare([C)Z
|
|
|
|
move-result v1
|
|
|
|
if-nez v1, :cond_0
|
|
|
|
const/4 p1, -0x2
|
|
|
|
return p1
|
|
|
|
.line 1096
|
|
:cond_0
|
|
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
sget-object v2, Lcom/alibaba/fastjson/parser/JSONLexerBase;->typeFieldName:[C
|
|
|
|
array-length v2, v2
|
|
|
|
add-int/2addr v1, v2
|
|
|
|
.line 1098
|
|
invoke-virtual {p1}, Ljava/lang/String;->length()I
|
|
|
|
move-result v2
|
|
|
|
:goto_0
|
|
const/4 v3, -0x1
|
|
|
|
if-ge v0, v2, :cond_2
|
|
|
|
.line 1100
|
|
invoke-virtual {p1, v0}, Ljava/lang/String;->charAt(I)C
|
|
|
|
move-result v4
|
|
|
|
add-int v5, v1, v0
|
|
|
|
invoke-virtual {p0, v5}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result v5
|
|
|
|
if-eq v4, v5, :cond_1
|
|
|
|
return v3
|
|
|
|
:cond_1
|
|
add-int/lit8 v0, v0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_2
|
|
add-int/2addr v1, v2
|
|
|
|
.line 1105
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
const/16 v0, 0x22
|
|
|
|
if-eq p1, v0, :cond_3
|
|
|
|
return v3
|
|
|
|
:cond_3
|
|
add-int/lit8 v1, v1, 0x1
|
|
|
|
.line 1109
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
.line 1111
|
|
iget-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v0, 0x10
|
|
|
|
const/16 v2, 0x2c
|
|
|
|
if-ne p1, v2, :cond_4
|
|
|
|
add-int/lit8 v1, v1, 0x1
|
|
|
|
.line 1112
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
.line 1113
|
|
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1114
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
const/4 p1, 0x3
|
|
|
|
return p1
|
|
|
|
.line 1116
|
|
:cond_4
|
|
iget-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v4, 0x7d
|
|
|
|
if-ne p1, v4, :cond_9
|
|
|
|
add-int/lit8 v1, v1, 0x1
|
|
|
|
.line 1117
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
.line 1118
|
|
iget-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne p1, v2, :cond_5
|
|
|
|
.line 1119
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
add-int/lit8 v1, v1, 0x1
|
|
|
|
.line 1120
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
goto :goto_1
|
|
|
|
.line 1121
|
|
:cond_5
|
|
iget-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v0, 0x5d
|
|
|
|
if-ne p1, v0, :cond_6
|
|
|
|
const/16 p1, 0xf
|
|
|
|
.line 1122
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
add-int/lit8 v1, v1, 0x1
|
|
|
|
.line 1123
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
goto :goto_1
|
|
|
|
.line 1124
|
|
:cond_6
|
|
iget-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne p1, v4, :cond_7
|
|
|
|
const/16 p1, 0xd
|
|
|
|
.line 1125
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
add-int/lit8 v1, v1, 0x1
|
|
|
|
.line 1126
|
|
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
|
|
|
|
move-result p1
|
|
|
|
iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
goto :goto_1
|
|
|
|
.line 1127
|
|
:cond_7
|
|
iget-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v0, 0x1a
|
|
|
|
if-ne p1, v0, :cond_8
|
|
|
|
const/16 p1, 0x14
|
|
|
|
.line 1128
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
:goto_1
|
|
const/4 p1, 0x4
|
|
|
|
.line 1132
|
|
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
goto :goto_2
|
|
|
|
:cond_8
|
|
return v3
|
|
|
|
.line 1135
|
|
:cond_9
|
|
:goto_2
|
|
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
|
|
|
|
.line 1136
|
|
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
|
|
|
|
return p1
|
|
.end method
|
|
|
|
.method public final scanUndefined()V
|
|
.locals 5
|
|
|
|
.line 2510
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x75
|
|
|
|
if-ne v0, v1, :cond_a
|
|
|
|
.line 2513
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2515
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x6e
|
|
|
|
if-ne v0, v1, :cond_9
|
|
|
|
.line 2518
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2520
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v2, 0x64
|
|
|
|
if-ne v0, v2, :cond_8
|
|
|
|
.line 2523
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2525
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v3, 0x65
|
|
|
|
if-ne v0, v3, :cond_7
|
|
|
|
.line 2528
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2530
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v4, 0x66
|
|
|
|
if-ne v0, v4, :cond_6
|
|
|
|
.line 2533
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2535
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v4, 0x69
|
|
|
|
if-ne v0, v4, :cond_5
|
|
|
|
.line 2538
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2540
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v1, :cond_4
|
|
|
|
.line 2543
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2545
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v3, :cond_3
|
|
|
|
.line 2548
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2549
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v2, :cond_2
|
|
|
|
.line 2552
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 2554
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x20
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x2c
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x7d
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x5d
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xa
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xd
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x9
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x1a
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xc
|
|
|
|
if-eq v0, v1, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x8
|
|
|
|
if-ne v0, v1, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 2558
|
|
:cond_0
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "scan undefined error"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
:cond_1
|
|
:goto_0
|
|
const/16 v0, 0x17
|
|
|
|
.line 2556
|
|
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return-void
|
|
|
|
.line 2550
|
|
:cond_2
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse undefined"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2546
|
|
:cond_3
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse undefined"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2541
|
|
:cond_4
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse undefined"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2536
|
|
:cond_5
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse undefined"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2531
|
|
:cond_6
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse undefined"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2526
|
|
:cond_7
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse undefined"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2521
|
|
:cond_8
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse undefined"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2516
|
|
:cond_9
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse undefined"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
.line 2511
|
|
:cond_a
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "error parse undefined"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
.end method
|
|
|
|
.method public setLocale(Ljava/util/Locale;)V
|
|
.locals 0
|
|
|
|
.line 1007
|
|
iput-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->locale:Ljava/util/Locale;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public setTimeZone(Ljava/util/TimeZone;)V
|
|
.locals 0
|
|
|
|
.line 999
|
|
iput-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->timeZone:Ljava/util/TimeZone;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method protected skipComment()V
|
|
.locals 3
|
|
|
|
.line 556
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 557
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x2f
|
|
|
|
if-ne v0, v1, :cond_1
|
|
|
|
.line 559
|
|
:cond_0
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 560
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0xa
|
|
|
|
if-ne v0, v1, :cond_0
|
|
|
|
.line 561
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
return-void
|
|
|
|
.line 565
|
|
:cond_1
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v2, 0x2a
|
|
|
|
if-ne v0, v2, :cond_3
|
|
|
|
.line 567
|
|
:cond_2
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 568
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v2, :cond_2
|
|
|
|
.line 569
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
.line 570
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v1, :cond_2
|
|
|
|
.line 571
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
return-void
|
|
|
|
.line 577
|
|
:cond_3
|
|
new-instance v0, Lcom/alibaba/fastjson/JSONException;
|
|
|
|
const-string v1, "invalid comment"
|
|
|
|
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
.end method
|
|
|
|
.method public final skipWhitespace()V
|
|
.locals 3
|
|
|
|
.line 2650
|
|
:goto_0
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v1, 0x2f
|
|
|
|
if-gt v0, v1, :cond_2
|
|
|
|
.line 2651
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v2, 0x20
|
|
|
|
if-eq v0, v2, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v2, 0xd
|
|
|
|
if-eq v0, v2, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v2, 0xa
|
|
|
|
if-eq v0, v2, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v2, 0x9
|
|
|
|
if-eq v0, v2, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v2, 0xc
|
|
|
|
if-eq v0, v2, :cond_1
|
|
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
const/16 v2, 0x8
|
|
|
|
if-ne v0, v2, :cond_0
|
|
|
|
goto :goto_1
|
|
|
|
.line 2654
|
|
:cond_0
|
|
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
|
|
|
|
if-ne v0, v1, :cond_2
|
|
|
|
.line 2655
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->skipComment()V
|
|
|
|
goto :goto_0
|
|
|
|
.line 2652
|
|
:cond_1
|
|
:goto_1
|
|
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
|
|
|
|
goto :goto_0
|
|
|
|
:cond_2
|
|
return-void
|
|
.end method
|
|
|
|
.method public final stringDefaultValue()Ljava/lang/String;
|
|
.locals 1
|
|
|
|
.line 415
|
|
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->stringDefaultValue:Ljava/lang/String;
|
|
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public abstract stringVal()Ljava/lang/String;
|
|
.end method
|
|
|
|
.method public abstract subString(II)Ljava/lang/String;
|
|
.end method
|
|
|
|
.method public final token()I
|
|
.locals 1
|
|
|
|
.line 399
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method public final tokenName()Ljava/lang/String;
|
|
.locals 1
|
|
|
|
.line 403
|
|
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
|
|
|
|
invoke-static {v0}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
return-object v0
|
|
.end method
|