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