13af6ab5fSopenharmony_ci/** 23af6ab5fSopenharmony_ci * Copyright (c) 2021-2024 Huawei Device Co., Ltd. 33af6ab5fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 43af6ab5fSopenharmony_ci * you may not use this file except in compliance with the License. 53af6ab5fSopenharmony_ci * You may obtain a copy of the License at 63af6ab5fSopenharmony_ci * 73af6ab5fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 83af6ab5fSopenharmony_ci * 93af6ab5fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 103af6ab5fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 113af6ab5fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 123af6ab5fSopenharmony_ci * See the License for the specific language governing permissions and 133af6ab5fSopenharmony_ci * limitations under the License. 143af6ab5fSopenharmony_ci */ 153af6ab5fSopenharmony_ci 163af6ab5fSopenharmony_ci#ifndef ES2PANDA_PARSER_CORE_LETTERS_H 173af6ab5fSopenharmony_ci#define ES2PANDA_PARSER_CORE_LETTERS_H 183af6ab5fSopenharmony_ci 193af6ab5fSopenharmony_ci#include <cstdint> 203af6ab5fSopenharmony_cinamespace ark::es2panda::lexer { 213af6ab5fSopenharmony_ciinline constexpr char32_t LEX_ASCII_MAX_BITS = 128; 223af6ab5fSopenharmony_ci 233af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_NULL = 0x00; /* \0 */ 243af6ab5fSopenharmony_ci 253af6ab5fSopenharmony_ci// Line Terminators 263af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LF = 0x0A; /* line feed */ 273af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_CR = 0x0D; /* carriage return */ 283af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LS = 0x2028; /* line separator */ 293af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_PS = 0x2029; /* paragraph separator */ 303af6ab5fSopenharmony_ci 313af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_A = 0x61; /* a */ 323af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_B = 0x62; /* b */ 333af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_C = 0x63; /* c */ 343af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_D = 0x64; /* d */ 353af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_E = 0X65; /* e */ 363af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_F = 0X66; /* f */ 373af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_G = 0X67; /* g */ 383af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_H = 0X68; /* h */ 393af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_I = 0X69; /* i */ 403af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_J = 0X6A; /* j */ 413af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_K = 0X6B; /* k */ 423af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_L = 0X6C; /* l */ 433af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_M = 0X6D; /* m */ 443af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_N = 0X6E; /* n */ 453af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_O = 0X6F; /* o */ 463af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_P = 0x70; /* p */ 473af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_Q = 0x71; /* q */ 483af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_R = 0x72; /* r */ 493af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_S = 0x73; /* s */ 503af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_T = 0x74; /* t */ 513af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_U = 0x75; /* u */ 523af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_V = 0x76; /* v */ 533af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_W = 0x77; /* w */ 543af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_X = 0x78; /* x */ 553af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_Y = 0x79; /* y */ 563af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LOWERCASE_Z = 0x7A; /* z */ 573af6ab5fSopenharmony_ci 583af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_A = 0X41; /* A */ 593af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_B = 0X42; /* B */ 603af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_C = 0X43; /* C */ 613af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_D = 0X44; /* D */ 623af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_E = 0X45; /* E */ 633af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_F = 0X46; /* F */ 643af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_G = 0X47; /* G */ 653af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_H = 0X48; /* H */ 663af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_I = 0X49; /* I */ 673af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_J = 0X4A; /* J */ 683af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_K = 0X4B; /* K */ 693af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_L = 0X4C; /* L */ 703af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_M = 0X4D; /* M */ 713af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_N = 0X4E; /* N */ 723af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_O = 0X4F; /* O */ 733af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_P = 0X50; /* P */ 743af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_Q = 0X51; /* Q */ 753af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_R = 0X52; /* R */ 763af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_S = 0X53; /* S */ 773af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_T = 0X54; /* T */ 783af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_U = 0X55; /* U */ 793af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_V = 0X56; /* V */ 803af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_W = 0X57; /* W */ 813af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_X = 0x58; /* X */ 823af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_Y = 0x59; /* Y */ 833af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UPPERCASE_Z = 0x5A; /* Y */ 843af6ab5fSopenharmony_ci 853af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_BS = 0x08; /* backspace */ 863af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_TAB = 0x09; /* character tabulation */ 873af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_VT = 0x0B; /* liner tabulation */ 883af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_FF = 0x0C; /* form feed */ 893af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_SP = 0x20; /* space */ 903af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_NBSP = 0xA0; /* no-break space */ 913af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_ZWNBSP = 0xFEFF; /* zero width no-break space */ 923af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_MVS = 0x180e; /* MONGOLIAN VOWEL SEPARATOR (U+180E) */ 933af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_DOUBLE_QUOTE = 0x22; /* " */ 943af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_DOLLAR_SIGN = 0x24; /* $ */ 953af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_SINGLE_QUOTE = 0x27; /* ' */ 963af6ab5fSopenharmony_ci 973af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_0 = 0x30; /* 0 */ 983af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_1 = 0x31; /* 1 */ 993af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_2 = 0x32; /* 2 */ 1003af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_3 = 0x33; /* 3 */ 1013af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_4 = 0x34; /* 4 */ 1023af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_5 = 0x35; /* 5 */ 1033af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_6 = 0x36; /* 6 */ 1043af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_7 = 0x37; /* 7 */ 1053af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_8 = 0x38; /* 8 */ 1063af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_9 = 0x39; /* 9 */ 1073af6ab5fSopenharmony_ci 1083af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_BACKSLASH = 0X5c; /* \\ */ 1093af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_UNDERSCORE = 0x5F; /* _ */ 1103af6ab5fSopenharmony_ci 1113af6ab5fSopenharmony_ci// Punctuator characters 1123af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_EXCLAMATION = 0x21; /* exclamation mark */ 1133af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_PERCENT = 0x25; /* percent sign */ 1143af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_AMPERSAND = 0x26; /* ampersand */ 1153af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LEFT_PAREN = 0x28; /* left parenthesis */ 1163af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_RIGHT_PAREN = 0x29; /* right parenthesis */ 1173af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_ASTERISK = 0x2A; /* asterisk */ 1183af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_PLUS = 0x2B; /* plus sign */ 1193af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_COMMA = 0x2C; /* comma */ 1203af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_MINUS = 0x2D; /* hyphen-minus */ 1213af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_DOT = 0x2E; /* dot */ 1223af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_SLASH = 0x2F; /* solidus */ 1233af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_COLON = 0x3A; /* colon */ 1243af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_SEMICOLON = 0x3B; /* semicolon */ 1253af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LESS_THAN = 0x3C; /* less-than sign */ 1263af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_EQUALS = 0x3D; /* equals sign */ 1273af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_GREATER_THAN = 0x3E; /* greater-than sign */ 1283af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_QUESTION = 0x3F; /* question mark */ 1293af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LEFT_SQUARE = 0x5B; /* left square bracket */ 1303af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_RIGHT_SQUARE = 0x5D; /* right square bracket */ 1313af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_CIRCUMFLEX = 0x5E; /* circumflex accent */ 1323af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_LEFT_BRACE = 0x7B; /* left curly bracket */ 1333af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_VLINE = 0x7C; /* vertical line */ 1343af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_RIGHT_BRACE = 0x7D; /* right curly bracket */ 1353af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_TILDE = 0x7E; /* tilde */ 1363af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_BACK_TICK = 0x60; /* back tick */ 1373af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_HASH_MARK = 0x23; /* hash mark */ 1383af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_AT = 0x40; /* at */ 1393af6ab5fSopenharmony_ci 1403af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_ZWNJ = 0x200C; /* zero width non-joiner */ 1413af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_ZWJ = 0x200D; /* zero width joiner */ 1423af6ab5fSopenharmony_ci 1433af6ab5fSopenharmony_ciinline constexpr char32_t LEX_VERTICAL_TILDE = 0x2E2F; /* vertical tilde */ 1443af6ab5fSopenharmony_ci 1453af6ab5fSopenharmony_ciinline constexpr char32_t LEX_UTF8_2_BYTE_CODE_POINT_MIN = 0x80; 1463af6ab5fSopenharmony_ciinline constexpr char32_t LEX_UTF8_EXTRA_BYTE_MASK = 0xC0; 1473af6ab5fSopenharmony_ci 1483af6ab5fSopenharmony_ciinline constexpr char32_t LEX_CHAR_EOS = 0xFFFF; 1493af6ab5fSopenharmony_ciinline constexpr char32_t UNICODE_CODE_POINT_MAX = 0x10FFFF; 1503af6ab5fSopenharmony_ciinline constexpr char32_t UNICODE_INVALID_CP = UINT32_MAX; 1513af6ab5fSopenharmony_ci} // namespace ark::es2panda::lexer 1523af6ab5fSopenharmony_ci 1533af6ab5fSopenharmony_ci#endif 154