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