/* * Copyright 1999-2101 Alibaba Group. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.zbus.common.json.parser; /** * @author wenshao<szujobs@hotmail.com> */ public final class CharTypes { public final static char[] digits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; public final static boolean[] firstIdentifierFlags = new boolean[256]; static { for (char c = 0; c < firstIdentifierFlags.length; ++c) { if (c >= 'A' && c <= 'Z') { firstIdentifierFlags[c] = true; } else if (c >= 'a' && c <= 'z') { firstIdentifierFlags[c] = true; } else if (c == '_') { firstIdentifierFlags[c] = true; } } } public final static boolean[] identifierFlags = new boolean[256]; static { for (char c = 0; c < identifierFlags.length; ++c) { if (c >= 'A' && c <= 'Z') { identifierFlags[c] = true; } else if (c >= 'a' && c <= 'z') { identifierFlags[c] = true; } else if (c == '_') { identifierFlags[c] = true; } else if (c >= '0' && c <= '9') { identifierFlags[c] = true; } } } public final static byte[] specicalFlags_doubleQuotes = new byte[256]; public final static byte[] specicalFlags_singleQuotes = new byte[256]; public final static char[] replaceChars = new char[128]; static { specicalFlags_doubleQuotes['\0'] = 4; specicalFlags_doubleQuotes['\1'] = 4; specicalFlags_doubleQuotes['\2'] = 4; specicalFlags_doubleQuotes['\3'] = 4; specicalFlags_doubleQuotes['\4'] = 4; specicalFlags_doubleQuotes['\5'] = 4; specicalFlags_doubleQuotes['\6'] = 4; specicalFlags_doubleQuotes['\7'] = 4; specicalFlags_doubleQuotes['\b'] = 1; // 8 specicalFlags_doubleQuotes['\t'] = 1; // 9 specicalFlags_doubleQuotes['\n'] = 1; // 10 specicalFlags_doubleQuotes['\u000B'] = 4; // 11 specicalFlags_doubleQuotes['\f'] = 1; specicalFlags_doubleQuotes['\r'] = 1; specicalFlags_doubleQuotes['\"'] = 1; specicalFlags_doubleQuotes['\\'] = 1; specicalFlags_singleQuotes['\0'] = 4; specicalFlags_singleQuotes['\1'] = 4; specicalFlags_singleQuotes['\2'] = 4; specicalFlags_singleQuotes['\3'] = 4; specicalFlags_singleQuotes['\4'] = 4; specicalFlags_singleQuotes['\5'] = 4; specicalFlags_singleQuotes['\6'] = 4; specicalFlags_singleQuotes['\7'] = 4; specicalFlags_singleQuotes['\b'] = 1; // 8 specicalFlags_singleQuotes['\t'] = 1; // 9 specicalFlags_singleQuotes['\n'] = 1; // 10 specicalFlags_singleQuotes['\u000B'] = 4; // 11 specicalFlags_singleQuotes['\f'] = 1; // 12 specicalFlags_singleQuotes['\r'] = 1; // 13 specicalFlags_singleQuotes['\\'] = 1; specicalFlags_singleQuotes['\''] = 1; for (int i = 0x0E; i <= 0x1F; ++i) { specicalFlags_doubleQuotes[i] = 4; specicalFlags_singleQuotes[i] = 4; } for (int i = 0x7F; i <= 0xA0; ++i) { specicalFlags_doubleQuotes[i] = 4; specicalFlags_singleQuotes[i] = 4; } replaceChars['\0'] = '0'; replaceChars['\1'] = '1'; replaceChars['\2'] = '2'; replaceChars['\3'] = '3'; replaceChars['\4'] = '4'; replaceChars['\5'] = '5'; replaceChars['\6'] = '6'; replaceChars['\7'] = '7'; replaceChars['\b'] = 'b'; // 8 replaceChars['\t'] = 't'; // 9 replaceChars['\n'] = 'n'; // 10 replaceChars['\u000B'] = 'v'; // 11 replaceChars['\f'] = 'f'; // 12 replaceChars['\r'] = 'r'; // 13 replaceChars['\"'] = '"'; // 34 replaceChars['\''] = '\''; // 39 replaceChars['/'] = '/'; // 47 replaceChars['\\'] = '\\'; // 92 } public final static char[] ASCII_CHARS = { '0', '0', '0', '1', '0', '2', '0', '3', '0', '4', '0', '5', '0', '6', '0', '7', '0', '8', '0', '9', '0', 'A', '0', 'B', '0', 'C', '0', 'D', '0', 'E', '0', 'F', '1', '0', '1', '1', '1', '2', '1', '3', '1', '4', '1', '5', '1', '6', '1', '7', '1', '8', '1', '9', '1', 'A', '1', 'B', '1', 'C', '1', 'D', '1', 'E', '1', 'F', '2', '0', '2', '1', '2', '2', '2', '3', '2', '4', '2', '5', '2', '6', '2', '7', '2', '8', '2', '9', '2', 'A', '2', 'B', '2', 'C', '2', 'D', '2', 'E', '2', 'F', }; }