• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright (c) 2021-2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef ES2PANDA_COMPILER_CHECKER_TYPES_TYPE_MAPPING_H
17 #define ES2PANDA_COMPILER_CHECKER_TYPES_TYPE_MAPPING_H
18 
19 #include "typeFlag.h"
20 
21 // NOLINTBEGIN(cppcoreguidelines-macro-usage)
22 #define TYPE_MAPPING(_)                                                \
23     _(TypeFlag::ARRAY, ArrayType)                                      \
24     _(TypeFlag::ANY, AnyType)                                          \
25     _(TypeFlag::BIGINT_LITERAL, BigintLiteralType)                     \
26     _(TypeFlag::NUMBER, NumberType)                                    \
27     _(TypeFlag::STRING, StringType)                                    \
28     _(TypeFlag::BOOLEAN, BooleanType)                                  \
29     _(TypeFlag::VOID, VoidType)                                        \
30     _(TypeFlag::NULL_TYPE, NullType)                                   \
31     _(TypeFlag::UNDEFINED, UndefinedType)                              \
32     _(TypeFlag::UNKNOWN, UnknownType)                                  \
33     _(TypeFlag::NEVER, NeverType)                                      \
34     _(TypeFlag::UNION, UnionType)                                      \
35     _(TypeFlag::OBJECT, ObjectType)                                    \
36     _(TypeFlag::BIGINT, BigintType)                                    \
37     _(TypeFlag::BOOLEAN_LITERAL, BooleanLiteralType)                   \
38     _(TypeFlag::NUMBER_LITERAL, NumberLiteralType)                     \
39     _(TypeFlag::STRING_LITERAL, StringLiteralType)                     \
40     _(TypeFlag::ENUM, EnumType)                                        \
41     _(TypeFlag::ENUM_LITERAL, EnumLiteralType)                         \
42     _(TypeFlag::TYPE_PARAMETER, TypeParameter)                         \
43     _(TypeFlag::TYPE_REFERENCE, TypeReference)                         \
44     _(TypeFlag::BYTE, ByteType)                                        \
45     _(TypeFlag::SHORT, ShortType)                                      \
46     _(TypeFlag::INT, IntType)                                          \
47     _(TypeFlag::LONG, LongType)                                        \
48     _(TypeFlag::FLOAT, FloatType)                                      \
49     _(TypeFlag::DOUBLE, DoubleType)                                    \
50     _(TypeFlag::CHAR, CharType)                                        \
51     _(TypeFlag::ETS_BOOLEAN, ETSBooleanType)                           \
52     _(TypeFlag::ETS_VOID, ETSVoidType)                                 \
53     _(TypeFlag::ETS_NULL, ETSNullType)                                 \
54     _(TypeFlag::ETS_UNDEFINED, ETSUndefinedType)                       \
55     _(TypeFlag::FUNCTION, ETSFunctionType)                             \
56     _(TypeFlag::ETS_OBJECT, ETSObjectType)                             \
57     _(TypeFlag::ETS_ARRAY, ETSArrayType)                               \
58     _(TypeFlag::ETS_UNION, ETSUnionType)                               \
59     _(TypeFlag::NON_PRIMITIVE, NonPrimitiveType)                       \
60     _(TypeFlag::WILDCARD, WildcardType)                                \
61     _(TypeFlag::ETS_TYPE_PARAMETER, ETSTypeParameter)                  \
62     _(TypeFlag::ETS_NONNULLISH, ETSNonNullishType)                     \
63     _(TypeFlag::ETS_READONLY, ETSReadonlyType)                         \
64     _(TypeFlag::ETS_INT_ENUM, ETSIntEnumType)                          \
65     _(TypeFlag::ETS_STRING_ENUM, ETSStringEnumType)                    \
66     _(TypeFlag::ETS_EXTENSION_FUNC_HELPER, ETSExtensionFuncHelperType) \
67     _(TypeFlag::ETS_TUPLE, ETSTupleType)                               \
68     _(TypeFlag::TYPE_ERROR, TypeError)
69 
70 #define OBJECT_TYPE_MAPPING(_)                                \
71     _(ObjectType::ObjectTypeKind::FUNCTION, FunctionType)     \
72     _(ObjectType::ObjectTypeKind::TUPLE, TupleType)           \
73     _(ObjectType::ObjectTypeKind::LITERAL, ObjectLiteralType) \
74     _(ObjectType::ObjectTypeKind::INTERFACE, InterfaceType)
75 // NOLINTEND(cppcoreguidelines-macro-usage)
76 
77 #endif /* TYPE_MAPPING_H */
78