|
34 | 34 | import java.util.ArrayList;
|
35 | 35 | import java.util.Calendar;
|
36 | 36 | import java.util.Collection;
|
| 37 | +import java.util.HashMap; |
37 | 38 | import java.util.HashSet;
|
| 39 | +import java.util.Map; |
38 | 40 |
|
39 | 41 | import com.alibaba.fastjson.JSON;
|
40 | 42 | import com.alibaba.fastjson.JSONException;
|
|
44 | 46 | * @author wenshao[szujobs@hotmail.com]
|
45 | 47 | */
|
46 | 48 | public abstract class JSONLexerBase implements JSONLexer, Closeable {
|
| 49 | + private final static Map<String, Integer> DEFAULT_KEYWORDS; |
47 | 50 |
|
| 51 | + static { |
| 52 | + Map<String, Integer> map = new HashMap<String, Integer>(); |
| 53 | + map.put("null", JSONToken.NULL); |
| 54 | + map.put("new", JSONToken.NEW); |
| 55 | + map.put("true", JSONToken.TRUE); |
| 56 | + map.put("false", JSONToken.FALSE); |
| 57 | + map.put("undefined", JSONToken.UNDEFINED); |
| 58 | + DEFAULT_KEYWORDS = map; |
| 59 | + } |
| 60 | + |
48 | 61 | protected void lexError(String key, Object... args) {
|
49 | 62 | token = ERROR;
|
50 | 63 | }
|
@@ -76,7 +89,7 @@ protected void lexError(String key, Object... args) {
|
76 | 89 | public int matchStat = UNKOWN;
|
77 | 90 |
|
78 | 91 | private final static ThreadLocal<SoftReference<char[]>> SBUF_REF_LOCAL = new ThreadLocal<SoftReference<char[]>>();
|
79 |
| - protected Keywords keywods = Keywords.DEFAULT_KEYWORDS; |
| 92 | + protected Map<String, Integer> keywods = DEFAULT_KEYWORDS; |
80 | 93 |
|
81 | 94 | public JSONLexerBase(){
|
82 | 95 | SoftReference<char[]> sbufRef = SBUF_REF_LOCAL.get();
|
@@ -2575,7 +2588,7 @@ public final void scanIdent() {
|
2575 | 2588 |
|
2576 | 2589 | String ident = stringVal();
|
2577 | 2590 |
|
2578 |
| - Integer tok = keywods.getKeyword(ident); |
| 2591 | + Integer tok = keywods.get(ident); |
2579 | 2592 | if (tok != null) {
|
2580 | 2593 | token = tok;
|
2581 | 2594 | } else {
|
|
0 commit comments