13af6ab5fSopenharmony_ci/** 23af6ab5fSopenharmony_ci * Copyright (c) 2021-2022 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_IR_AST_NODE_MAPPING_H 173af6ab5fSopenharmony_ci#define ES2PANDA_IR_AST_NODE_MAPPING_H 183af6ab5fSopenharmony_ci 193af6ab5fSopenharmony_ci#define AST_NODE_MAPPING(_) \ 203af6ab5fSopenharmony_ci _(ANNOTATION, Annotation) \ 213af6ab5fSopenharmony_ci _(ARROW_FUNCTION_EXPRESSION, ArrowFunctionExpression) \ 223af6ab5fSopenharmony_ci _(ASSERT_CLAUSE, AssertClause) \ 233af6ab5fSopenharmony_ci _(ASSERT_ENTRY, AssertEntry) \ 243af6ab5fSopenharmony_ci _(AWAIT_EXPRESSION, AwaitExpression) \ 253af6ab5fSopenharmony_ci _(BIGINT_LITERAL, BigIntLiteral) \ 263af6ab5fSopenharmony_ci _(BINARY_EXPRESSION, BinaryExpression) \ 273af6ab5fSopenharmony_ci _(BLOCK_STATEMENT, BlockStatement) \ 283af6ab5fSopenharmony_ci _(BOOLEAN_LITERAL, BooleanLiteral) \ 293af6ab5fSopenharmony_ci _(BREAK_STATEMENT, BreakStatement) \ 303af6ab5fSopenharmony_ci _(CALL_EXPRESSION, CallExpression) \ 313af6ab5fSopenharmony_ci _(CATCH_CLAUSE, CatchClause) \ 323af6ab5fSopenharmony_ci _(CHAIN_EXPRESSION, ChainExpression) \ 333af6ab5fSopenharmony_ci _(CLASS_DEFINITION, ClassDefinition) \ 343af6ab5fSopenharmony_ci _(CLASS_DECLARATION, ClassDeclaration) \ 353af6ab5fSopenharmony_ci _(CLASS_EXPRESSION, ClassExpression) \ 363af6ab5fSopenharmony_ci _(CLASS_PROPERTY, ClassProperty) \ 373af6ab5fSopenharmony_ci _(CLASS_STATIC_BLOCK, ClassStaticBlock) \ 383af6ab5fSopenharmony_ci _(CONDITIONAL_EXPRESSION, ConditionalExpression) \ 393af6ab5fSopenharmony_ci _(CONTINUE_STATEMENT, ContinueStatement) \ 403af6ab5fSopenharmony_ci _(DEBUGGER_STATEMENT, DebuggerStatement) \ 413af6ab5fSopenharmony_ci _(DECORATOR, Decorator) \ 423af6ab5fSopenharmony_ci _(DO_WHILE_STATEMENT, DoWhileStatement) \ 433af6ab5fSopenharmony_ci _(EMPTY_STATEMENT, EmptyStatement) \ 443af6ab5fSopenharmony_ci _(EXPORT_ALL_DECLARATION, ExportAllDeclaration) \ 453af6ab5fSopenharmony_ci _(EXPORT_DEFAULT_DECLARATION, ExportDefaultDeclaration) \ 463af6ab5fSopenharmony_ci _(EXPORT_NAMED_DECLARATION, ExportNamedDeclaration) \ 473af6ab5fSopenharmony_ci _(EXPORT_SPECIFIER, ExportSpecifier) \ 483af6ab5fSopenharmony_ci _(EXPRESSION_STATEMENT, ExpressionStatement) \ 493af6ab5fSopenharmony_ci _(FOR_IN_STATEMENT, ForInStatement) \ 503af6ab5fSopenharmony_ci _(FOR_OF_STATEMENT, ForOfStatement) \ 513af6ab5fSopenharmony_ci _(FOR_UPDATE_STATEMENT, ForUpdateStatement) \ 523af6ab5fSopenharmony_ci _(FUNCTION_DECLARATION, FunctionDeclaration) \ 533af6ab5fSopenharmony_ci _(FUNCTION_EXPRESSION, FunctionExpression) \ 543af6ab5fSopenharmony_ci _(IDENTIFIER, Identifier) \ 553af6ab5fSopenharmony_ci _(IF_STATEMENT, IfStatement) \ 563af6ab5fSopenharmony_ci _(IMPORT_DECLARATION, ImportDeclaration) \ 573af6ab5fSopenharmony_ci _(IMPORT_EXPRESSION, ImportExpression) \ 583af6ab5fSopenharmony_ci _(IMPORT_DEFAULT_SPECIFIER, ImportDefaultSpecifier) \ 593af6ab5fSopenharmony_ci _(IMPORT_NAMESPACE_SPECIFIER, ImportNamespaceSpecifier) \ 603af6ab5fSopenharmony_ci _(IMPORT_SPECIFIER, ImportSpecifier) \ 613af6ab5fSopenharmony_ci _(LABELLED_STATEMENT, LabelledStatement) \ 623af6ab5fSopenharmony_ci _(MEMBER_EXPRESSION, MemberExpression) \ 633af6ab5fSopenharmony_ci _(META_PROPERTY_EXPRESSION, MetaProperty) \ 643af6ab5fSopenharmony_ci _(METHOD_DEFINITION, MethodDefinition) \ 653af6ab5fSopenharmony_ci _(NEW_EXPRESSION, NewExpression) \ 663af6ab5fSopenharmony_ci _(NULL_LITERAL, NullLiteral) \ 673af6ab5fSopenharmony_ci _(NUMBER_LITERAL, NumberLiteral) \ 683af6ab5fSopenharmony_ci _(OMITTED_EXPRESSION, OmittedExpression) \ 693af6ab5fSopenharmony_ci _(PRIVATE_IDENTIFIER, PrivateIdentifier) \ 703af6ab5fSopenharmony_ci _(PROPERTY, Property) \ 713af6ab5fSopenharmony_ci _(REGEXP_LITERAL, RegExpLiteral) \ 723af6ab5fSopenharmony_ci _(RETURN_STATEMENT, ReturnStatement) \ 733af6ab5fSopenharmony_ci _(SCRIPT_FUNCTION, ScriptFunction) \ 743af6ab5fSopenharmony_ci _(SEQUENCE_EXPRESSION, SequenceExpression) \ 753af6ab5fSopenharmony_ci _(STRING_LITERAL, StringLiteral) \ 763af6ab5fSopenharmony_ci _(SUPER_EXPRESSION, SuperExpression) \ 773af6ab5fSopenharmony_ci _(SWITCH_CASE_STATEMENT, SwitchCaseStatement) \ 783af6ab5fSopenharmony_ci _(SWITCH_STATEMENT, SwitchStatement) \ 793af6ab5fSopenharmony_ci _(TS_ENUM_DECLARATION, TSEnumDeclaration) \ 803af6ab5fSopenharmony_ci _(TS_ENUM_MEMBER, TSEnumMember) \ 813af6ab5fSopenharmony_ci _(TS_EXTERNAL_MODULE_REFERENCE, TSExternalModuleReference) \ 823af6ab5fSopenharmony_ci _(TS_PRIVATE_IDENTIFIER, TSPrivateIdentifier) \ 833af6ab5fSopenharmony_ci _(TS_NUMBER_KEYWORD, TSNumberKeyword) \ 843af6ab5fSopenharmony_ci _(TS_ANY_KEYWORD, TSAnyKeyword) \ 853af6ab5fSopenharmony_ci _(TS_STRING_KEYWORD, TSStringKeyword) \ 863af6ab5fSopenharmony_ci _(TS_SYMBOL_KEYWORD, TSSymbolKeyword) \ 873af6ab5fSopenharmony_ci _(TS_BOOLEAN_KEYWORD, TSBooleanKeyword) \ 883af6ab5fSopenharmony_ci _(TS_VOID_KEYWORD, TSVoidKeyword) \ 893af6ab5fSopenharmony_ci _(TS_UNDEFINED_KEYWORD, TSUndefinedKeyword) \ 903af6ab5fSopenharmony_ci _(TS_UNKNOWN_KEYWORD, TSUnknownKeyword) \ 913af6ab5fSopenharmony_ci _(TS_OBJECT_KEYWORD, TSObjectKeyword) \ 923af6ab5fSopenharmony_ci _(TS_BIGINT_KEYWORD, TSBigintKeyword) \ 933af6ab5fSopenharmony_ci _(TS_NEVER_KEYWORD, TSNeverKeyword) \ 943af6ab5fSopenharmony_ci _(TS_NON_NULL_EXPRESSION, TSNonNullExpression) \ 953af6ab5fSopenharmony_ci _(TS_NULL_KEYWORD, TSNullKeyword) \ 963af6ab5fSopenharmony_ci _(TS_OPTIONAL_TYPE, TSOptionalType) \ 973af6ab5fSopenharmony_ci _(TS_REST_TYPE, TSRestType) \ 983af6ab5fSopenharmony_ci _(TS_ARRAY_TYPE, TSArrayType) \ 993af6ab5fSopenharmony_ci _(TS_UNION_TYPE, TSUnionType) \ 1003af6ab5fSopenharmony_ci _(TS_TYPE_LITERAL, TSTypeLiteral) \ 1013af6ab5fSopenharmony_ci _(TS_PROPERTY_SIGNATURE, TSPropertySignature) \ 1023af6ab5fSopenharmony_ci _(TS_METHOD_SIGNATURE, TSMethodSignature) \ 1033af6ab5fSopenharmony_ci _(TS_SIGNATURE_DECLARATION, TSSignatureDeclaration) \ 1043af6ab5fSopenharmony_ci _(TS_PARENT_TYPE, TSParenthesizedType) \ 1053af6ab5fSopenharmony_ci _(TS_LITERAL_TYPE, TSLiteralType) \ 1063af6ab5fSopenharmony_ci _(TS_TEMPLATE_LITERAL_TYPE, TSTemplateLiteralType) \ 1073af6ab5fSopenharmony_ci _(TS_INFER_TYPE, TSInferType) \ 1083af6ab5fSopenharmony_ci _(TS_CONDITIONAL_TYPE, TSConditionalType) \ 1093af6ab5fSopenharmony_ci _(TS_IMPORT_TYPE, TSImportType) \ 1103af6ab5fSopenharmony_ci _(TS_INTERSECTION_TYPE, TSIntersectionType) \ 1113af6ab5fSopenharmony_ci _(TS_MAPPED_TYPE, TSMappedType) \ 1123af6ab5fSopenharmony_ci _(TS_MODULE_BLOCK, TSModuleBlock) \ 1133af6ab5fSopenharmony_ci _(TS_THIS_TYPE, TSThisType) \ 1143af6ab5fSopenharmony_ci _(TS_TYPE_OPERATOR, TSTypeOperator) \ 1153af6ab5fSopenharmony_ci _(TS_TYPE_PARAMETER, TSTypeParameter) \ 1163af6ab5fSopenharmony_ci _(TS_TYPE_PARAMETER_DECLARATION, TSTypeParameterDeclaration) \ 1173af6ab5fSopenharmony_ci _(TS_TYPE_PARAMETER_INSTANTIATION, TSTypeParameterInstantiation) \ 1183af6ab5fSopenharmony_ci _(TS_TYPE_PREDICATE, TSTypePredicate) \ 1193af6ab5fSopenharmony_ci _(TS_PARAMETER_PROPERTY, TSParameterProperty) \ 1203af6ab5fSopenharmony_ci _(TS_MODULE_DECLARATION, TSModuleDeclaration) \ 1213af6ab5fSopenharmony_ci _(TS_IMPORT_EQUALS_DECLARATION, TSImportEqualsDeclaration) \ 1223af6ab5fSopenharmony_ci _(TS_NAMESPACE_EXPORT_DECLARATION, TSNamespaceExportDeclaration) \ 1233af6ab5fSopenharmony_ci _(TS_FUNCTION_TYPE, TSFunctionType) \ 1243af6ab5fSopenharmony_ci _(TS_CONSTRUCTOR_TYPE, TSConstructorType) \ 1253af6ab5fSopenharmony_ci _(TS_TYPE_ALIAS_DECLARATION, TSTypeAliasDeclaration) \ 1263af6ab5fSopenharmony_ci _(TS_TYPE_REFERENCE, TSTypeReference) \ 1273af6ab5fSopenharmony_ci _(TS_QUALIFIED_NAME, TSQualifiedName) \ 1283af6ab5fSopenharmony_ci _(TS_INDEXED_ACCESS_TYPE, TSIndexedAccessType) \ 1293af6ab5fSopenharmony_ci _(TS_INTERFACE_DECLARATION, TSInterfaceDeclaration) \ 1303af6ab5fSopenharmony_ci _(TS_INTERFACE_BODY, TSInterfaceBody) \ 1313af6ab5fSopenharmony_ci _(TS_INTERFACE_HERITAGE, TSInterfaceHeritage) \ 1323af6ab5fSopenharmony_ci _(TS_TUPLE_TYPE, TSTupleType) \ 1333af6ab5fSopenharmony_ci _(TS_NAMED_TUPLE_MEMBER, TSNamedTupleMember) \ 1343af6ab5fSopenharmony_ci _(TS_INDEX_SIGNATURE, TSIndexSignature) \ 1353af6ab5fSopenharmony_ci _(TS_TYPE_QUERY, TSTypeQuery) \ 1363af6ab5fSopenharmony_ci _(TS_AS_EXPRESSION, TSAsExpression) \ 1373af6ab5fSopenharmony_ci _(TS_CLASS_IMPLEMENTS, TSClassImplements) \ 1383af6ab5fSopenharmony_ci _(TS_SATISFIES_EXPRESSION, TSSatisfiesExpression) \ 1393af6ab5fSopenharmony_ci _(TS_TYPE_ASSERTION, TSTypeAssertion) \ 1403af6ab5fSopenharmony_ci _(TAGGED_TEMPLATE_EXPRESSION, TaggedTemplateExpression) \ 1413af6ab5fSopenharmony_ci _(TAGGED_LITERAL, TaggedLiteral) \ 1423af6ab5fSopenharmony_ci _(TEMPLATE_ELEMENT, TemplateElement) \ 1433af6ab5fSopenharmony_ci _(TEMPLATE_LITERAL, TemplateLiteral) \ 1443af6ab5fSopenharmony_ci _(THIS_EXPRESSION, ThisExpression) \ 1453af6ab5fSopenharmony_ci _(TYPE_ARGUMENTS_EXPRESSION, TypeArgumentsExpression) \ 1463af6ab5fSopenharmony_ci _(THROW_STATEMENT, ThrowStatement) \ 1473af6ab5fSopenharmony_ci _(TRY_STATEMENT, TryStatement) \ 1483af6ab5fSopenharmony_ci _(UNARY_EXPRESSION, UnaryExpression) \ 1493af6ab5fSopenharmony_ci _(UPDATE_EXPRESSION, UpdateExpression) \ 1503af6ab5fSopenharmony_ci _(VARIABLE_DECLARATION, VariableDeclaration) \ 1513af6ab5fSopenharmony_ci _(VARIABLE_DECLARATOR, VariableDeclarator) \ 1523af6ab5fSopenharmony_ci _(WHILE_STATEMENT, WhileStatement) \ 1533af6ab5fSopenharmony_ci _(WITH_STATEMENT, WithStatement) \ 1543af6ab5fSopenharmony_ci _(YIELD_EXPRESSION, YieldExpression) 1553af6ab5fSopenharmony_ci 1563af6ab5fSopenharmony_ci#define AST_NODE_REINTERPRET_MAPPING(_) \ 1573af6ab5fSopenharmony_ci _(ARRAY_EXPRESSION, ARRAY_PATTERN, ArrayExpression, ArrayPattern) \ 1583af6ab5fSopenharmony_ci _(ASSIGNMENT_EXPRESSION, ASSIGNMENT_PATTERN, AssignmentExpression, AssignmentPattern) \ 1593af6ab5fSopenharmony_ci _(OBJECT_EXPRESSION, OBJECT_PATTERN, ObjectExpression, ObjectPattern) \ 1603af6ab5fSopenharmony_ci _(SPREAD_ELEMENT, REST_ELEMENT, SpreadElement, RestElement) 1613af6ab5fSopenharmony_ci 1623af6ab5fSopenharmony_ci#endif 163