package com.alibaba.fastjson.parser;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.Locale;
import java.util.TimeZone;
public interface JSONLexer {
char EOI = 0x1A;
int NOT_MATCH = -1;
int NOT_MATCH_NAME = -2;
int UNKNOWN = 0;
int OBJECT = 1;
int ARRAY = 2;
int VALUE = 3;
int END = 4;
int VALUE_NULL = 5;
int token();
String tokenName();
void skipWhitespace();
void nextToken();
void nextToken(int expect);
char getCurrent();
char next();
String scanSymbol(final SymbolTable symbolTable);
String scanSymbol(final SymbolTable symbolTable, final char quote);
void resetStringPosition();
void scanNumber();
int pos();
Number integerValue();
BigDecimal decimalValue();
Number decimalValue(boolean decimal);
String scanSymbolUnQuoted(final SymbolTable symbolTable);
String stringVal();
boolean isEnabled(int feature);
boolean isEnabled(Feature feature);
void config(Feature feature, boolean state);
void scanString();
int intValue();
void nextTokenWithColon();
void nextTokenWithColon(int expect);
boolean isBlankInput();
void close();
long longValue();
boolean isRef();
String numberString();
byte[] bytesValue();
float floatValue();
int scanInt(char expectNext);
long scanLong(char expectNextChar);
float scanFloat(char seperator);
double scanDouble(char seperator);
boolean scanBoolean(char expectNext);
String scanString(char expectNextChar);
Enum<?> scanEnum(Class<?> enumClass, final SymbolTable symbolTable, char serperator);
String scanSymbolWithSeperator(final SymbolTable symbolTable, char serperator);
void scanStringArray(Collection<String> collection, char seperator);
TimeZone getTimeZone();
void setTimeZone(TimeZone timeZone);
Locale getLocale();
void setLocale(Locale locale);
String info();
}