* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
* 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.
*/
#ifndef ES2PANDA_PARSER_CORE_LETTERS_H
#define ES2PANDA_PARSER_CORE_LETTERS_H
namespace panda::es2panda::lexer {
#define LEX_ASCII_MAX_BITS 128
#define LEX_CHAR_NULL 0x00
#define LEX_CHAR_LF 0x0A
#define LEX_CHAR_CR 0x0D
#define LEX_CHAR_LS 0x2028
#define LEX_CHAR_PS 0x2029
#define LEX_CHAR_LOWERCASE_A 0x61
#define LEX_CHAR_LOWERCASE_B 0x62
#define LEX_CHAR_LOWERCASE_C 0x63
#define LEX_CHAR_LOWERCASE_D 0x64
#define LEX_CHAR_LOWERCASE_E 0X65
#define LEX_CHAR_LOWERCASE_F 0X66
#define LEX_CHAR_LOWERCASE_G 0X67
#define LEX_CHAR_LOWERCASE_H 0X68
#define LEX_CHAR_LOWERCASE_I 0X69
#define LEX_CHAR_LOWERCASE_J 0X6A
#define LEX_CHAR_LOWERCASE_K 0X6B
#define LEX_CHAR_LOWERCASE_L 0X6C
#define LEX_CHAR_LOWERCASE_M 0X6D
#define LEX_CHAR_LOWERCASE_N 0X6E
#define LEX_CHAR_LOWERCASE_O 0X6F
#define LEX_CHAR_LOWERCASE_P 0x70
#define LEX_CHAR_LOWERCASE_Q 0x71
#define LEX_CHAR_LOWERCASE_R 0x72
#define LEX_CHAR_LOWERCASE_S 0x73
#define LEX_CHAR_LOWERCASE_T 0x74
#define LEX_CHAR_LOWERCASE_U 0x75
#define LEX_CHAR_LOWERCASE_V 0x76
#define LEX_CHAR_LOWERCASE_W 0x77
#define LEX_CHAR_LOWERCASE_X 0x78
#define LEX_CHAR_LOWERCASE_Y 0x79
#define LEX_CHAR_LOWERCASE_Z 0x7A
#define LEX_CHAR_UPPERCASE_A 0X41
#define LEX_CHAR_UPPERCASE_B 0X42
#define LEX_CHAR_UPPERCASE_C 0X43
#define LEX_CHAR_UPPERCASE_D 0X44
#define LEX_CHAR_UPPERCASE_E 0X45
#define LEX_CHAR_UPPERCASE_F 0X46
#define LEX_CHAR_UPPERCASE_G 0X47
#define LEX_CHAR_UPPERCASE_H 0X48
#define LEX_CHAR_UPPERCASE_I 0X49
#define LEX_CHAR_UPPERCASE_J 0X4A
#define LEX_CHAR_UPPERCASE_K 0X4B
#define LEX_CHAR_UPPERCASE_L 0X4C
#define LEX_CHAR_UPPERCASE_M 0X4D
#define LEX_CHAR_UPPERCASE_N 0X4E
#define LEX_CHAR_UPPERCASE_O 0X4F
#define LEX_CHAR_UPPERCASE_P 0X50
#define LEX_CHAR_UPPERCASE_Q 0X51
#define LEX_CHAR_UPPERCASE_R 0X52
#define LEX_CHAR_UPPERCASE_S 0X53
#define LEX_CHAR_UPPERCASE_T 0X54
#define LEX_CHAR_UPPERCASE_U 0X55
#define LEX_CHAR_UPPERCASE_V 0X56
#define LEX_CHAR_UPPERCASE_W 0X57
#define LEX_CHAR_UPPERCASE_X 0x58
#define LEX_CHAR_UPPERCASE_Y 0x59
#define LEX_CHAR_UPPERCASE_Z 0x5A
#define LEX_CHAR_BS 0x08
#define LEX_CHAR_TAB 0x09
#define LEX_CHAR_VT 0x0B
#define LEX_CHAR_FF 0x0C
#define LEX_CHAR_SP 0x20
#define LEX_CHAR_NBSP 0xA0
#define LEX_CHAR_ZWNBSP 0xFEFF
#define LEX_CHAR_IGSP 0x3000
#define LEX_CHAR_MVS 0x180e
#define LEX_CHAR_DOUBLE_QUOTE 0x22
#define LEX_CHAR_DOLLAR_SIGN 0x24
#define LEX_CHAR_SINGLE_QUOTE 0x27
#define LEX_CHAR_DOT 0x2E
#define LEX_CHAR_NLINE 0x85
#define LEX_CHAR_0 0x30
#define LEX_CHAR_1 0x31
#define LEX_CHAR_2 0x32
#define LEX_CHAR_3 0x33
#define LEX_CHAR_4 0x34
#define LEX_CHAR_5 0x35
#define LEX_CHAR_6 0x36
#define LEX_CHAR_7 0x37
#define LEX_CHAR_8 0x38
#define LEX_CHAR_9 0x39
#define LEX_CHAR_BACKSLASH 0X5c
#define LEX_CHAR_UNDERSCORE 0x5F
#define LEX_CHAR_EXCLAMATION 0x21
#define LEX_CHAR_PERCENT 0x25
#define LEX_CHAR_AMPERSAND 0x26
#define LEX_CHAR_LEFT_PAREN 0x28
#define LEX_CHAR_RIGHT_PAREN 0x29
#define LEX_CHAR_ASTERISK 0x2A
#define LEX_CHAR_PLUS 0x2B
#define LEX_CHAR_COMMA 0x2C
#define LEX_CHAR_PLUS 0x2B
#define LEX_CHAR_MINUS 0x2D
#define LEX_CHAR_DOT 0x2E
#define LEX_CHAR_SLASH 0x2F
#define LEX_CHAR_COLON 0x3A
#define LEX_CHAR_SEMICOLON 0x3B
#define LEX_CHAR_LESS_THAN 0x3C
#define LEX_CHAR_EQUALS 0x3D
#define LEX_CHAR_GREATER_THAN 0x3E
#define LEX_CHAR_QUESTION 0x3F
#define LEX_CHAR_LEFT_SQUARE 0x5B
#define LEX_CHAR_RIGHT_SQUARE 0x5D
#define LEX_CHAR_CIRCUMFLEX 0x5E
#define LEX_CHAR_LEFT_BRACE 0x7B
#define LEX_CHAR_VLINE 0x7C
#define LEX_CHAR_RIGHT_BRACE 0x7D
#define LEX_CHAR_TILDE 0x7E
#define LEX_CHAR_BACK_TICK 0x60
#define LEX_CHAR_HASH_MARK 0x23
#define LEX_CHAR_AT 0x40
#define LEX_CHAR_ZWNJ 0x200C
#define LEX_CHAR_ZWJ 0x200D
#define LEX_VERTICAL_TILDE 0x2E2F
#define LEX_TO_ASCII_LOWERCASE(character) ((character) | LEX_CHAR_SP)
#define LEX_UTF8_2_BYTE_CODE_POINT_MIN (0x80)
#define LEX_UTF8_EXTRA_BYTE_MASK (0xC0)
#define LEX_CHAR_EOS 0xFFFF
#define UNICODE_CODE_POINT_MAX 0x10FFFF
#define UNICODE_INVALID_CP UINT32_MAX
}
#endif