JSONLexerBase.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 private static final DEFAULT_KEYWORDS:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/Integer;",
">;"
}
.end annotation
.end field
.field protected static final INT_MULTMIN_RADIX_TEN:I = -0xccccccc
.field protected static final INT_N_MULTMAX_RADIX_TEN:I = -0xccccccc
.field protected static final MULTMIN_RADIX_TEN:J = -0xcccccccccccccccL
.field protected static final N_MULTMAX_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
.field protected static whitespaceFlags:[Z
# 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 keywods:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/Integer;",
">;"
}
.end annotation
.end field
.field public matchStat:I
.field protected np:I
.field protected pos:I
.field protected sbuf:[C
.field protected sp:I
.field protected token:I
# direct methods
.method static constructor <clinit>()V
.registers 6
.line 50
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
.line 51
.local v0, "map":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;"
const/16 v1, 0x8
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
const-string v3, "null"
invoke-interface {v0, v3, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 52
const/16 v2, 0x9
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
const-string v4, "new"
invoke-interface {v0, v4, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 53
const/4 v3, 0x6
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
const-string/jumbo v4, "true"
invoke-interface {v0, v4, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 54
const/4 v3, 0x7
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
const-string v4, "false"
invoke-interface {v0, v4, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 55
const/16 v3, 0x17
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
const-string/jumbo v4, "undefined"
invoke-interface {v0, v4, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 56
sput-object v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->DEFAULT_KEYWORDS:Ljava/util/Map;
.line 89
.end local v0 # "map":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;"
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 1000
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "\""
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object v3, Lcom/alibaba/fastjson/JSON;->DEFAULT_TYPE_KEY:Ljava/lang/String;
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, "\":\""
invoke-virtual {v0, v3}, 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
.line 1815
const/16 v0, 0x100
new-array v0, v0, [Z
sput-object v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->whitespaceFlags:[Z
.line 1817
const/4 v3, 0x1
const/16 v4, 0x20
aput-boolean v3, v0, v4
.line 1818
const/16 v4, 0xa
aput-boolean v3, v0, v4
.line 1819
const/16 v5, 0xd
aput-boolean v3, v0, v5
.line 1820
aput-boolean v3, v0, v2
.line 1821
const/16 v2, 0xc
aput-boolean v3, v0, v2
.line 1822
aput-boolean v3, v0, v1
.line 1831
const/16 v0, 0x67
new-array v0, v0, [I
sput-object v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
.line 1834
const/16 v0, 0x30
.local v0, "i":I
:goto_86
const/16 v1, 0x39
if-gt v0, v1, :cond_93
.line 1835
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
add-int/lit8 v2, v0, -0x30
aput v2, v1, v0
.line 1834
add-int/lit8 v0, v0, 0x1
goto :goto_86
.line 1838
.end local v0 # "i":I
:cond_93
const/16 v0, 0x61
.restart local v0 # "i":I
:goto_95
const/16 v1, 0x66
if-gt v0, v1, :cond_a3
.line 1839
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
add-int/lit8 v2, v0, -0x61
add-int/2addr v2, v4
aput v2, v1, v0
.line 1838
add-int/lit8 v0, v0, 0x1
goto :goto_95
.line 1841
.end local v0 # "i":I
:cond_a3
const/16 v0, 0x41
.restart local v0 # "i":I
:goto_a5
const/16 v1, 0x46
if-gt v0, v1, :cond_b3
.line 1842
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
add-int/lit8 v2, v0, -0x41
add-int/2addr v2, v4
aput v2, v1, v0
.line 1841
add-int/lit8 v0, v0, 0x1
goto :goto_a5
.line 1844
.end local v0 # "i":I
:cond_b3
return-void
.end method
.method public constructor <init>()V
.registers 4
.line 92
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 65
sget v0, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->features:I
.line 85
const/4 v0, 0x0
iput-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->calendar:Ljava/util/Calendar;
.line 87
const/4 v1, 0x0
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 90
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexerBase;->DEFAULT_KEYWORDS:Ljava/util/Map;
iput-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->keywods:Ljava/util/Map;
.line 93
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexerBase;->SBUF_REF_LOCAL:Ljava/lang/ThreadLocal;
invoke-virtual {v1}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/ref/SoftReference;
.line 95
.local v1, "sbufRef":Ljava/lang/ref/SoftReference;, "Ljava/lang/ref/SoftReference<[C>;"
if-eqz v1, :cond_28
.line 96
invoke-virtual {v1}, Ljava/lang/ref/SoftReference;->get()Ljava/lang/Object;
move-result-object v2
check-cast v2, [C
iput-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
.line 97
sget-object v2, Lcom/alibaba/fastjson/parser/JSONLexerBase;->SBUF_REF_LOCAL:Ljava/lang/ThreadLocal;
invoke-virtual {v2, v0}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V
.line 100
:cond_28
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
if-nez v0, :cond_32
.line 101
const/16 v0, 0x40
new-array v0, v0, [C
iput-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
.line 103
:cond_32
return-void
.end method
.method public static final isWhitespace(C)Z
.registers 2
.param p0, "ch" # C
.line 1812
const/16 v0, 0x20
if-eq p0, v0, :cond_1b
const/16 v0, 0xa
if-eq p0, v0, :cond_1b
const/16 v0, 0xd
if-eq p0, v0, :cond_1b
const/16 v0, 0x9
if-eq p0, v0, :cond_1b
const/16 v0, 0xc
if-eq p0, v0, :cond_1b
const/16 v0, 0x8
if-ne p0, v0, :cond_19
goto :goto_1b
:cond_19
const/4 v0, 0x0
goto :goto_1c
:cond_1b
:goto_1b
const/4 v0, 0x1
:goto_1c
return v0
.end method
.method private final scanStringSingleQuote()V
.registers 12
.line 1492
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
.line 1493
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->hasSpecial:Z
.line 1496
:goto_7
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v1
.line 1498
const/4 v2, 0x4
const/16 v3, 0x27
if-ne v1, v3, :cond_17
.line 1499
nop
.line 1614
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 1615
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1616
return-void
.line 1502
:cond_17
const/16 v4, 0x1a
const-string/jumbo v5, "unclosed single-quote string"
if-eq v1, v4, :cond_135
.line 1506
const/16 v4, 0x5c
const/4 v6, 0x1
if-ne v1, v4, :cond_116
.line 1507
iget-boolean v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->hasSpecial:Z
if-nez v1, :cond_44
.line 1508
iput-boolean v6, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->hasSpecial:Z
.line 1510
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
iget-object v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
array-length v8, v7
if-le v1, v8, :cond_3a
.line 1511
mul-int/lit8 v1, v1, 0x2
new-array v1, v1, [C
.line 1512
array-length v8, v7
invoke-static {v7, v0, v1, v0, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1513
iput-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
.line 1517
:cond_3a
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
add-int/2addr v1, v6
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 1521
:cond_44
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v1
.line 1523
const/16 v7, 0x22
if-eq v1, v7, :cond_110
if-eq v1, v3, :cond_10c
const/16 v3, 0x46
if-eq v1, v3, :cond_106
if-eq v1, v4, :cond_102
const/16 v3, 0x62
if-eq v1, v3, :cond_fc
const/16 v3, 0x66
if-eq v1, v3, :cond_106
const/16 v3, 0x6e
if-eq v1, v3, :cond_f6
const/16 v3, 0x72
if-eq v1, v3, :cond_f0
const/16 v3, 0x78
const/16 v4, 0x10
if-eq v1, v3, :cond_da
const/4 v3, 0x3
const/4 v7, 0x2
packed-switch v1, :pswitch_data_13e
packed-switch v1, :pswitch_data_154
.line 1596
iput-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
.line 1597
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v5}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1558
:pswitch_7a
const/16 v1, 0xb
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 1559
goto/16 :goto_114
.line 1588
:pswitch_81
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v1
.line 1589
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v5
.line 1590
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v8
.line 1591
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v9
.line 1592
new-instance v10, Ljava/lang/String;
new-array v2, v2, [C
aput-char v1, v2, v0
aput-char v5, v2, v6
aput-char v8, v2, v7
aput-char v9, v2, v3
invoke-direct {v10, v2}, Ljava/lang/String;-><init>([C)V
invoke-static {v10, v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I
move-result v1
.line 1593
int-to-char v1, v1
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 1594
goto/16 :goto_114
.line 1552
:pswitch_aa
const/16 v1, 0x9
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 1553
goto/16 :goto_114
.line 1546
:pswitch_b1
const/4 v1, 0x7
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 1547
goto :goto_114
.line 1543
:pswitch_b6
const/4 v1, 0x6
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 1544
goto :goto_114
.line 1540
:pswitch_bb
const/4 v1, 0x5
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 1541
goto :goto_114
.line 1537
:pswitch_c0
invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 1538
goto :goto_114
.line 1534
:pswitch_c4
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 1535
goto :goto_114
.line 1531
:pswitch_c8
invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 1532
goto :goto_114
.line 1528
:pswitch_cc
invoke-virtual {p0, v6}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 1529
goto :goto_114
.line 1525
:pswitch_d0
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 1526
goto :goto_114
.line 1574
:pswitch_d4
const/16 v1, 0x2f
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 1575
goto :goto_114
.line 1580
:cond_da
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v1
.line 1581
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v2
.line 1583
sget-object v3, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
aget v1, v3, v1
mul-int/lit8 v1, v1, 0x10
aget v2, v3, v2
add-int/2addr v1, v2
.line 1584
int-to-char v1, v1
.line 1585
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 1586
goto :goto_114
.line 1565
:cond_f0
const/16 v1, 0xd
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 1566
goto :goto_114
.line 1555
:cond_f6
const/16 v1, 0xa
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 1556
goto :goto_114
.line 1549
:cond_fc
const/16 v1, 0x8
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 1550
goto :goto_114
.line 1577
:cond_102
invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 1578
goto :goto_114
.line 1562
:cond_106
const/16 v1, 0xc
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 1563
goto :goto_114
.line 1571
:cond_10c
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 1572
goto :goto_114
.line 1568
:cond_110
invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 1569
nop
.line 1599
:goto_114
goto/16 :goto_7
.line 1602
:cond_116
iget-boolean v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->hasSpecial:Z
if-nez v2, :cond_121
.line 1603
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
add-int/2addr v1, v6
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 1604
goto/16 :goto_7
.line 1607
:cond_121
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
array-length v4, v3
if-ne v2, v4, :cond_12d
.line 1608
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
goto/16 :goto_7
.line 1610
:cond_12d
add-int/lit8 v4, v2, 0x1
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
aput-char v1, v3, v2
goto/16 :goto_7
.line 1503
:cond_135
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v5}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
goto :goto_13c
:goto_13b
throw v0
:goto_13c
goto :goto_13b
nop
:pswitch_data_13e
.packed-switch 0x2f
:pswitch_d4
:pswitch_d0
:pswitch_cc
:pswitch_c8
:pswitch_c4
:pswitch_c0
:pswitch_bb
:pswitch_b6
:pswitch_b1
.end packed-switch
:pswitch_data_154
.packed-switch 0x74
:pswitch_aa
:pswitch_81
:pswitch_7a
.end packed-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 public abstract charAt(I)C
.end method
.method public close()V
.registers 4
.line 986
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
array-length v0, v0
const/16 v1, 0x2000
if-gt v0, v1, :cond_13
.line 987
sget-object v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->SBUF_REF_LOCAL:Ljava/lang/ThreadLocal;
new-instance v1, Ljava/lang/ref/SoftReference;
iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
invoke-direct {v1, v2}, Ljava/lang/ref/SoftReference;-><init>(Ljava/lang/Object;)V
invoke-virtual {v0, v1}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V
.line 989
:cond_13
const/4 v0, 0x0
iput-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
.line 990
return-void
.end method
.method public config(Lcom/alibaba/fastjson/parser/Feature;Z)V
.registers 4
.param p1, "feature" # Lcom/alibaba/fastjson/parser/Feature;
.param p2, "state" # Z
.line 505
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 v0
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->features:I
.line 506
return-void
.end method
.method protected abstract copyTo(II[C)V
.end method
.method public final decimalValue(Z)Ljava/lang/Number;
.registers 5
.param p1, "decimal" # Z
.line 1788
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
.line 1789
.local v0, "chLocal":C
const/16 v1, 0x46
if-ne v0, v1, :cond_1c
.line 1790
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F
move-result v1
invoke-static {v1}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object v1
return-object v1
.line 1794
:cond_1c
const/16 v1, 0x44
if-ne v0, v1, :cond_2d
.line 1795
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide v1
invoke-static {v1, v2}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v1
return-object v1
.line 1799
:cond_2d
if-eqz p1, :cond_34
.line 1800
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->decimalValue()Ljava/math/BigDecimal;
move-result-object v1
return-object v1
.line 1802
:cond_34
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->doubleValue()D
move-result-wide v1
invoke-static {v1, v2}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v1
return-object v1
.end method
.method public final decimalValue()Ljava/math/BigDecimal;
.registers 3
.line 1807
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
.registers 3
.line 501
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
.registers 2
.line 497
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
.registers 2
.line 393
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
return v0
.end method
.method public getCalendar()Ljava/util/Calendar;
.registers 2
.line 925
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->calendar:Ljava/util/Calendar;
return-object v0
.end method
.method public final getCurrent()C
.registers 2
.line 517
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
return v0
.end method
.method public getKeyword(Ljava/lang/String;)Ljava/lang/Integer;
.registers 3
.param p1, "key" # Ljava/lang/String;
.line 1847
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->keywods:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
return-object v0
.end method
.method public abstract indexOf(CI)I
.end method
.method public final intValue()I
.registers 11
.line 929
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
const/4 v1, -0x1
if-ne v0, v1, :cond_8
.line 930
const/4 v0, 0x0
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
.line 933
:cond_8
const/4 v0, 0x0
.line 934
.local v0, "result":I
const/4 v1, 0x0
.line 935
.local v1, "negative":Z
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
.local v2, "i":I
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
add-int/2addr v4, v3
.line 940
.local v4, "max":I
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v3
const/16 v5, 0x2d
if-ne v3, v5, :cond_1f
.line 941
const/4 v1, 0x1
.line 942
const/high16 v3, -0x80000000
.line 943
.local v3, "limit":I
add-int/lit8 v2, v2, 0x1
goto :goto_22
.line 945
.end local v3 # "limit":I
:cond_1f
const v3, -0x7fffffff
.line 947
.restart local v3 # "limit":I
:goto_22
const v5, -0xccccccc
.line 948
.local v5, "multmin":I
if-ge v2, v4, :cond_33
.line 949
sget-object v6, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
add-int/lit8 v7, v2, 0x1
.end local v2 # "i":I
.local v7, "i":I
invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v2
aget v2, v6, v2
.line 950
.local v2, "digit":I
neg-int v0, v2
move v2, v7
.line 952
.end local v7 # "i":I
.local v2, "i":I
:cond_33
:goto_33
if-ge v2, v4, :cond_6c
.line 954
add-int/lit8 v6, v2, 0x1
.end local v2 # "i":I
.local v6, "i":I
invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v2
.line 956
.local v2, "chLocal":C
const/16 v7, 0x4c
if-eq v2, v7, :cond_6b
const/16 v7, 0x53
if-eq v2, v7, :cond_6b
const/16 v7, 0x42
if-ne v2, v7, :cond_48
.line 957
goto :goto_6b
.line 960
:cond_48
sget-object v7, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
aget v7, v7, v2
.line 962
.local v7, "digit":I
if-lt v0, v5, :cond_61
.line 965
mul-int/lit8 v0, v0, 0xa
.line 966
add-int v8, v3, v7
if-lt v0, v8, :cond_57
.line 969
sub-int/2addr v0, v7
.line 970
.end local v2 # "chLocal":C
move v2, v6
goto :goto_33
.line 967
.restart local v2 # "chLocal":C
:cond_57
new-instance v8, Ljava/lang/NumberFormatException;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
move-result-object v9
invoke-direct {v8, v9}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
throw v8
.line 963
:cond_61
new-instance v8, Ljava/lang/NumberFormatException;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
move-result-object v9
invoke-direct {v8, v9}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
throw v8
.line 972
.end local v2 # "chLocal":C
.end local v7 # "digit":I
:cond_6b
:goto_6b
move v2, v6
.end local v6 # "i":I
.local v2, "i":I
:cond_6c
if-eqz v1, :cond_7f
.line 973
iget v6, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
add-int/lit8 v6, v6, 0x1
if-le v2, v6, :cond_75
.line 974
return v0
.line 976
:cond_75
new-instance v6, Ljava/lang/NumberFormatException;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
move-result-object v7
invoke-direct {v6, v7}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
throw v6
.line 979
:cond_7f
neg-int v6, v0
return v6
.end method
.method public final integerValue()Ljava/lang/Number;
.registers 19
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/NumberFormatException;
}
.end annotation
.line 404
move-object/from16 v0, p0
const-wide/16 v1, 0x0
.line 405
.local v1, "result":J
const/4 v3, 0x0
.line 406
.local v3, "negative":Z
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
const/4 v5, -0x1
if-ne v4, v5, :cond_d
.line 407
const/4 v4, 0x0
iput v4, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
.line 409
:cond_d
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
.local v4, "i":I
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
add-int/2addr v5, v6
.line 414
.local v5, "max":I
const/16 v6, 0x20
.line 416
.local v6, "type":C
add-int/lit8 v7, v5, -0x1
invoke-virtual {v0, v7}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v7
const/16 v8, 0x53
const/16 v9, 0x4c
const/16 v10, 0x42
if-eq v7, v10, :cond_33
if-eq v7, v9, :cond_2e
if-eq v7, v8, :cond_29
goto :goto_38
.line 422
:cond_29
add-int/lit8 v5, v5, -0x1
.line 423
const/16 v6, 0x53
.line 424
goto :goto_38
.line 418
:cond_2e
add-int/lit8 v5, v5, -0x1
.line 419
const/16 v6, 0x4c
.line 420
goto :goto_38
.line 426
:cond_33
add-int/lit8 v5, v5, -0x1
.line 427
const/16 v6, 0x42
.line 428
nop
.line 433
:goto_38
iget v7, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
invoke-virtual {v0, v7}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v7
const/16 v11, 0x2d
if-ne v7, v11, :cond_48
.line 434
const/4 v3, 0x1
.line 435
const-wide/high16 v11, -0x8000000000000000L
.line 436
.local v11, "limit":J
add-int/lit8 v4, v4, 0x1
goto :goto_4d
.line 438
.end local v11 # "limit":J
:cond_48
const-wide v11, -0x7fffffffffffffffL # -4.9E-324
.line 440
.restart local v11 # "limit":J
:goto_4d
const-wide v13, -0xcccccccccccccccL
.line 441
.local v13, "multmin":J
if-ge v4, v5, :cond_61
.line 442
sget-object v7, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
add-int/lit8 v15, v4, 0x1
.end local v4 # "i":I
.local v15, "i":I
invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v4
aget v4, v7, v4
.line 443
.local v4, "digit":I
neg-int v7, v4
int-to-long v1, v7
move v4, v15
.line 445
.end local v15 # "i":I
.local v4, "i":I
:cond_61
:goto_61
if-ge v4, v5, :cond_97
.line 447
sget-object v7, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
add-int/lit8 v15, v4, 0x1
.end local v4 # "i":I
.restart local v15 # "i":I
invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v4
aget v4, v7, v4
.line 448
.local v4, "digit":I
cmp-long v7, v1, v13
if-gez v7, :cond_7b
.line 449
new-instance v7, Ljava/math/BigInteger;
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
move-result-object v8
invoke-direct {v7, v8}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;)V
return-object v7
.line 451
:cond_7b
const-wide/16 v16, 0xa
mul-long v1, v1, v16
.line 452
int-to-long v8, v4
add-long/2addr v8, v11
cmp-long v17, v1, v8
if-gez v17, :cond_8f
.line 453
new-instance v7, Ljava/math/BigInteger;
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
move-result-object v8
invoke-direct {v7, v8}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;)V
return-object v7
.line 455
:cond_8f
int-to-long v8, v4
sub-long/2addr v1, v8
move v4, v15
const/16 v8, 0x53
const/16 v9, 0x4c
goto :goto_61
.line 458
.end local v15 # "i":I
.local v4, "i":I
:cond_97
if-eqz v3, :cond_d3
.line 459
iget v8, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
add-int/lit8 v8, v8, 0x1
if-le v4, v8, :cond_c9
.line 460
const-wide/32 v8, -0x80000000
cmp-long v15, v1, v8
if-ltz v15, :cond_c4
const/16 v8, 0x4c
if-eq v6, v8, :cond_c4
.line 461
const/16 v7, 0x53
if-ne v6, v7, :cond_b5
.line 462
long-to-int v7, v1
int-to-short v7, v7
invoke-static {v7}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short;
move-result-object v7
return-object v7
.line 465
:cond_b5
if-ne v6, v10, :cond_be
.line 466
long-to-int v7, v1
int-to-byte v7, v7
invoke-static {v7}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
move-result-object v7
return-object v7
.line 469
:cond_be
long-to-int v7, v1
invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v7
return-object v7
.line 471
:cond_c4
invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v7
return-object v7
.line 473
:cond_c9
new-instance v7, Ljava/lang/NumberFormatException;
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
move-result-object v8
invoke-direct {v7, v8}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
throw v7
.line 476
:cond_d3
neg-long v1, v1
.line 477
const-wide/32 v8, 0x7fffffff
cmp-long v15, v1, v8
if-gtz v15, :cond_f9
const/16 v8, 0x4c
if-eq v6, v8, :cond_f9
.line 478
const/16 v7, 0x53
if-ne v6, v7, :cond_ea
.line 479
long-to-int v7, v1
int-to-short v7, v7
invoke-static {v7}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short;
move-result-object v7
return-object v7
.line 482
:cond_ea
if-ne v6, v10, :cond_f3
.line 483
long-to-int v7, v1
int-to-byte v7, v7
invoke-static {v7}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
move-result-object v7
return-object v7
.line 486
:cond_f3
long-to-int v7, v1
invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v7
return-object v7
.line 488
:cond_f9
invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v7
return-object v7
.end method
.method public final isBlankInput()Z
.registers 4
.line 1466
const/4 v0, 0x0
.line 1467
.local v0, "i":I
:goto_1
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v1
.line 1468
.local v1, "chLocal":C
const/16 v2, 0x1a
if-ne v1, v2, :cond_c
.line 1469
nop
.line 1477
.end local v0 # "i":I
.end local v1 # "chLocal":C
const/4 v0, 0x1
return v0
.line 1472
.restart local v0 # "i":I
.restart local v1 # "chLocal":C
:cond_c
invoke-static {v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->isWhitespace(C)Z
move-result v2
if-nez v2, :cond_14
.line 1473
const/4 v2, 0x0
return v2
.line 1466
.end local v1 # "chLocal":C
:cond_14
add-int/lit8 v0, v0, 0x1
goto :goto_1
.end method
.method public abstract isEOF()Z
.end method
.method public final isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
.registers 3
.param p1, "feature" # Lcom/alibaba/fastjson/parser/Feature;
.line 509
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->features:I
invoke-static {v0, p1}, Lcom/alibaba/fastjson/parser/Feature;->isEnabled(ILcom/alibaba/fastjson/parser/Feature;)Z
move-result v0
return v0
.end method
.method public final isRef()Z
.registers 6
.line 993
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
const/4 v1, 0x0
const/4 v2, 0x4
if-eq v0, v2, :cond_7
.line 994
return v1
.line 997
:cond_7
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_37
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_37
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_37
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_37
const/4 v1, 0x1
:cond_37
return v1
.end method
.method protected varargs lexError(Ljava/lang/String;[Ljava/lang/Object;)V
.registers 4
.param p1, "key" # Ljava/lang/String;
.param p2, "args" # [Ljava/lang/Object;
.line 60
const/4 v0, 0x1
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 61
return-void
.end method
.method public final longValue()J
.registers 15
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/NumberFormatException;
}
.end annotation
.line 1738
const-wide/16 v0, 0x0
.line 1739
.local v0, "result":J
const/4 v2, 0x0
.line 1740
.local v2, "negative":Z
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
.local v3, "i":I
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
add-int/2addr v5, v4
.line 1745
.local v5, "max":I
invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v4
const/16 v6, 0x2d
if-ne v4, v6, :cond_18
.line 1746
const/4 v2, 0x1
.line 1747
const-wide/high16 v6, -0x8000000000000000L
.line 1748
.local v6, "limit":J
add-int/lit8 v3, v3, 0x1
goto :goto_1d
.line 1750
.end local v6 # "limit":J
:cond_18
const-wide v6, -0x7fffffffffffffffL # -4.9E-324
.line 1752
.restart local v6 # "limit":J
:goto_1d
const-wide v8, -0xcccccccccccccccL
.line 1753
.local v8, "multmin":J
if-ge v3, v5, :cond_31
.line 1754
sget-object v4, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
add-int/lit8 v10, v3, 0x1
.end local v3 # "i":I
.local v10, "i":I
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v3
aget v3, v4, v3
.line 1755
.local v3, "digit":I
neg-int v4, v3
int-to-long v0, v4
move v3, v10
.line 1757
.end local v10 # "i":I
.local v3, "i":I
:cond_31
:goto_31
if-ge v3, v5, :cond_71
.line 1759
add-int/lit8 v4, v3, 0x1
.end local v3 # "i":I
.local v4, "i":I
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v3
.line 1761
.local v3, "chLocal":C
const/16 v10, 0x4c
if-eq v3, v10, :cond_70
const/16 v10, 0x53
if-eq v3, v10, :cond_70
const/16 v10, 0x42
if-ne v3, v10, :cond_46
.line 1762
goto :goto_70
.line 1765
:cond_46
sget-object v10, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
aget v10, v10, v3
.line 1766
.local v10, "digit":I
cmp-long v11, v0, v8
if-ltz v11, :cond_66
.line 1769
const-wide/16 v11, 0xa
mul-long v0, v0, v11
.line 1770
int-to-long v11, v10
add-long/2addr v11, v6
cmp-long v13, v0, v11
if-ltz v13, :cond_5c
.line 1773
int-to-long v11, v10
sub-long/2addr v0, v11
.line 1774
.end local v3 # "chLocal":C
move v3, v4
goto :goto_31
.line 1771
.restart local v3 # "chLocal":C
:cond_5c
new-instance v11, Ljava/lang/NumberFormatException;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
move-result-object v12
invoke-direct {v11, v12}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
throw v11
.line 1767
:cond_66
new-instance v11, Ljava/lang/NumberFormatException;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
move-result-object v12
invoke-direct {v11, v12}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
throw v11
.line 1776
.end local v3 # "chLocal":C
.end local v10 # "digit":I
:cond_70
:goto_70
move v3, v4
.end local v4 # "i":I
.local v3, "i":I
:cond_71
if-eqz v2, :cond_84
.line 1777
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
add-int/lit8 v4, v4, 0x1
if-le v3, v4, :cond_7a
.line 1778
return-wide v0
.line 1780
:cond_7a
new-instance v4, Ljava/lang/NumberFormatException;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->numberString()Ljava/lang/String;
move-result-object v10
invoke-direct {v4, v10}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
throw v4
.line 1783
:cond_84
neg-long v10, v0
return-wide v10
.end method
.method public abstract next()C
.end method
.method public final nextIdent()V
.registers 3
.line 347
: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_c
.line 348
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
goto :goto_0
.line 350
:cond_c
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v1, 0x5f
if-eq v0, v1, :cond_1d
invoke-static {v0}, Ljava/lang/Character;->isLetter(C)Z
move-result v0
if-eqz v0, :cond_19
goto :goto_1d
.line 353
:cond_19
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->nextToken()V
goto :goto_20
.line 351
:cond_1d
:goto_1d
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanIdent()V
.line 355
:goto_20
return-void
.end method
.method public final nextToken()V
.registers 6
.line 106
const/4 v0, 0x0
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 109
:goto_3
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->pos:I
.line 111
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v2, 0x22
if-ne v1, v2, :cond_11
.line 112
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanString()V
.line 113
return-void
.line 116
:cond_11
const/16 v2, 0x2c
if-ne v1, v2, :cond_1d
.line 117
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 118
const/16 v0, 0x10
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 119
return-void
.line 122
:cond_1d
const/16 v2, 0x30
if-lt v1, v2, :cond_29
const/16 v2, 0x39
if-gt v1, v2, :cond_29
.line 123
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanNumber()V
.line 124
return-void
.line 127
:cond_29
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v2, 0x2d
if-ne v1, v2, :cond_33
.line 128
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanNumber()V
.line 129
return-void
.line 132
:cond_33
const/16 v2, 0xc
if-eq v1, v2, :cond_102
const/16 v3, 0xd
if-eq v1, v3, :cond_102
const/16 v4, 0x20
if-eq v1, v4, :cond_102
const/16 v4, 0x3a
if-eq v1, v4, :cond_fa
const/16 v4, 0x5b
if-eq v1, v4, :cond_f2
const/16 v4, 0x5d
if-eq v1, v4, :cond_ea
const/16 v4, 0x66
if-eq v1, v4, :cond_e6
const/16 v4, 0x6e
if-eq v1, v4, :cond_e2
const/16 v4, 0x7b
if-eq v1, v4, :cond_dc
const/16 v2, 0x7d
if-eq v1, v2, :cond_d6
const/16 v2, 0x53
if-eq v1, v2, :cond_d2
const/16 v2, 0x54
if-eq v1, v2, :cond_ce
const/16 v2, 0x74
if-eq v1, v2, :cond_ca
const/16 v2, 0x75
if-eq v1, v2, :cond_c6
packed-switch v1, :pswitch_data_108
packed-switch v1, :pswitch_data_112
.line 194
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->isEOF()Z
move-result v1
if-eqz v1, :cond_8e
.line 195
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
const/16 v1, 0x14
if-eq v0, v1, :cond_86
.line 199
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 200
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 :goto_a1
.line 196
:cond_86
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 202
:cond_8e
const/4 v1, 0x1
new-array v1, v1, [Ljava/lang/Object;
iget-char v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
invoke-static {v2}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v2
aput-object v2, v1, v0
const-string v0, "illegal.char"
invoke-virtual {p0, v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->lexError(Ljava/lang/String;[Ljava/lang/Object;)V
.line 203
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 206
:goto_a1
return-void
.line 170
:pswitch_a2
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 171
const/16 v0, 0xb
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 172
return-void
.line 166
:pswitch_aa
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 167
const/16 v0, 0xa
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 168
return-void
.line 134
:pswitch_b2
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_be
.line 137
invoke-direct {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanStringSingleQuote()V
.line 138
return-void
.line 135
:cond_be
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 163
:cond_c6
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanUndefined()V
.line 164
return-void
.line 148
:cond_ca
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanTrue()V
.line 149
return-void
.line 151
:cond_ce
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanTreeSet()V
.line 152
return-void
.line 154
:cond_d2
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanSet()V
.line 155
return-void
.line 186
:cond_d6
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 187
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 188
return-void
.line 182
:cond_dc
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 183
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 184
return-void
.line 160
:cond_e2
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanNullOrNew()V
.line 161
return-void
.line 157
:cond_e6
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanFalse()V
.line 158
return-void
.line 178
:cond_ea
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 179
const/16 v0, 0xf
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 180
return-void
.line 174
:cond_f2
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 175
const/16 v0, 0xe
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 176
return-void
.line 190
:cond_fa
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 191
const/16 v0, 0x11
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 192
return-void
.line 145
:cond_102
:pswitch_102
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 146
goto/16 :goto_3
nop
:pswitch_data_108
.packed-switch 0x8
:pswitch_102
:pswitch_102
:pswitch_102
.end packed-switch
:pswitch_data_112
.packed-switch 0x27
:pswitch_b2
:pswitch_aa
:pswitch_a2
.end packed-switch
.end method
.method public final nextToken(I)V
.registers 11
.param p1, "expect" # I
.line 213
const/4 v0, 0x0
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 216
:goto_3
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_b6
const/4 v0, 0x4
if-eq p1, v0, :cond_8c
if-eq p1, v8, :cond_7a
const/16 v0, 0x12
if-eq p1, v0, :cond_76
const/16 v0, 0x1a
const/16 v2, 0x14
if-eq p1, v2, :cond_6f
const/16 v3, 0xf
const/16 v4, 0x5d
packed-switch p1, :pswitch_data_102
goto/16 :goto_e0
.line 230
:pswitch_2e
iget-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v6, 0x2c
if-ne v5, v6, :cond_3c
.line 231
const/16 v0, 0x10
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 232
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 233
return-void
.line 236
:cond_3c
const/16 v6, 0x7d
if-ne v5, v6, :cond_46
.line 237
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 238
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 239
return-void
.line 242
:cond_46
if-ne v5, v4, :cond_4e
.line 243
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 244
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 245
return-void
.line 248
:cond_4e
if-ne v5, v0, :cond_e0
.line 249
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 250
return-void
.line 318
:pswitch_53
iget-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
if-ne v5, v4, :cond_6f
.line 319
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 320
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 321
return-void
.line 305
:pswitch_5d
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
if-ne v0, v6, :cond_67
.line 306
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 307
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 308
return-void
.line 311
:cond_67
if-ne v0, v7, :cond_e0
.line 312
iput v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 313
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 314
return-void
.line 324
:cond_6f
iget-char v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
if-ne v3, v0, :cond_e0
.line 325
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 326
return-void
.line 330
:cond_76
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->nextIdent()V
.line 331
return-void
.line 218
:cond_7a
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
if-ne v0, v7, :cond_84
.line 219
iput v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 220
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 221
return-void
.line 223
:cond_84
if-ne v0, v6, :cond_e0
.line 224
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 225
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 226
return-void
.line 280
:cond_8c
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
if-ne v0, v3, :cond_98
.line 281
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->pos:I
.line 282
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanString()V
.line 283
return-void
.line 286
:cond_98
if-lt v0, v4, :cond_a4
if-gt v0, v2, :cond_a4
.line 287
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->pos:I
.line 288
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanNumber()V
.line 289
return-void
.line 292
:cond_a4
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
if-ne v0, v6, :cond_ae
.line 293
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 294
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 295
return-void
.line 298
:cond_ae
if-ne v0, v7, :cond_e0
.line 299
iput v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 300
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 301
return-void
.line 254
:cond_b6
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
if-lt v0, v4, :cond_c4
if-gt v0, v2, :cond_c4
.line 255
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->pos:I
.line 256
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanNumber()V
.line 257
return-void
.line 260
:cond_c4
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
if-ne v0, v3, :cond_d0
.line 261
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->pos:I
.line 262
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanString()V
.line 263
return-void
.line 266
:cond_d0
if-ne v0, v6, :cond_d8
.line 267
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 268
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 269
return-void
.line 272
:cond_d8
if-ne v0, v7, :cond_e0
.line 273
iput v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 274
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 275
return-void
.line 336
:cond_e0
:goto_e0
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v2, 0x20
if-eq v0, v2, :cond_fc
const/16 v2, 0xa
if-eq v0, v2, :cond_fc
if-eq v0, v1, :cond_fc
const/16 v1, 0x9
if-eq v0, v1, :cond_fc
if-eq v0, v8, :cond_fc
const/16 v1, 0x8
if-ne v0, v1, :cond_f7
goto :goto_fc
.line 341
:cond_f7
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->nextToken()V
.line 342
nop
.line 344
return-void
.line 337
:cond_fc
:goto_fc
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 338
goto/16 :goto_3
nop
:pswitch_data_102
.packed-switch 0xe
:pswitch_5d
:pswitch_53
:pswitch_2e
.end packed-switch
.end method
.method public final nextTokenWithChar(C)V
.registers 5
.param p1, "expect" # C
.line 362
const/4 v0, 0x0
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 365
:goto_3
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
if-ne v0, p1, :cond_e
.line 366
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 367
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->nextToken()V
.line 368
return-void
.line 371
:cond_e
const/16 v1, 0x20
if-eq v0, v1, :cond_48
const/16 v1, 0xa
if-eq v0, v1, :cond_48
const/16 v1, 0xd
if-eq v0, v1, :cond_48
const/16 v1, 0x9
if-eq v0, v1, :cond_48
const/16 v1, 0xc
if-eq v0, v1, :cond_48
const/16 v1, 0x8
if-ne v0, v1, :cond_27
goto :goto_48
.line 376
:cond_27
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 v2, " - "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-char v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v1}, 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 372
:cond_48
:goto_48
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 373
goto :goto_3
.end method
.method public final nextTokenWithColon()V
.registers 2
.line 358
const/16 v0, 0x3a
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->nextTokenWithChar(C)V
.line 359
return-void
.end method
.method public final nextTokenWithColon(I)V
.registers 3
.param p1, "expect" # I
.line 493
const/16 v0, 0x3a
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->nextTokenWithChar(C)V
.line 494
return-void
.end method
.method public abstract numberString()Ljava/lang/String;
.end method
.method public final pos()I
.registers 2
.line 389
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->pos:I
return v0
.end method
.method protected final putChar(C)V
.registers 6
.param p1, "ch" # C
.line 1645
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
array-length v2, v1
if-ne v0, v2, :cond_13
.line 1646
array-length v0, v1
mul-int/lit8 v0, v0, 0x2
new-array v0, v0, [C
.line 1647
.local v0, "newsbuf":[C
array-length v2, v1
const/4 v3, 0x0
invoke-static {v1, v3, v0, v3, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1648
iput-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
.line 1650
.end local v0 # "newsbuf":[C
:cond_13
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
.line 1651
return-void
.end method
.method public final resetStringPosition()V
.registers 2
.line 742
const/4 v0, 0x0
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 743
return-void
.end method
.method public scanEnum(Ljava/lang/Class;Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/Enum;
.registers 6
.param p2, "symbolTable" # Lcom/alibaba/fastjson/parser/SymbolTable;
.param p3, "serperator" # C
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;",
"Lcom/alibaba/fastjson/parser/SymbolTable;",
"C)",
"Ljava/lang/Enum<",
"*>;"
}
.end annotation
.line 1079
.local p1, "enumClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
invoke-virtual {p0, p2, p3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanSymbolWithSeperator(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
move-result-object v0
.line 1080
.local v0, "name":Ljava/lang/String;
if-nez v0, :cond_8
.line 1081
const/4 v1, 0x0
return-object v1
.line 1083
:cond_8
invoke-static {p1, v0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
move-result-object v1
return-object v1
.end method
.method public final scanFalse()V
.registers 4
.line 1404
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const-string v1, "error parse false"
const/16 v2, 0x66
if-ne v0, v2, :cond_82
.line 1407
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1409
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v2, 0x61
if-ne v0, v2, :cond_7c
.line 1412
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1414
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v2, 0x6c
if-ne v0, v2, :cond_76
.line 1417
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1419
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v2, 0x73
if-ne v0, v2, :cond_70
.line 1422
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1424
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v2, 0x65
if-ne v0, v2, :cond_6a
.line 1427
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1429
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v1, 0x20
if-eq v0, v1, :cond_66
const/16 v1, 0x2c
if-eq v0, v1, :cond_66
const/16 v1, 0x7d
if-eq v0, v1, :cond_66
const/16 v1, 0x5d
if-eq v0, v1, :cond_66
const/16 v1, 0xa
if-eq v0, v1, :cond_66
const/16 v1, 0xd
if-eq v0, v1, :cond_66
const/16 v1, 0x9
if-eq v0, v1, :cond_66
const/16 v1, 0x1a
if-eq v0, v1, :cond_66
const/16 v1, 0xc
if-eq v0, v1, :cond_66
const/16 v1, 0x8
if-eq v0, v1, :cond_66
const/16 v1, 0x3a
if-ne v0, v1, :cond_5e
goto :goto_66
.line 1433
:cond_5e
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
.line 1431
:cond_66
:goto_66
const/4 v0, 0x7
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 1435
return-void
.line 1425
:cond_6a
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1420
:cond_70
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1415
:cond_76
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1410
:cond_7c
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1405
:cond_82
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public final scanIdent()V
.registers 4
.line 1438
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
.line 1439
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->hasSpecial:Z
.line 1442
:goto_9
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 1444
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1445
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_1b
.line 1446
goto :goto_9
.line 1449
:cond_1b
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->stringVal()Ljava/lang/String;
move-result-object v0
.line 1451
.local v0, "ident":Ljava/lang/String;
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->getKeyword(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object v1
.line 1452
.local v1, "tok":Ljava/lang/Integer;
if-eqz v1, :cond_2c
.line 1453
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v2
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
goto :goto_30
.line 1455
:cond_2c
const/16 v2, 0x12
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 1457
:goto_30
return-void
.end method
.method public scanInt(C)I
.registers 11
.param p1, "expectNext" # C
.line 1152
const/4 v0, 0x0
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1154
const/4 v1, 0x0
.line 1155
.local v1, "offset":I
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v3, v1, 0x1
.end local v1 # "offset":I
.local v3, "offset":I
add-int/2addr v2, v1
invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v1
.line 1158
.local v1, "chLocal":C
const/16 v2, 0x30
const/4 v4, -0x1
if-lt v1, v2, :cond_54
const/16 v5, 0x39
if-gt v1, v5, :cond_54
.line 1159
sget-object v6, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
aget v6, v6, v1
.line 1161
.local v6, "value":I
:goto_1a
iget v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v8, v3, 0x1
.end local v3 # "offset":I
.local v8, "offset":I
add-int/2addr v7, v3
invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v1
.line 1162
if-lt v1, v2, :cond_31
if-gt v1, v5, :cond_31
.line 1163
mul-int/lit8 v3, v6, 0xa
sget-object v7, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
aget v7, v7, v1
add-int v6, v3, v7
move v3, v8
goto :goto_1a
.line 1164
:cond_31
const/16 v2, 0x2e
if-ne v1, v2, :cond_38
.line 1165
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1166
return v0
.line 1171
:cond_38
if-gez v6, :cond_3d
.line 1172
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1173
return v0
.line 1180
:cond_3d
if-ne v1, p1, :cond_51
.line 1181
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v2, v8, -0x1
add-int/2addr v0, v2
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
.line 1182
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1183
const/4 v0, 0x3
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1184
const/16 v0, 0x10
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 1185
return v6
.line 1187
:cond_51
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1188
return v6
.line 1176
.end local v6 # "value":I
.end local v8 # "offset":I
.restart local v3 # "offset":I
:cond_54
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1177
return v0
.end method
.method public scanLong(C)J
.registers 18
.param p1, "expectNextChar" # C
.line 1193
move-object/from16 v0, p0
const/4 v1, 0x0
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1195
const/4 v1, 0x0
.line 1196
.local v1, "offset":I
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v3, v1, 0x1
.end local v1 # "offset":I
.local v3, "offset":I
add-int/2addr v2, v1
invoke-virtual {v0, v2}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v1
.line 1199
.local v1, "chLocal":C
const/16 v2, 0x30
const-wide/16 v4, 0x0
const/4 v6, -0x1
if-lt v1, v2, :cond_60
const/16 v7, 0x39
if-gt v1, v7, :cond_60
.line 1200
sget-object v8, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
aget v8, v8, v1
int-to-long v8, v8
.line 1202
.local v8, "value":J
:goto_1f
iget v10, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v11, v3, 0x1
.end local v3 # "offset":I
.local v11, "offset":I
add-int/2addr v10, v3
invoke-virtual {v0, v10}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v1
.line 1203
if-lt v1, v2, :cond_39
if-gt v1, v7, :cond_39
.line 1204
const-wide/16 v12, 0xa
mul-long v12, v12, v8
sget-object v3, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
aget v3, v3, v1
int-to-long v14, v3
add-long v8, v12, v14
move v3, v11
goto :goto_1f
.line 1205
:cond_39
const/16 v2, 0x2e
if-ne v1, v2, :cond_40
.line 1206
iput v6, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1207
return-wide v4
.line 1212
:cond_40
cmp-long v2, v8, v4
if-gez v2, :cond_47
.line 1213
iput v6, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1214
return-wide v4
.line 1221
:cond_47
move/from16 v2, p1
if-ne v1, v2, :cond_5d
.line 1222
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v4, v11, -0x1
add-int/2addr v3, v4
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
.line 1223
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1224
const/4 v3, 0x3
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1225
const/16 v3, 0x10
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 1226
return-wide v8
.line 1228
:cond_5d
iput v6, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1229
return-wide v8
.line 1199
.end local v8 # "value":J
.end local v11 # "offset":I
.restart local v3 # "offset":I
:cond_60
move/from16 v2, p1
.line 1217
iput v6, v0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1218
return-wide v4
.end method
.method public final scanNullOrNew()V
.registers 15
.line 1306
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v1, 0x6e
if-ne v0, v1, :cond_a6
.line 1309
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1311
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v1, 0x75
const-string v2, "scan true error"
const/16 v3, 0xc
const/16 v4, 0x1a
const/16 v5, 0xd
const/16 v6, 0xa
const/16 v7, 0x5d
const/16 v8, 0x7d
const/16 v9, 0x2c
const/16 v10, 0x20
const/16 v11, 0x8
const/16 v12, 0x9
if-ne v0, v1, :cond_66
.line 1312
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1313
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const-string v1, "error parse true"
const/16 v13, 0x6c
if-ne v0, v13, :cond_60
.line 1316
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1318
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
if-ne v0, v13, :cond_5a
.line 1321
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1323
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
if-eq v0, v10, :cond_57
if-eq v0, v9, :cond_57
if-eq v0, v8, :cond_57
if-eq v0, v7, :cond_57
if-eq v0, v6, :cond_57
if-eq v0, v5, :cond_57
if-eq v0, v12, :cond_57
if-eq v0, v4, :cond_57
if-eq v0, v3, :cond_57
if-ne v0, v11, :cond_51
goto :goto_57
.line 1327
:cond_51
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1325
:cond_57
:goto_57
iput v11, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 1329
return-void
.line 1319
:cond_5a
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1314
:cond_60
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1332
:cond_66
const/16 v1, 0x65
if-ne v0, v1, :cond_9e
.line 1335
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1337
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v1, 0x77
if-ne v0, v1, :cond_96
.line 1340
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1342
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
if-eq v0, v10, :cond_93
if-eq v0, v9, :cond_93
if-eq v0, v8, :cond_93
if-eq v0, v7, :cond_93
if-eq v0, v6, :cond_93
if-eq v0, v5, :cond_93
if-eq v0, v12, :cond_93
if-eq v0, v4, :cond_93
if-eq v0, v3, :cond_93
if-ne v0, v11, :cond_8d
goto :goto_93
.line 1346
:cond_8d
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1344
:cond_93
:goto_93
iput v12, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 1348
return-void
.line 1338
:cond_96
new-instance v0, Lcom/alibaba/fastjson/JSONException;
const-string v1, "error parse w"
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1333
:cond_9e
new-instance v0, Lcom/alibaba/fastjson/JSONException;
const-string v1, "error parse e"
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1307
:cond_a6
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
.registers 9
.line 1654
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
.line 1656
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v1, 0x2d
if-ne v0, v1, :cond_13
.line 1657
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 1658
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1662
:cond_13
:goto_13
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v2, 0x39
const/16 v3, 0x30
if-lt v0, v3, :cond_27
if-gt v0, v2, :cond_27
.line 1663
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 1667
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
goto :goto_13
.line 1670
:cond_27
const/4 v0, 0x0
.line 1672
.local v0, "isDouble":Z
iget-char v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v5, 0x2e
if-ne v4, v5, :cond_48
.line 1673
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
add-int/lit8 v4, v4, 0x1
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 1674
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1675
const/4 v0, 0x1
.line 1678
:goto_38
iget-char v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
if-lt v4, v3, :cond_48
if-gt v4, v2, :cond_48
.line 1679
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
add-int/lit8 v4, v4, 0x1
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 1683
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
goto :goto_38
.line 1687
:cond_48
iget-char v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v5, 0x4c
if-ne v4, v5, :cond_59
.line 1688
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
add-int/lit8 v1, v1, 0x1
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 1689
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
goto/16 :goto_d6
.line 1690
:cond_59
const/16 v5, 0x53
if-ne v4, v5, :cond_68
.line 1691
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
add-int/lit8 v1, v1, 0x1
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 1692
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
goto/16 :goto_d6
.line 1693
:cond_68
const/16 v5, 0x42
if-ne v4, v5, :cond_76
.line 1694
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
add-int/lit8 v1, v1, 0x1
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 1695
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
goto :goto_d6
.line 1696
:cond_76
const/16 v5, 0x46
if-ne v4, v5, :cond_85
.line 1697
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
add-int/lit8 v1, v1, 0x1
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 1698
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1699
const/4 v0, 0x1
goto :goto_d6
.line 1700
:cond_85
const/16 v6, 0x44
if-ne v4, v6, :cond_94
.line 1701
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
add-int/lit8 v1, v1, 0x1
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 1702
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1703
const/4 v0, 0x1
goto :goto_d6
.line 1704
:cond_94
const/16 v7, 0x65
if-eq v4, v7, :cond_9c
const/16 v7, 0x45
if-ne v4, v7, :cond_d6
.line 1705
:cond_9c
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
add-int/lit8 v4, v4, 0x1
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 1706
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1708
iget-char v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v7, 0x2b
if-eq v4, v7, :cond_ad
if-ne v4, v1, :cond_b6
.line 1709
:cond_ad
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
add-int/lit8 v1, v1, 0x1
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 1710
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1714
:cond_b6
:goto_b6
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
if-lt v1, v3, :cond_c6
if-gt v1, v2, :cond_c6
.line 1715
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
add-int/lit8 v1, v1, 0x1
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 1719
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
goto :goto_b6
.line 1722
:cond_c6
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
if-eq v1, v6, :cond_cc
if-ne v1, v5, :cond_d5
.line 1723
:cond_cc
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
add-int/lit8 v1, v1, 0x1
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 1724
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1727
:cond_d5
const/4 v0, 0x1
.line 1730
:cond_d6
:goto_d6
if-eqz v0, :cond_dc
.line 1731
const/4 v1, 0x3
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
goto :goto_df
.line 1733
:cond_dc
const/4 v1, 0x2
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 1735
:goto_df
return-void
.end method
.method public final scanSet()V
.registers 4
.line 1619
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const-string v1, "error parse true"
const/16 v2, 0x53
if-ne v0, v2, :cond_59
.line 1622
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1624
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v2, 0x65
if-ne v0, v2, :cond_53
.line 1627
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1629
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v2, 0x74
if-ne v0, v2, :cond_4d
.line 1632
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1634
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v1, 0x20
if-eq v0, v1, :cond_48
const/16 v1, 0xa
if-eq v0, v1, :cond_48
const/16 v1, 0xd
if-eq v0, v1, :cond_48
const/16 v1, 0x9
if-eq v0, v1, :cond_48
const/16 v1, 0xc
if-eq v0, v1, :cond_48
const/16 v1, 0x8
if-eq v0, v1, :cond_48
const/16 v1, 0x5b
if-eq v0, v1, :cond_48
const/16 v1, 0x28
if-ne v0, v1, :cond_40
goto :goto_48
.line 1637
:cond_40
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
.line 1635
:cond_48
:goto_48
const/16 v0, 0x15
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 1639
return-void
.line 1630
:cond_4d
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1625
:cond_53
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1620
:cond_59
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public scanString(C)Ljava/lang/String;
.registers 13
.param p1, "expectNextChar" # C
.line 1007
const/4 v0, 0x0
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1009
const/4 v0, 0x0
.line 1010
.local v0, "offset":I
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v2, v0, 0x1
.end local v0 # "offset":I
.local v2, "offset":I
add-int/2addr v1, v0
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v0
.line 1012
.local v0, "chLocal":C
const/4 v1, 0x3
const/4 v3, -0x1
const/16 v4, 0x6e
if-ne v0, v4, :cond_56
.line 1013
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/2addr v4, v2
invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v4
const/16 v5, 0x75
const/4 v6, 0x0
if-ne v4, v5, :cond_53
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/2addr v4, v2
add-int/lit8 v4, v4, 0x1
invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v4
const/16 v5, 0x6c
if-ne v4, v5, :cond_53
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/2addr v4, v2
add-int/lit8 v4, v4, 0x2
invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v4
if-ne v4, v5, :cond_53
.line 1014
add-int/2addr v2, v1
.line 1015
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v5, v2, 0x1
.end local v2 # "offset":I
.local v5, "offset":I
add-int/2addr v4, v2
invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v0
.line 1021
if-ne v0, p1, :cond_50
.line 1022
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v3, v5, -0x1
add-int/2addr v2, v3
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
.line 1023
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1024
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1025
return-object v6
.line 1027
:cond_50
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1028
return-object v6
.line 1017
.end local v5 # "offset":I
.restart local v2 # "offset":I
:cond_53
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1018
return-object v6
.line 1032
:cond_56
const/16 v4, 0x22
if-eq v0, v4, :cond_61
.line 1033
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1035
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->stringDefaultValue()Ljava/lang/String;
move-result-object v1
return-object v1
.line 1038
:cond_61
const/4 v5, 0x0
.line 1041
.local v5, "hasSpecial":Z
iget v6, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v6, v6, 0x1
.line 1042
.local v6, "startIndex":I
invoke-virtual {p0, v4, v6}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->indexOf(CI)I
move-result v4
.line 1043
.local v4, "endIndex":I
if-eq v4, v3, :cond_b5
.line 1047
iget v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v7, v7, 0x1
sub-int v8, v4, v6
invoke-virtual {p0, v7, v8}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->subString(II)Ljava/lang/String;
move-result-object v7
.line 1048
.local v7, "stringVal":Ljava/lang/String;
iget v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v8, v8, 0x1
.local v8, "i":I
:goto_7a
if-ge v8, v4, :cond_89
.line 1049
invoke-virtual {p0, v8}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v9
const/16 v10, 0x5c
if-ne v9, v10, :cond_86
.line 1050
const/4 v5, 0x1
.line 1051
goto :goto_89
.line 1048
:cond_86
add-int/lit8 v8, v8, 0x1
goto :goto_7a
.line 1055
.end local v8 # "i":I
:cond_89
:goto_89
if-eqz v5, :cond_92
.line 1056
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1058
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->stringDefaultValue()Ljava/lang/String;
move-result-object v1
return-object v1
.line 1061
:cond_92
iget v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v9, v8, 0x1
sub-int v9, v4, v9
add-int/lit8 v9, v9, 0x1
add-int/2addr v2, v9
.line 1062
add-int/lit8 v9, v2, 0x1
.end local v2 # "offset":I
.local v9, "offset":I
add-int/2addr v8, v2
invoke-virtual {p0, v8}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v0
.line 1063
move-object v2, v7
.line 1066
.end local v4 # "endIndex":I
.end local v6 # "startIndex":I
.end local v7 # "stringVal":Ljava/lang/String;
.local v2, "strVal":Ljava/lang/String;
if-ne v0, p1, :cond_b2
.line 1067
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v4, v9, -0x1
add-int/2addr v3, v4
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
.line 1068
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1069
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1070
return-object v2
.line 1072
:cond_b2
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1073
return-object v2
.line 1044
.end local v9 # "offset":I
.local v2, "offset":I
.restart local v4 # "endIndex":I
.restart local v6 # "startIndex":I
:cond_b5
new-instance v1, Lcom/alibaba/fastjson/JSONException;
const-string/jumbo v3, "unclosed str"
invoke-direct {v1, v3}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
goto :goto_bf
:goto_be
throw v1
:goto_bf
goto :goto_be
.end method
.method public final scanString()V
.registers 12
.line 794
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
.line 795
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->hasSpecial:Z
.line 798
:goto_7
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v1
.line 800
const/4 v2, 0x4
const/16 v3, 0x22
if-ne v1, v3, :cond_1a
.line 801
nop
.line 920
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 921
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v0
iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
.line 922
return-void
.line 804
:cond_1a
const/16 v4, 0x1a
const-string/jumbo v5, "unclosed string : "
if-eq v1, v4, :cond_14e
.line 808
const/16 v4, 0x5c
const/4 v6, 0x1
if-ne v1, v4, :cond_12f
.line 809
iget-boolean v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->hasSpecial:Z
const/4 v7, 0x2
if-nez v1, :cond_4f
.line 810
iput-boolean v6, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->hasSpecial:Z
.line 812
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
iget-object v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
array-length v9, v8
if-lt v1, v9, :cond_45
.line 813
array-length v8, v8
mul-int/lit8 v8, v8, 0x2
.line 814
if-le v1, v8, :cond_3a
.line 815
goto :goto_3b
.line 814
:cond_3a
move v1, v8
.line 817
:goto_3b
new-array v1, v1, [C
.line 818
iget-object v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
array-length v9, v8
invoke-static {v8, v0, v1, v0, v9}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 819
iput-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
.line 822
:cond_45
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
add-int/2addr v1, v6
iget v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
iget-object v9, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
invoke-virtual {p0, v1, v8, v9}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->copyTo(II[C)V
.line 827
:cond_4f
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v1
.line 829
if-eq v1, v3, :cond_129
const/16 v3, 0x27
if-eq v1, v3, :cond_125
const/16 v3, 0x46
if-eq v1, v3, :cond_11f
if-eq v1, v4, :cond_11b
const/16 v3, 0x62
if-eq v1, v3, :cond_115
const/16 v3, 0x66
if-eq v1, v3, :cond_11f
const/16 v3, 0x6e
if-eq v1, v3, :cond_10f
const/16 v3, 0x72
if-eq v1, v3, :cond_109
const/16 v3, 0x78
const/16 v4, 0x10
if-eq v1, v3, :cond_f3
const/4 v3, 0x3
packed-switch v1, :pswitch_data_166
packed-switch v1, :pswitch_data_17c
.line 902
iput-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
.line 903
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v5}, 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 864
:pswitch_93
const/16 v1, 0xb
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 865
goto/16 :goto_12d
.line 894
:pswitch_9a
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v1
.line 895
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v5
.line 896
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v8
.line 897
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v9
.line 898
new-instance v10, Ljava/lang/String;
new-array v2, v2, [C
aput-char v1, v2, v0
aput-char v5, v2, v6
aput-char v8, v2, v7
aput-char v9, v2, v3
invoke-direct {v10, v2}, Ljava/lang/String;-><init>([C)V
invoke-static {v10, v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I
move-result v1
.line 899
int-to-char v1, v1
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 900
goto/16 :goto_12d
.line 858
:pswitch_c3
const/16 v1, 0x9
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 859
goto/16 :goto_12d
.line 852
:pswitch_ca
const/4 v1, 0x7
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 853
goto :goto_12d
.line 849
:pswitch_cf
const/4 v1, 0x6
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 850
goto :goto_12d
.line 846
:pswitch_d4
const/4 v1, 0x5
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 847
goto :goto_12d
.line 843
:pswitch_d9
invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 844
goto :goto_12d
.line 840
:pswitch_dd
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 841
goto :goto_12d
.line 837
:pswitch_e1
invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 838
goto :goto_12d
.line 834
:pswitch_e5
invoke-virtual {p0, v6}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 835
goto :goto_12d
.line 831
:pswitch_e9
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 832
goto :goto_12d
.line 880
:pswitch_ed
const/16 v1, 0x2f
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 881
goto :goto_12d
.line 886
:cond_f3
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v1
.line 887
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v2
.line 889
sget-object v3, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
aget v1, v3, v1
mul-int/lit8 v1, v1, 0x10
aget v2, v3, v2
add-int/2addr v1, v2
.line 890
int-to-char v1, v1
.line 891
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 892
goto :goto_12d
.line 871
:cond_109
const/16 v1, 0xd
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 872
goto :goto_12d
.line 861
:cond_10f
const/16 v1, 0xa
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 862
goto :goto_12d
.line 855
:cond_115
const/16 v1, 0x8
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 856
goto :goto_12d
.line 883
:cond_11b
invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 884
goto :goto_12d
.line 868
:cond_11f
const/16 v1, 0xc
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 869
goto :goto_12d
.line 877
:cond_125
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 878
goto :goto_12d
.line 874
:cond_129
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 875
nop
.line 905
:goto_12d
goto/16 :goto_7
.line 908
:cond_12f
iget-boolean v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->hasSpecial:Z
if-nez v2, :cond_13a
.line 909
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
add-int/2addr v1, v6
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 910
goto/16 :goto_7
.line 913
:cond_13a
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
array-length v4, v3
if-ne v2, v4, :cond_146
.line 914
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
goto/16 :goto_7
.line 916
:cond_146
add-int/lit8 v4, v2, 0x1
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
aput-char v1, v3, v2
goto/16 :goto_7
.line 805
:cond_14e
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v5}, 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
goto :goto_164
:goto_163
throw v0
:goto_164
goto :goto_163
nop
:pswitch_data_166
.packed-switch 0x2f
:pswitch_ed
:pswitch_e9
:pswitch_e5
:pswitch_e1
:pswitch_dd
:pswitch_d9
:pswitch_d4
:pswitch_cf
:pswitch_ca
.end packed-switch
:pswitch_data_17c
.packed-switch 0x74
:pswitch_c3
:pswitch_9a
:pswitch_93
.end packed-switch
.end method
.method public final scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
.registers 6
.param p1, "symbolTable" # Lcom/alibaba/fastjson/parser/SymbolTable;
.line 525
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->skipWhitespace()V
.line 527
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v1, 0x22
if-ne v0, v1, :cond_e
.line 528
invoke-virtual {p0, p1, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
move-result-object v0
return-object v0
.line 531
:cond_e
const-string/jumbo v1, "syntax error"
const/16 v2, 0x27
if-ne v0, v2, :cond_28
.line 532
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_22
.line 536
invoke-virtual {p0, p1, v2}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
move-result-object v0
return-object v0
.line 533
:cond_22
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 539
:cond_28
const/16 v2, 0x7d
const/4 v3, 0x0
if-ne v0, v2, :cond_35
.line 540
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 541
const/16 v0, 0xd
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 542
return-object v3
.line 545
:cond_35
const/16 v2, 0x2c
if-ne v0, v2, :cond_41
.line 546
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 547
const/16 v0, 0x10
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 548
return-object v3
.line 551
:cond_41
const/16 v2, 0x1a
if-ne v0, v2, :cond_4a
.line 552
const/16 v0, 0x14
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 553
return-object v3
.line 556
:cond_4a
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_57
.line 560
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->scanSymbolUnQuoted(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
move-result-object v0
return-object v0
.line 557
:cond_57
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public final scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
.registers 16
.line 568
nop
.line 570
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
.line 571
const/4 v0, 0x0
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 572
const/4 v1, 0x0
const/4 v2, 0x0
.line 575
:goto_a
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v3
.line 577
const/4 v4, 0x4
const/4 v5, 0x1
if-ne v3, p2, :cond_34
.line 578
nop
.line 719
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 722
if-nez v1, :cond_26
.line 725
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
const/4 v1, -0x1
if-ne p2, v1, :cond_1e
.line 726
const/4 p2, 0x0
goto :goto_1f
.line 728
:cond_1e
add-int/2addr p2, v5
.line 730
:goto_1f
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
.line 731
goto :goto_2e
.line 732
:cond_26
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 735
:goto_2e
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 736
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 738
return-object p1
.line 581
:cond_34
const/16 v6, 0x1a
if-eq v3, v6, :cond_19f
.line 585
const/16 v6, 0x5c
if-ne v3, v6, :cond_17f
.line 586
const/4 v3, 0x2
if-nez v1, :cond_63
.line 587
nop
.line 589
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
iget-object v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
array-length v8, v7
if-lt v1, v8, :cond_58
.line 590
array-length v7, v7
mul-int/lit8 v7, v7, 0x2
.line 591
if-le v1, v7, :cond_4d
.line 592
goto :goto_4e
.line 591
:cond_4d
move v1, v7
.line 594
:goto_4e
new-array v1, v1, [C
.line 595
iget-object v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
array-length v8, v7
invoke-static {v7, v0, v1, v0, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 596
iput-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
.line 601
:cond_58
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 604
:cond_63
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v7
.line 606
const/16 v8, 0x22
if-eq v7, v8, :cond_176
const/16 v8, 0x27
if-eq v7, v8, :cond_16f
const/16 v8, 0x46
if-eq v7, v8, :cond_166
if-eq v7, v6, :cond_15f
const/16 v6, 0x62
if-eq v7, v6, :cond_156
const/16 v6, 0x66
if-eq v7, v6, :cond_166
const/16 v6, 0x6e
if-eq v7, v6, :cond_14d
const/16 v6, 0x72
if-eq v7, v6, :cond_144
const/16 v6, 0x78
const/16 v8, 0x10
if-eq v7, v6, :cond_127
const/4 v6, 0x3
packed-switch v7, :pswitch_data_1aa
packed-switch v7, :pswitch_data_1c0
.line 699
iput-char v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
.line 700
new-instance p1, Lcom/alibaba/fastjson/JSONException;
const-string/jumbo p2, "unclosed.str.lit"
invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw p1
.line 652
:pswitch_9d
mul-int/lit8 v2, v2, 0x1f
const/16 v3, 0xb
add-int/2addr v2, v3
.line 653
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 654
goto/16 :goto_17d
.line 690
:pswitch_a7
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v7
.line 691
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v9
.line 692
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v10
.line 693
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v11
.line 694
new-instance v12, Ljava/lang/String;
new-array v4, v4, [C
aput-char v7, v4, v0
aput-char v9, v4, v5
aput-char v10, v4, v3
aput-char v11, v4, v6
invoke-direct {v12, v4}, Ljava/lang/String;-><init>([C)V
invoke-static {v12, v8}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I
move-result v3
.line 695
mul-int/lit8 v2, v2, 0x1f
add-int/2addr v2, v3
.line 696
int-to-char v3, v3
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 697
goto/16 :goto_17d
.line 644
:pswitch_d3
mul-int/lit8 v2, v2, 0x1f
const/16 v3, 0x9
add-int/2addr v2, v3
.line 645
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 646
goto/16 :goto_17d
.line 636
:pswitch_dd
mul-int/lit8 v2, v2, 0x1f
add-int/2addr v2, v7
.line 637
const/4 v3, 0x7
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 638
goto/16 :goto_17d
.line 632
:pswitch_e6
mul-int/lit8 v2, v2, 0x1f
add-int/2addr v2, v7
.line 633
const/4 v3, 0x6
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 634
goto/16 :goto_17d
.line 628
:pswitch_ef
mul-int/lit8 v2, v2, 0x1f
add-int/2addr v2, v7
.line 629
const/4 v3, 0x5
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 630
goto/16 :goto_17d
.line 624
:pswitch_f8
mul-int/lit8 v2, v2, 0x1f
add-int/2addr v2, v7
.line 625
invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 626
goto/16 :goto_17d
.line 620
:pswitch_100
mul-int/lit8 v2, v2, 0x1f
add-int/2addr v2, v7
.line 621
invoke-virtual {p0, v6}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 622
goto/16 :goto_17d
.line 616
:pswitch_108
mul-int/lit8 v2, v2, 0x1f
add-int/2addr v2, v7
.line 617
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 618
goto/16 :goto_17d
.line 612
:pswitch_110
mul-int/lit8 v2, v2, 0x1f
add-int/2addr v2, v7
.line 613
invoke-virtual {p0, v5}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 614
goto :goto_17d
.line 608
:pswitch_117
mul-int/lit8 v2, v2, 0x1f
add-int/2addr v2, v7
.line 609
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 610
goto :goto_17d
.line 673
:pswitch_11e
mul-int/lit8 v2, v2, 0x1f
const/16 v3, 0x2f
add-int/2addr v2, v3
.line 674
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 675
goto :goto_17d
.line 681
:cond_127
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 682
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 684
sget-object v5, Lcom/alibaba/fastjson/parser/JSONLexerBase;->digits:[I
aget v3, v5, v3
mul-int/lit8 v3, v3, 0x10
aget v4, v5, v4
add-int/2addr v3, v4
.line 685
int-to-char v3, v3
.line 686
mul-int/lit8 v2, v2, 0x1f
add-int/2addr v2, v3
.line 687
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 688
goto :goto_17d
.line 661
:cond_144
mul-int/lit8 v2, v2, 0x1f
const/16 v3, 0xd
add-int/2addr v2, v3
.line 662
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 663
goto :goto_17d
.line 648
:cond_14d
mul-int/lit8 v2, v2, 0x1f
const/16 v3, 0xa
add-int/2addr v2, v3
.line 649
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 650
goto :goto_17d
.line 640
:cond_156
mul-int/lit8 v2, v2, 0x1f
const/16 v3, 0x8
add-int/2addr v2, v3
.line 641
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 642
goto :goto_17d
.line 677
:cond_15f
mul-int/lit8 v2, v2, 0x1f
add-int/2addr v2, v6
.line 678
invoke-virtual {p0, v6}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 679
goto :goto_17d
.line 657
:cond_166
mul-int/lit8 v2, v2, 0x1f
const/16 v3, 0xc
add-int/2addr v2, v3
.line 658
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 659
goto :goto_17d
.line 669
:cond_16f
mul-int/lit8 v2, v2, 0x1f
add-int/2addr v2, v8
.line 670
invoke-virtual {p0, v8}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 671
goto :goto_17d
.line 665
:cond_176
mul-int/lit8 v2, v2, 0x1f
add-int/2addr v2, v8
.line 666
invoke-virtual {p0, v8}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
.line 667
nop
.line 702
:goto_17d
goto/16 :goto_a
.line 705
:cond_17f
mul-int/lit8 v2, v2, 0x1f
add-int/2addr v2, v3
.line 707
if-nez v1, :cond_18b
.line 708
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
.line 709
goto/16 :goto_a
.line 712
:cond_18b
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
iget-object v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sbuf:[C
array-length v6, v5
if-ne v4, v6, :cond_197
.line 713
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->putChar(C)V
goto/16 :goto_a
.line 715
:cond_197
add-int/lit8 v6, v4, 0x1
iput v6, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
aput-char v3, v5, v4
goto/16 :goto_a
.line 582
:cond_19f
new-instance p1, Lcom/alibaba/fastjson/JSONException;
const-string/jumbo p2, "unclosed.str"
invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
goto :goto_1a9
:goto_1a8
throw p1
:goto_1a9
goto :goto_1a8
:pswitch_data_1aa
.packed-switch 0x2f
:pswitch_11e
:pswitch_117
:pswitch_110
:pswitch_108
:pswitch_100
:pswitch_f8
:pswitch_ef
:pswitch_e6
:pswitch_dd
.end packed-switch
:pswitch_data_1c0
.packed-switch 0x74
:pswitch_d3
:pswitch_a7
:pswitch_9d
.end packed-switch
.end method
.method public final scanSymbolUnQuoted(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
.registers 12
.param p1, "symbolTable" # Lcom/alibaba/fastjson/parser/SymbolTable;
.line 746
sget-object v0, Lcom/alibaba/fastjson/util/IOUtils;->firstIdentifierFlags:[Z
.line 747
.local v0, "firstIdentifierFlags":[Z
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
.line 749
.local v1, "first":C
iget-char v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
array-length v3, v0
const/4 v4, 0x1
if-ge v2, v3, :cond_11
aget-boolean v2, v0, v1
if-eqz v2, :cond_f
goto :goto_11
:cond_f
const/4 v2, 0x0
goto :goto_12
:cond_11
:goto_11
const/4 v2, 0x1
.line 750
.local v2, "firstFlag":Z
:goto_12
if-eqz v2, :cond_82
.line 754
sget-object v3, Lcom/alibaba/fastjson/util/IOUtils;->identifierFlags:[Z
.line 756
.local v3, "identifierFlags":[Z
move v5, v1
.line 758
.local v5, "hash":I
iget v6, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
iput v6, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
.line 759
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 762
:goto_1d
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
move-result v6
.line 764
.local v6, "chLocal":C
array-length v7, v3
if-ge v6, v7, :cond_78
.line 765
aget-boolean v7, v3, v6
if-nez v7, :cond_78
.line 766
nop
.line 776
iget v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v7
iput-char v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
.line 777
const/16 v7, 0x12
iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 779
const v7, 0x33c587
.line 780
.local v7, "NULL_HASH":I
iget v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
const/4 v9, 0x4
if-ne v8, v9, :cond_6f
const v8, 0x33c587
if-ne v5, v8, :cond_6f
iget v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
invoke-virtual {p0, v8}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v8
const/16 v9, 0x6e
if-ne v8, v9, :cond_6f
iget v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
add-int/2addr v8, v4
invoke-virtual {p0, v8}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v4
const/16 v8, 0x75
if-ne v4, v8, :cond_6f
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
add-int/lit8 v4, v4, 0x2
invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v4
const/16 v8, 0x6c
if-ne v4, v8, :cond_6f
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
add-int/lit8 v4, v4, 0x3
invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v4
if-ne v4, v8, :cond_6f
.line 782
const/4 v4, 0x0
return-object v4
.line 787
:cond_6f
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->np:I
iget v8, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
invoke-virtual {p0, v4, v8, v5, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->addSymbol(IIILcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
move-result-object v4
return-object v4
.line 770
.end local v7 # "NULL_HASH":I
:cond_78
mul-int/lit8 v7, v5, 0x1f
add-int v5, v7, v6
.line 772
iget v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
add-int/2addr v7, v4
iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->sp:I
.line 773
goto :goto_1d
.line 751
.end local v3 # "identifierFlags":[Z
.end local v5 # "hash":I
.end local v6 # "chLocal":C
:cond_82
new-instance v3, Lcom/alibaba/fastjson/JSONException;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "illegal identifier : "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-direct {v3, v4}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
goto :goto_9c
:goto_9b
throw v3
:goto_9c
goto :goto_9b
.end method
.method public scanSymbolWithSeperator(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
.registers 13
.param p1, "symbolTable" # Lcom/alibaba/fastjson/parser/SymbolTable;
.param p2, "serperator" # C
.line 1087
const/4 v0, 0x0
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1089
const/4 v0, 0x0
.line 1090
.local v0, "offset":I
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v2, v0, 0x1
.end local v0 # "offset":I
.local v2, "offset":I
add-int/2addr v1, v0
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v0
.line 1092
.local v0, "chLocal":C
const/4 v1, 0x3
const/4 v3, 0x0
const/4 v4, -0x1
const/16 v5, 0x6e
if-ne v0, v5, :cond_56
.line 1093
iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/2addr v5, v2
invoke-virtual {p0, v5}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v5
const/16 v6, 0x75
if-ne v5, v6, :cond_53
iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/2addr v5, v2
add-int/lit8 v5, v5, 0x1
invoke-virtual {p0, v5}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v5
const/16 v6, 0x6c
if-ne v5, v6, :cond_53
iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/2addr v5, v2
add-int/lit8 v5, v5, 0x2
invoke-virtual {p0, v5}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v5
if-ne v5, v6, :cond_53
.line 1094
add-int/2addr v2, v1
.line 1095
iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v6, v2, 0x1
.end local v2 # "offset":I
.local v6, "offset":I
add-int/2addr v5, v2
invoke-virtual {p0, v5}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v0
.line 1101
if-ne v0, p2, :cond_50
.line 1102
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v4, v6, -0x1
add-int/2addr v2, v4
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
.line 1103
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1104
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1105
return-object v3
.line 1107
:cond_50
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1108
return-object v3
.line 1097
.end local v6 # "offset":I
.restart local v2 # "offset":I
:cond_53
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1098
return-object v3
.line 1112
:cond_56
const/16 v5, 0x22
if-eq v0, v5, :cond_5d
.line 1113
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1114
return-object v3
.line 1119
:cond_5d
const/4 v6, 0x0
.line 1121
.local v6, "hash":I
:goto_5e
iget v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v8, v2, 0x1
.end local v2 # "offset":I
.local v8, "offset":I
add-int/2addr v7, v2
invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v0
.line 1122
if-ne v0, v5, :cond_93
.line 1125
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v3, v2, 0x0
add-int/lit8 v3, v3, 0x1
.line 1126
.local v3, "start":I
add-int/2addr v2, v8
sub-int/2addr v2, v3
add-int/lit8 v2, v2, -0x1
.line 1127
.local v2, "len":I
invoke-virtual {p0, v3, v2, v6, p1}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->addSymbol(IIILcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
move-result-object v5
.line 1128
.local v5, "strVal":Ljava/lang/String;
iget v7, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v9, v8, 0x1
.end local v8 # "offset":I
.local v9, "offset":I
add-int/2addr v7, v8
invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->charAt(I)C
move-result v0
.line 1129
nop
.line 1140
.end local v2 # "len":I
.end local v3 # "start":I
if-ne v0, p2, :cond_90
.line 1141
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
add-int/lit8 v3, v9, -0x1
add-int/2addr v2, v3
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->bp:I
.line 1142
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1143
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1144
return-object v5
.line 1146
:cond_90
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1147
return-object v5
.line 1132
.end local v5 # "strVal":Ljava/lang/String;
.end local v9 # "offset":I
.restart local v8 # "offset":I
:cond_93
mul-int/lit8 v2, v6, 0x1f
add-int v6, v2, v0
.line 1134
const/16 v2, 0x5c
if-ne v0, v2, :cond_9e
.line 1135
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->matchStat:I
.line 1136
return-object v3
.line 1134
:cond_9e
move v2, v8
goto :goto_5e
.end method
.method public final scanTreeSet()V
.registers 5
.line 1263
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const-string v1, "error parse true"
const/16 v2, 0x54
if-ne v0, v2, :cond_91
.line 1266
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1268
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v2, 0x72
if-ne v0, v2, :cond_8b
.line 1271
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1273
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v2, 0x65
if-ne v0, v2, :cond_85
.line 1276
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1278
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
if-ne v0, v2, :cond_7f
.line 1281
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1283
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v3, 0x53
if-ne v0, v3, :cond_79
.line 1286
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1288
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
if-ne v0, v2, :cond_73
.line 1291
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1293
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v2, 0x74
if-ne v0, v2, :cond_6d
.line 1296
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1298
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v1, 0x20
if-eq v0, v1, :cond_68
const/16 v1, 0xa
if-eq v0, v1, :cond_68
const/16 v1, 0xd
if-eq v0, v1, :cond_68
const/16 v1, 0x9
if-eq v0, v1, :cond_68
const/16 v1, 0xc
if-eq v0, v1, :cond_68
const/16 v1, 0x8
if-eq v0, v1, :cond_68
const/16 v1, 0x5b
if-eq v0, v1, :cond_68
const/16 v1, 0x28
if-ne v0, v1, :cond_60
goto :goto_68
.line 1301
:cond_60
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
.line 1299
:cond_68
:goto_68
const/16 v0, 0x16
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 1303
return-void
.line 1294
:cond_6d
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1289
:cond_73
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1284
:cond_79
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1279
:cond_7f
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1274
:cond_85
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1269
:cond_8b
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1264
:cond_91
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public final scanTrue()V
.registers 4
.line 1234
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const-string v1, "error parse true"
const/16 v2, 0x74
if-ne v0, v2, :cond_73
.line 1237
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1239
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v2, 0x72
if-ne v0, v2, :cond_6d
.line 1242
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1244
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v2, 0x75
if-ne v0, v2, :cond_67
.line 1247
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1249
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v2, 0x65
if-ne v0, v2, :cond_61
.line 1252
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1254
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v1, 0x20
if-eq v0, v1, :cond_5d
const/16 v1, 0x2c
if-eq v0, v1, :cond_5d
const/16 v1, 0x7d
if-eq v0, v1, :cond_5d
const/16 v1, 0x5d
if-eq v0, v1, :cond_5d
const/16 v1, 0xa
if-eq v0, v1, :cond_5d
const/16 v1, 0xd
if-eq v0, v1, :cond_5d
const/16 v1, 0x9
if-eq v0, v1, :cond_5d
const/16 v1, 0x1a
if-eq v0, v1, :cond_5d
const/16 v1, 0xc
if-eq v0, v1, :cond_5d
const/16 v1, 0x8
if-eq v0, v1, :cond_5d
const/16 v1, 0x3a
if-ne v0, v1, :cond_55
goto :goto_5d
.line 1258
:cond_55
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
.line 1256
:cond_5d
:goto_5d
const/4 v0, 0x6
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 1260
return-void
.line 1250
:cond_61
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1245
:cond_67
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1240
:cond_6d
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1235
:cond_73
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public final scanUndefined()V
.registers 7
.line 1351
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const-string v1, "error parse false"
const/16 v2, 0x75
if-ne v0, v2, :cond_b5
.line 1354
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1356
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v2, 0x6e
if-ne v0, v2, :cond_af
.line 1359
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1361
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v3, 0x64
if-ne v0, v3, :cond_a9
.line 1364
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1366
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v4, 0x65
if-ne v0, v4, :cond_a3
.line 1369
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1371
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v5, 0x66
if-ne v0, v5, :cond_9d
.line 1374
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1376
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v5, 0x69
if-ne v0, v5, :cond_97
.line 1379
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1381
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
if-ne v0, v2, :cond_91
.line 1384
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1386
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
if-ne v0, v4, :cond_8b
.line 1389
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1390
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
if-ne v0, v3, :cond_85
.line 1393
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1395
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
const/16 v1, 0x20
if-eq v0, v1, :cond_80
const/16 v1, 0x2c
if-eq v0, v1, :cond_80
const/16 v1, 0x7d
if-eq v0, v1, :cond_80
const/16 v1, 0x5d
if-eq v0, v1, :cond_80
const/16 v1, 0xa
if-eq v0, v1, :cond_80
const/16 v1, 0xd
if-eq v0, v1, :cond_80
const/16 v1, 0x9
if-eq v0, v1, :cond_80
const/16 v1, 0x1a
if-eq v0, v1, :cond_80
const/16 v1, 0xc
if-eq v0, v1, :cond_80
const/16 v1, 0x8
if-ne v0, v1, :cond_78
goto :goto_80
.line 1399
:cond_78
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
.line 1397
:cond_80
:goto_80
const/16 v0, 0x17
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
.line 1401
return-void
.line 1391
:cond_85
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1387
:cond_8b
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1382
:cond_91
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1377
:cond_97
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1372
:cond_9d
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1367
:cond_a3
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1362
:cond_a9
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1357
:cond_af
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 1352
:cond_b5
new-instance v0, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public final skipWhitespace()V
.registers 4
.line 1482
:goto_0
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->ch:C
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexerBase;->whitespaceFlags:[Z
array-length v2, v1
if-ge v0, v2, :cond_f
aget-boolean v0, v1, v0
if-eqz v0, :cond_f
.line 1483
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->next()C
.line 1484
goto :goto_0
.line 1489
:cond_f
return-void
.end method
.method public final stringDefaultValue()Ljava/lang/String;
.registers 2
.line 397
sget-object v0, Lcom/alibaba/fastjson/parser/Feature;->InitStringFieldAsEmpty: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_b
.line 398
const-string v0, ""
return-object v0
.line 400
:cond_b
const/4 v0, 0x0
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
.registers 2
.line 381
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexerBase;->token:I
return v0
.end method
.method public final tokenName()Ljava/lang/String;
.registers 2
.line 385
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