• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-2025 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6# http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14if ((defined(ark_standalone_build) && ark_standalone_build) ||
15    (defined(ark_static_standalone_build) && ark_static_standalone_build)) {
16  import("//arkcompiler/runtime_core/static_core/ark_config.gni")
17} else {
18  import(
19      "//build/config/components/runtime_core/static_core/ark_common_config.gni")
20}
21
22if (ark_standalone_build) {
23  import("$build_root/ark.gni")
24} else {
25  import("//build/ohos.gni")
26}
27
28config("libes2panda_public_config") {
29  include_dirs = [
30    "$target_gen_dir",
31    "$target_gen_dir/include",
32    "$ark_es2panda_root",
33  ]
34  if (ark_standalone_build || ark_static_standalone_build) {
35    include_dirs += [
36      "$target_gen_dir/generated",
37      "//third_party/icu/icu4c/source/common",
38      "//third_party/icu/icu4c/source/i18n",
39      "//third_party/icu/icu4c/source",
40    ]
41  }
42}
43
44libes2panda_sources = [
45  "ast_verifier/ASTVerifier.cpp",
46  "ast_verifier/helpers.cpp",
47  "ast_verifier/invariants/arithmeticOperationValid.cpp",
48  "ast_verifier/invariants/checkAbstractMethod.cpp",
49  "ast_verifier/invariants/checkConstProperties.cpp",
50  "ast_verifier/invariants/checkScopeDeclaration.cpp",
51  "ast_verifier/invariants/checkStructDeclaration.cpp",
52  "ast_verifier/invariants/everyChildHasValidParent.cpp",
53  "ast_verifier/invariants/everyChildInParentRange.cpp",
54  "ast_verifier/invariants/forLoopCorrectlyInitialized.cpp",
55  "ast_verifier/invariants/getterSetterValidation.cpp",
56  "ast_verifier/invariants/identifierHasVariable.cpp",
57  "ast_verifier/invariants/importExportAccessValid.cpp",
58  "ast_verifier/invariants/modifierAccessValid.cpp",
59  "ast_verifier/invariants/nodeHasParent.cpp",
60  "ast_verifier/invariants/nodeHasSourceRange.cpp",
61  "ast_verifier/invariants/nodeHasType.cpp",
62  "ast_verifier/invariants/referenceTypeAnnotationIsNull.cpp",
63  "ast_verifier/invariants/sequenceExpressionHasLastType.cpp",
64  "ast_verifier/invariants/variableHasEnclosingScope.cpp",
65  "ast_verifier/invariants/variableHasScope.cpp",
66  "ast_verifier/invariants/variableNameIdentifierNameSame.cpp",
67  "checker/ASchecker.cpp",
68  "checker/ETSAnalyzer.cpp",
69  "checker/ETSAnalyzerHelpers.cpp",
70  "checker/ETSAnalyzerUnreachable.cpp",
71  "checker/ETSchecker.cpp",
72  "checker/IsolatedDeclgenChecker.cpp",
73  "checker/JSchecker.cpp",
74  "checker/TSAnalyzer.cpp",
75  "checker/TSAnalyzerUnreachable.cpp",
76  "checker/TSchecker.cpp",
77  "checker/checker.cpp",
78  "checker/checkerContext.cpp",
79  "checker/ets/aliveAnalyzer.cpp",
80  "checker/ets/arithmetic.cpp",
81  "checker/ets/assignAnalyzer.cpp",
82  "checker/ets/baseAnalyzer.cpp",
83  "checker/ets/boxingConverter.cpp",
84  "checker/ets/castingContext.cpp",
85  "checker/ets/conversion.cpp",
86  "checker/ets/dynamic.cpp",
87  "checker/ets/dynamic/dynamicCall.cpp",
88  "checker/ets/etsWarningAnalyzer.cpp",
89  "checker/ets/function.cpp",
90  "checker/ets/helpers.cpp",
91  "checker/ets/narrowingConverter.cpp",
92  "checker/ets/narrowingWideningConverter.cpp",
93  "checker/ets/object.cpp",
94  "checker/ets/typeCheckingHelpers.cpp",
95  "checker/ets/typeConverter.cpp",
96  "checker/ets/typeCreation.cpp",
97  "checker/ets/typeRelationContext.cpp",
98  "checker/ets/unboxingConverter.cpp",
99  "checker/ets/utilityTypeHandlers.cpp",
100  "checker/ets/validateHelpers.cpp",
101  "checker/ets/wideningConverter.cpp",
102  "checker/ts/binaryLikeExpression.cpp",
103  "checker/ts/destructuringContext.cpp",
104  "checker/ts/function.cpp",
105  "checker/ts/helpers.cpp",
106  "checker/ts/object.cpp",
107  "checker/ts/typeCreation.cpp",
108  "checker/ts/typeElaborationContext.cpp",
109  "checker/ts/util.cpp",
110  "checker/typeChecker/TypeChecker.cpp",
111  "checker/types/ets/byteType.cpp",
112  "checker/types/ets/charType.cpp",
113  "checker/types/ets/doubleType.cpp",
114  "checker/types/ets/etsAnyType.cpp",
115  "checker/types/ets/etsArrayType.cpp",
116  "checker/types/ets/etsAsyncFuncReturnType.cpp",
117  "checker/types/ets/etsBigIntType.cpp",
118  "checker/types/ets/etsBooleanType.cpp",
119  "checker/types/ets/etsDynamicType.cpp",
120  "checker/types/ets/etsEnumType.cpp",
121  "checker/types/ets/etsExtensionFuncHelperType.cpp",
122  "checker/types/ets/etsFunctionType.cpp",
123  "checker/types/ets/etsNeverType.cpp",
124  "checker/types/ets/etsNonNullishType.cpp",
125  "checker/types/ets/etsNullishTypes.cpp",
126  "checker/types/ets/etsObjectType.cpp",
127  "checker/types/ets/etsPartialTypeParameter.cpp",
128  "checker/types/ets/etsReadonlyType.cpp",
129  "checker/types/ets/etsResizableArrayType.cpp",
130  "checker/types/ets/etsStringType.cpp",
131  "checker/types/ets/etsTupleType.cpp",
132  "checker/types/ets/etsTypeAliasType.cpp",
133  "checker/types/ets/etsTypeParameter.cpp",
134  "checker/types/ets/etsUnionType.cpp",
135  "checker/types/ets/etsVoidType.cpp",
136  "checker/types/ets/floatType.cpp",
137  "checker/types/ets/intType.cpp",
138  "checker/types/ets/longType.cpp",
139  "checker/types/ets/shortType.cpp",
140  "checker/types/ets/wildcardType.cpp",
141  "checker/types/globalTypesHolder.cpp",
142  "checker/types/signature.cpp",
143  "checker/types/ts/anyType.cpp",
144  "checker/types/ts/arrayType.cpp",
145  "checker/types/ts/bigintLiteralType.cpp",
146  "checker/types/ts/bigintType.cpp",
147  "checker/types/ts/booleanLiteralType.cpp",
148  "checker/types/ts/booleanType.cpp",
149  "checker/types/ts/constructorType.cpp",
150  "checker/types/ts/enumLiteralType.cpp",
151  "checker/types/ts/enumType.cpp",
152  "checker/types/ts/functionType.cpp",
153  "checker/types/ts/indexInfo.cpp",
154  "checker/types/ts/interfaceType.cpp",
155  "checker/types/ts/neverType.cpp",
156  "checker/types/ts/nonPrimitiveType.cpp",
157  "checker/types/ts/nullType.cpp",
158  "checker/types/ts/numberLiteralType.cpp",
159  "checker/types/ts/numberType.cpp",
160  "checker/types/ts/objectDescriptor.cpp",
161  "checker/types/ts/objectLiteralType.cpp",
162  "checker/types/ts/objectType.cpp",
163  "checker/types/ts/stringLiteralType.cpp",
164  "checker/types/ts/stringType.cpp",
165  "checker/types/ts/tupleType.cpp",
166  "checker/types/ts/typeParameter.cpp",
167  "checker/types/ts/typeReference.cpp",
168  "checker/types/ts/undefinedType.cpp",
169  "checker/types/ts/unionType.cpp",
170  "checker/types/ts/unknownType.cpp",
171  "checker/types/ts/voidType.cpp",
172  "checker/types/type.cpp",
173  "checker/types/typeRelation.cpp",
174  "compiler/base/catchTable.cpp",
175  "compiler/base/condition.cpp",
176  "compiler/base/destructuring.cpp",
177  "compiler/base/hoisting.cpp",
178  "compiler/base/iterators.cpp",
179  "compiler/base/lexenv.cpp",
180  "compiler/base/literals.cpp",
181  "compiler/base/lreference.cpp",
182  "compiler/base/optionalChain.cpp",
183  "compiler/core/CFG.cpp",
184  "compiler/core/ETSCompiler.cpp",
185  "compiler/core/ETSCompilerUnrechable.cpp",
186  "compiler/core/ETSGen.cpp",
187  "compiler/core/ETSemitter.cpp",
188  "compiler/core/ETSfunction.cpp",
189  "compiler/core/JSCompiler.cpp",
190  "compiler/core/JSCompilerUnreachable.cpp",
191  "compiler/core/JSemitter.cpp",
192  "compiler/core/codeGen.cpp",
193  "compiler/core/compileJob.cpp",
194  "compiler/core/compileQueue.cpp",
195  "compiler/core/compilerImpl.cpp",
196  "compiler/core/dynamicContext.cpp",
197  "compiler/core/emitter.cpp",
198  "compiler/core/envScope.cpp",
199  "compiler/core/function.cpp",
200  "compiler/core/labelTarget.cpp",
201  "compiler/core/moduleContext.cpp",
202  "compiler/core/pandagen.cpp",
203  "compiler/core/programElement.cpp",
204  "compiler/core/regAllocator.cpp",
205  "compiler/core/regScope.cpp",
206  "compiler/core/regSpiller.cpp",
207  "compiler/core/switchBuilder.cpp",
208  "compiler/core/targetTypeContext.cpp",
209  "compiler/core/vReg.cpp",
210  "compiler/debugger/debuginfoDumper.cpp",
211  "compiler/function/asyncFunctionBuilder.cpp",
212  "compiler/function/asyncGeneratorFunctionBuilder.cpp",
213  "compiler/function/functionBuilder.cpp",
214  "compiler/function/generatorFunctionBuilder.cpp",
215  "compiler/lowering/checkerPhase.cpp",
216  "compiler/lowering/ets/ambientLowering.cpp",
217  "compiler/lowering/ets/arrayLiteralLowering.cpp",
218  "compiler/lowering/ets/asyncMethodLowering.cpp",
219  "compiler/lowering/ets/bigintLowering.cpp",
220  "compiler/lowering/ets/boxedTypeLowering.cpp",
221  "compiler/lowering/ets/boxingForLocals.cpp",
222  "compiler/lowering/ets/capturedVariables.cpp",
223  "compiler/lowering/ets/cfgBuilderPhase.cpp",
224  "compiler/lowering/ets/constantExpressionLowering.cpp",
225  "compiler/lowering/ets/convertPrimitiveCastMethodCall.cpp",
226  "compiler/lowering/ets/declareOverloadLowering.cpp",
227  "compiler/lowering/ets/defaultParametersInConstructorLowering.cpp",
228  "compiler/lowering/ets/defaultParametersLowering.cpp",
229  "compiler/lowering/ets/dynamicImportLowering.cpp",
230  "compiler/lowering/ets/enumLowering.cpp",
231  "compiler/lowering/ets/enumPostCheckLowering.cpp",
232  "compiler/lowering/ets/expandBrackets.cpp",
233  "compiler/lowering/ets/exportAnonymousConst.cpp",
234  "compiler/lowering/ets/expressionLambdaLowering.cpp",
235  "compiler/lowering/ets/extensionAccessorLowering.cpp",
236  "compiler/lowering/ets/genericBridgesLowering.cpp",
237  "compiler/lowering/ets/insertOptionalParametersAnnotation.cpp",
238  "compiler/lowering/ets/interfaceObjectLiteralLowering.cpp",
239  "compiler/lowering/ets/interfacePropertyDeclarations.cpp",
240  "compiler/lowering/ets/lambdaLowering.cpp",
241  "compiler/lowering/ets/lateInitialization.cpp",
242  "compiler/lowering/ets/objectIndexAccess.cpp",
243  "compiler/lowering/ets/objectIterator.cpp",
244  "compiler/lowering/ets/objectLiteralLowering.cpp",
245  "compiler/lowering/ets/opAssignment.cpp",
246  "compiler/lowering/ets/optionalArgumentsLowering.cpp",
247  "compiler/lowering/ets/optionalLowering.cpp",
248  "compiler/lowering/ets/packageImplicitImport.cpp",
249  "compiler/lowering/ets/partialExportClassGen.cpp",
250  "compiler/lowering/ets/promiseVoid.cpp",
251  "compiler/lowering/ets/recordLowering.cpp",
252  "compiler/lowering/ets/resizableArrayLowering.cpp",
253  "compiler/lowering/ets/restArgsLowering.cpp",
254  "compiler/lowering/ets/restTupleLowering.cpp",
255  "compiler/lowering/ets/setJumpTarget.cpp",
256  "compiler/lowering/ets/spreadLowering.cpp",
257  "compiler/lowering/ets/stringComparison.cpp",
258  "compiler/lowering/ets/stringConstantsLowering.cpp",
259  "compiler/lowering/ets/stringConstructorLowering.cpp",
260  "compiler/lowering/ets/topLevelStmts/globalClassHandler.cpp",
261  "compiler/lowering/ets/topLevelStmts/globalDeclTransformer.cpp",
262  "compiler/lowering/ets/topLevelStmts/importExportDecls.cpp",
263  "compiler/lowering/ets/topLevelStmts/topLevelStmts.cpp",
264  "compiler/lowering/ets/typeFromLowering.cpp",
265  "compiler/lowering/ets/unionLowering.cpp",
266  "compiler/lowering/phase.cpp",
267  "compiler/lowering/plugin_phase.cpp",
268  "compiler/lowering/resolveIdentifiers.cpp",
269  "compiler/lowering/scopesInit/savedBindingsCtx.cpp",
270  "compiler/lowering/scopesInit/scopesInitPhase.cpp",
271  "compiler/lowering/util.cpp",
272  "es2panda.cpp",
273  "evaluate/debugInfoDeserialization/classBuilder.cpp",
274  "evaluate/debugInfoDeserialization/debugInfoDeserializer.cpp",
275  "evaluate/debugInfoDeserialization/inheritanceResolution.cpp",
276  "evaluate/debugInfoDeserialization/methodBuilder.cpp",
277  "evaluate/debugInfoStorage.cpp",
278  "evaluate/entityDeclarator.cpp",
279  "evaluate/evaluateContext.cpp",
280  "evaluate/helpers.cpp",
281  "evaluate/irCheckHelper.cpp",
282  "evaluate/pathResolver.cpp",
283  "evaluate/proxyProgramsCache.cpp",
284  "evaluate/scopedDebugInfoPlugin.cpp",
285  "ir/as/namedType.cpp",
286  "ir/as/prefixAssertionExpression.cpp",
287  "ir/astDump.cpp",
288  "ir/astNode.cpp",
289  "ir/astNodeHistory.cpp",
290  "ir/base/catchClause.cpp",
291  "ir/base/classDefinition.cpp",
292  "ir/base/classElement.cpp",
293  "ir/base/classProperty.cpp",
294  "ir/base/classStaticBlock.cpp",
295  "ir/base/decorator.cpp",
296  "ir/base/metaProperty.cpp",
297  "ir/base/methodDefinition.cpp",
298  "ir/base/property.cpp",
299  "ir/base/scriptFunction.cpp",
300  "ir/base/scriptFunctionSignature.cpp",
301  "ir/base/spreadElement.cpp",
302  "ir/base/templateElement.cpp",
303  "ir/base/tsIndexSignature.cpp",
304  "ir/base/tsMethodSignature.cpp",
305  "ir/base/tsPropertySignature.cpp",
306  "ir/base/tsSignatureDeclaration.cpp",
307  "ir/brokenTypeNode.cpp",
308  "ir/ets/etsClassLiteral.cpp",
309  "ir/ets/etsFunctionType.cpp",
310  "ir/ets/etsKeyofType.cpp",
311  "ir/ets/etsModule.cpp",
312  "ir/ets/etsNeverType.cpp",
313  "ir/ets/etsNewArrayInstanceExpression.cpp",
314  "ir/ets/etsNewClassInstanceExpression.cpp",
315  "ir/ets/etsNewMultiDimArrayInstanceExpression.cpp",
316  "ir/ets/etsNonNullishTypeNode.cpp",
317  "ir/ets/etsNullishTypes.cpp",
318  "ir/ets/etsPackageDeclaration.cpp",
319  "ir/ets/etsParameterExpression.cpp",
320  "ir/ets/etsPrimitiveType.cpp",
321  "ir/ets/etsReExportDeclaration.cpp",
322  "ir/ets/etsStringLiteralType.cpp",
323  "ir/ets/etsStructDeclaration.cpp",
324  "ir/ets/etsTuple.cpp",
325  "ir/ets/etsTypeReference.cpp",
326  "ir/ets/etsTypeReferencePart.cpp",
327  "ir/ets/etsUnionType.cpp",
328  "ir/ets/etsWildcardType.cpp",
329  "ir/expression.cpp",
330  "ir/expressions/arrayExpression.cpp",
331  "ir/expressions/arrowFunctionExpression.cpp",
332  "ir/expressions/assignmentExpression.cpp",
333  "ir/expressions/awaitExpression.cpp",
334  "ir/expressions/binaryExpression.cpp",
335  "ir/expressions/blockExpression.cpp",
336  "ir/expressions/callExpression.cpp",
337  "ir/expressions/chainExpression.cpp",
338  "ir/expressions/classExpression.cpp",
339  "ir/expressions/conditionalExpression.cpp",
340  "ir/expressions/directEvalExpression.cpp",
341  "ir/expressions/dummyNode.cpp",
342  "ir/expressions/functionExpression.cpp",
343  "ir/expressions/identifier.cpp",
344  "ir/expressions/importExpression.cpp",
345  "ir/expressions/literal.cpp",
346  "ir/expressions/literals/bigIntLiteral.cpp",
347  "ir/expressions/literals/booleanLiteral.cpp",
348  "ir/expressions/literals/charLiteral.cpp",
349  "ir/expressions/literals/nullLiteral.cpp",
350  "ir/expressions/literals/numberLiteral.cpp",
351  "ir/expressions/literals/regExpLiteral.cpp",
352  "ir/expressions/literals/stringLiteral.cpp",
353  "ir/expressions/literals/undefinedLiteral.cpp",
354  "ir/expressions/memberExpression.cpp",
355  "ir/expressions/newExpression.cpp",
356  "ir/expressions/objectExpression.cpp",
357  "ir/expressions/omittedExpression.cpp",
358  "ir/expressions/sequenceExpression.cpp",
359  "ir/expressions/superExpression.cpp",
360  "ir/expressions/taggedTemplateExpression.cpp",
361  "ir/expressions/templateLiteral.cpp",
362  "ir/expressions/thisExpression.cpp",
363  "ir/expressions/typeofExpression.cpp",
364  "ir/expressions/unaryExpression.cpp",
365  "ir/expressions/updateExpression.cpp",
366  "ir/expressions/yieldExpression.cpp",
367  "ir/irnode.cpp",
368  "ir/module/exportAllDeclaration.cpp",
369  "ir/module/exportDefaultDeclaration.cpp",
370  "ir/module/exportNamedDeclaration.cpp",
371  "ir/module/exportSpecifier.cpp",
372  "ir/module/importDeclaration.cpp",
373  "ir/module/importDefaultSpecifier.cpp",
374  "ir/module/importNamespaceSpecifier.cpp",
375  "ir/module/importSpecifier.cpp",
376  "ir/opaqueTypeNode.cpp",
377  "ir/srcDump.cpp",
378  "ir/statement.cpp",
379  "ir/statements/annotationDeclaration.cpp",
380  "ir/statements/annotationUsage.cpp",
381  "ir/statements/assertStatement.cpp",
382  "ir/statements/blockStatement.cpp",
383  "ir/statements/breakStatement.cpp",
384  "ir/statements/classDeclaration.cpp",
385  "ir/statements/continueStatement.cpp",
386  "ir/statements/debuggerStatement.cpp",
387  "ir/statements/doWhileStatement.cpp",
388  "ir/statements/emptyStatement.cpp",
389  "ir/statements/expressionStatement.cpp",
390  "ir/statements/forInStatement.cpp",
391  "ir/statements/forOfStatement.cpp",
392  "ir/statements/forUpdateStatement.cpp",
393  "ir/statements/functionDeclaration.cpp",
394  "ir/statements/ifStatement.cpp",
395  "ir/statements/labelledStatement.cpp",
396  "ir/statements/loopStatement.cpp",
397  "ir/statements/returnStatement.cpp",
398  "ir/statements/switchCaseStatement.cpp",
399  "ir/statements/switchStatement.cpp",
400  "ir/statements/throwStatement.cpp",
401  "ir/statements/tryStatement.cpp",
402  "ir/statements/variableDeclaration.cpp",
403  "ir/statements/variableDeclarator.cpp",
404  "ir/statements/whileStatement.cpp",
405  "ir/ts/tsAnyKeyword.cpp",
406  "ir/ts/tsArrayType.cpp",
407  "ir/ts/tsAsExpression.cpp",
408  "ir/ts/tsBigintKeyword.cpp",
409  "ir/ts/tsBooleanKeyword.cpp",
410  "ir/ts/tsClassImplements.cpp",
411  "ir/ts/tsConditionalType.cpp",
412  "ir/ts/tsConstructorType.cpp",
413  "ir/ts/tsEnumDeclaration.cpp",
414  "ir/ts/tsEnumMember.cpp",
415  "ir/ts/tsExternalModuleReference.cpp",
416  "ir/ts/tsFunctionType.cpp",
417  "ir/ts/tsImportEqualsDeclaration.cpp",
418  "ir/ts/tsImportType.cpp",
419  "ir/ts/tsIndexedAccessType.cpp",
420  "ir/ts/tsInferType.cpp",
421  "ir/ts/tsInterfaceBody.cpp",
422  "ir/ts/tsInterfaceDeclaration.cpp",
423  "ir/ts/tsInterfaceHeritage.cpp",
424  "ir/ts/tsIntersectionType.cpp",
425  "ir/ts/tsLiteralType.cpp",
426  "ir/ts/tsMappedType.cpp",
427  "ir/ts/tsModuleBlock.cpp",
428  "ir/ts/tsModuleDeclaration.cpp",
429  "ir/ts/tsNamedTupleMember.cpp",
430  "ir/ts/tsNeverKeyword.cpp",
431  "ir/ts/tsNonNullExpression.cpp",
432  "ir/ts/tsNullKeyword.cpp",
433  "ir/ts/tsNumberKeyword.cpp",
434  "ir/ts/tsObjectKeyword.cpp",
435  "ir/ts/tsParameterProperty.cpp",
436  "ir/ts/tsParenthesizedType.cpp",
437  "ir/ts/tsQualifiedName.cpp",
438  "ir/ts/tsStringKeyword.cpp",
439  "ir/ts/tsThisType.cpp",
440  "ir/ts/tsTupleType.cpp",
441  "ir/ts/tsTypeAliasDeclaration.cpp",
442  "ir/ts/tsTypeAssertion.cpp",
443  "ir/ts/tsTypeLiteral.cpp",
444  "ir/ts/tsTypeOperator.cpp",
445  "ir/ts/tsTypeParameter.cpp",
446  "ir/ts/tsTypeParameterDeclaration.cpp",
447  "ir/ts/tsTypeParameterInstantiation.cpp",
448  "ir/ts/tsTypePredicate.cpp",
449  "ir/ts/tsTypeQuery.cpp",
450  "ir/ts/tsTypeReference.cpp",
451  "ir/ts/tsUndefinedKeyword.cpp",
452  "ir/ts/tsUnionType.cpp",
453  "ir/ts/tsUnknownKeyword.cpp",
454  "ir/ts/tsVoidKeyword.cpp",
455  "ir/typeNode.cpp",
456  "lexer/ASLexer.cpp",
457  "lexer/ETSLexer.cpp",
458  "lexer/TSLexer.cpp",
459  "lexer/keywords.cpp",
460  "lexer/keywordsUtil.cpp",
461  "lexer/lexer.cpp",
462  "lexer/regexp/regexp.cpp",
463  "lexer/token/number.cpp",
464  "lexer/token/sourceLocation.cpp",
465  "lexer/token/token.cpp",
466  "parser/ASparser.cpp",
467  "parser/ETSFormattedParser.cpp",
468  "parser/ETSNolintParser.cpp",
469  "parser/ETSparser.cpp",
470  "parser/ETSparserAnnotations.cpp",
471  "parser/ETSparserClasses.cpp",
472  "parser/ETSparserEnums.cpp",
473  "parser/ETSparserExpressions.cpp",
474  "parser/ETSparserJsDocInfo.cpp",
475  "parser/ETSparserNamespaces.cpp",
476  "parser/ETSparserStatements.cpp",
477  "parser/ETSparserTypes.cpp",
478  "parser/JSparser.cpp",
479  "parser/TSparser.cpp",
480  "parser/ThrowingTypedParser.cpp",
481  "parser/TypedParser.cpp",
482  "parser/context/classPrivateContext.cpp",
483  "parser/context/parserContext.cpp",
484  "parser/expressionParser.cpp",
485  "parser/expressionTSParser.cpp",
486  "parser/parserImpl.cpp",
487  "parser/program/entityNameVisitor.cpp",
488  "parser/program/program.cpp",
489  "parser/statementParser.cpp",
490  "parser/statementTSParser.cpp",
491  "util/arktsconfig.cpp",
492  "util/bitset.cpp",
493  "util/diagnostic.cpp",
494  "util/diagnosticEngine.cpp",
495  "util/dtoa_helper.cpp",
496  "util/errorRecovery.cpp",
497  "util/es2pandaMacros.cpp",
498  "util/helpers.cpp",
499  "util/importPathManager.cpp",
500  "util/path.cpp",
501  "util/plugin.cpp",
502  "util/ustring.cpp",
503  "varbinder/ASBinder.cpp",
504  "varbinder/ETSBinder.cpp",
505  "varbinder/JSBinder.cpp",
506  "varbinder/TSBinder.cpp",
507  "varbinder/TypedBinder.cpp",
508  "varbinder/declaration.cpp",
509  "varbinder/recordTable.cpp",
510  "varbinder/scope.cpp",
511  "varbinder/varbinder.cpp",
512  "varbinder/variable.cpp",
513]
514
515LIB_NAME = "es2panda_lib"
516LIBGEN_DIR = "$target_gen_dir/generated/${LIB_NAME}"
517RB_LIST = []
518
519HEADERS_TO_BE_PARSED = [
520  "varbinder/variableFlags.h",
521  "lexer/regexp/regexp.h",
522  "util/language.h",
523  "ir/astNodeFlags.h",
524  "ir/astNodeMapping.h",
525  "ir/module/exportDefaultDeclaration.h",
526  "ir/statements/forInStatement.h",
527  "checker/types/ts/voidType.h",
528  "ir/expressions/classExpression.h",
529  "ir/ts/tsConditionalType.h",
530  "ir/expressions/templateLiteral.h",
531  "ir/statements/breakStatement.h",
532  "ir/ets/etsImportDeclaration.h",
533  "ir/ts/tsArrayType.h",
534  "checker/types/ts/numberType.h",
535  "ir/module/importDefaultSpecifier.h",
536  "checker/types/ets/etsFunctionType.h",
537  "ir/base/classDefinition.h",
538  "checker/types/ts/typeParameter.h",
539  "checker/types/ets/etsEnumType.h",
540  "ir/statement.h",
541  "ir/irnode.h",
542  "checker/types/typeRelation.h",
543  "ir/visitor/AstVisitor.h",
544  "ir/statements/classDeclaration.h",
545  "ir/base/tsMethodSignature.h",
546  "ir/ts/tsExternalModuleReference.h",
547  "ir/ts/tsInterfaceBody.h",
548  "checker/types/ts/nonPrimitiveType.h",
549  "ir/ts/tsTypeParameterInstantiation.h",
550  "ir/module/importDeclaration.h",
551  "checker/types/ets/etsDynamicType.h",
552  "ir/statements/doWhileStatement.h",
553  "ir/expressions/literals/bigIntLiteral.h",
554  "ir/expressions/assignmentExpression.h",
555  "ir/srcDump.h",
556  "checker/types/ets/etsBooleanType.h",
557  "ir/expressions/sequenceExpression.h",
558  "ir/expressions/literals/nullLiteral.h",
559  "ir/ts/tsStringKeyword.h",
560  "ir/ts/tsUnionType.h",
561  "ir/ts/tsClassImplements.h",
562  "checker/types/typeFlag.h",
563  "ir/base/tsPropertySignature.h",
564  "checker/types/ts/stringLiteralType.h",
565  "ir/expressions/conditionalExpression.h",
566  "ir/ts/tsFunctionType.h",
567  "checker/types/ts/undefinedType.h",
568  "checker/types/ts/numberLiteralType.h",
569  "ir/ts/tsObjectKeyword.h",
570  "checker/types/ts/tupleType.h",
571  "checker/types/ets/etsStringType.h",
572  "ir/base/property.h",
573  "ir/astDump.h",
574  "ir/base/tsSignatureDeclaration.h",
575  "ir/ets/etsReExportDeclaration.h",
576  "ir/ts/tsUndefinedKeyword.h",
577  "ir/expressions/arrowFunctionExpression.h",
578  "ir/expressions/callExpression.h",
579  "ir/ts/tsInterfaceHeritage.h",
580  "ir/expressions/updateExpression.h",
581  "ir/module/importSpecifier.h",
582  "ir/ets/etsNewClassInstanceExpression.h",
583  "ir/statements/labelledStatement.h",
584  "ir/ts/tsModuleBlock.h",
585  "ir/ts/tsTypePredicate.h",
586  "ir/base/catchClause.h",
587  "ir/base/classProperty.h",
588  "ir/base/tsIndexSignature.h",
589  "checker/types/ts/arrayType.h",
590  "ir/astNode.h",
591  "ir/typed.h",
592  "ir/statements/ifStatement.h",
593  "ir/ets/etsTuple.h",
594  "ir/ets/etsStringLiteralType.h",
595  "ir/module/exportSpecifier.h",
596  "ir/ts/tsNamedTupleMember.h",
597  "ir/statements/returnStatement.h",
598  "checker/types/ts/neverType.h",
599  "checker/types/ts/unionType.h",
600  "ir/statements/tryStatement.h",
601  "ir/ts/tsQualifiedName.h",
602  "checker/types/ts/types.h",
603  "ir/ts/tsLiteralType.h",
604  "checker/types/typeMapping.h",
605  "checker/types/ets/etsBigIntType.h",
606  "ir/expressions/arrayExpression.h",
607  "ir/ets/etsUnionType.h",
608  "ir/ets/etsKeyofType.h",
609  "ir/ts/tsTypeParameter.h",
610  "ir/ts/tsConstructorType.h",
611  "ir/ts/tsTypeParameterDeclaration.h",
612  "checker/types/ts/enumLiteralType.h",
613  "ir/expressions/literals/charLiteral.h",
614  "ir/base/classElement.h",
615  "ir/statements/switchStatement.h",
616  "ir/expressions/identifier.h",
617  "ir/expressions/objectExpression.h",
618  "ir/statements/functionDeclaration.h",
619  "ir/as/prefixAssertionExpression.h",
620  "checker/types/ts/typeReference.h",
621  "ir/expressions/memberExpression.h",
622  "checker/types/ets/etsExtensionFuncHelperType.h",
623  "ir/ets/etsNonNullishTypeNode.h",
624  "ir/ets/etsNullishTypes.h",
625  "ir/expressions/awaitExpression.h",
626  "ir/ets/etsFunctionType.h",
627  "checker/types/ets/etsArrayType.h",
628  "ir/expressions/binaryExpression.h",
629  "checker/types/ets/etsNullishTypes.h",
630  "ir/expressions/newExpression.h",
631  "ir/expressions/literals/stringLiteral.h",
632  "ir/ts/tsTupleType.h",
633  "checker/types/ets/longType.h",
634  "ir/module/exportAllDeclaration.h",
635  "checker/types/ts/bigintType.h",
636  "ir/ts/tsParenthesizedType.h",
637  "ir/ts/tsModuleDeclaration.h",
638  "ir/ets/etsPackageDeclaration.h",
639  "checker/types/ets/etsDynamicFunctionType.h",
640  "ir/expressions/literals/regExpLiteral.h",
641  "ir/ets/etsNewArrayInstanceExpression.h",
642  "checker/types/ets/etsVoidType.h",
643  "ir/base/metaProperty.h",
644  "checker/types/type.h",
645  "checker/types/ts/booleanLiteralType.h",
646  "checker/types/ts/anyType.h",
647  "ir/ets/etsModule.h",
648  "ir/ts/tsInferType.h",
649  "ir/ts/tsMappedType.h",
650  "ir/statements/debuggerStatement.h",
651  "ir/ts/tsBooleanKeyword.h",
652  "ir/ts/tsEnumDeclaration.h",
653  "checker/types/ets/etsObjectType.h",
654  "checker/types/ts/interfaceType.h",
655  "checker/types/ts/functionType.h",
656  "ir/statements/emptyStatement.h",
657  "ir/expressions/omittedExpression.h",
658  "ir/ts/tsNeverKeyword.h",
659  "ir/expressions/blockExpression.h",
660  "checker/types/ts/objectDescriptor.h",
661  "ir/ts/tsBigintKeyword.h",
662  "ir/statements/blockStatement.h",
663  "ir/expressions/literals/numberLiteral.h",
664  "checker/types/ets/shortType.h",
665  "checker/types/ts/bigintLiteralType.h",
666  "ir/expression.h",
667  "checker/types/ts/objectLiteralType.h",
668  "ir/typeNode.h",
669  "ir/base/spreadElement.h",
670  "ir/ts/tsTypeAssertion.h",
671  "ir/ts/tsTypeOperator.h",
672  "ir/ts/tsAsExpression.h",
673  "ir/statements/expressionStatement.h",
674  "checker/types/ts/elementFlags.h",
675  "ir/ts/tsImportType.h",
676  "checker/types/ts/indexInfo.h",
677  "checker/types/ets/etsTupleType.h",
678  "checker/types/signature.h",
679  "ir/ets/etsPrimitiveType.h",
680  "ir/as/namedType.h",
681  "ir/statements/throwStatement.h",
682  "ir/statements/forOfStatement.h",
683  "ir/statements/switchCaseStatement.h",
684  "ir/base/templateElement.h",
685  "checker/types/ets/charType.h",
686  "checker/types/ets/intType.h",
687  "ir/statements/forUpdateStatement.h",
688  "checker/types/ets/floatType.h",
689  "ir/ets/etsTypeReferencePart.h",
690  "ir/ts/tsUnknownKeyword.h",
691  "ir/ets/etsStructDeclaration.h",
692  "checker/types/ts/objectType.h",
693  "ir/expressions/chainExpression.h",
694  "checker/types/ets/byteType.h",
695  "ir/ts/tsVoidKeyword.h",
696  "ir/statements/whileStatement.h",
697  "ir/expressions/taggedTemplateExpression.h",
698  "ir/statements/assertStatement.h",
699  "checker/types/ets/etsUnionType.h",
700  "checker/types/ts/stringType.h",
701  "ir/expressions/literals/booleanLiteral.h",
702  "ir/expressions/functionExpression.h",
703  "ir/statements/variableDeclarator.h",
704  "ir/module/importNamespaceSpecifier.h",
705  "ir/module/exportNamedDeclaration.h",
706  "ir/expressions/thisExpression.h",
707  "ir/ts/tsTypeReference.h",
708  "ir/base/classStaticBlock.h",
709  "ir/expressions/unaryExpression.h",
710  "ir/ts/tsThisType.h",
711  "ir/ts/tsNullKeyword.h",
712  "checker/types/ets/etsTypeParameter.h",
713  "checker/types/typeFacts.h",
714  "ir/base/decorator.h",
715  "checker/types/globalTypesHolder.h",
716  "ir/ets/etsClassLiteral.h",
717  "ir/ts/tsTypeAliasDeclaration.h",
718  "ir/ts/tsNonNullExpression.h",
719  "ir/ts/tsTypeLiteral.h",
720  "ir/ts/tsNumberKeyword.h",
721  "ir/opaqueTypeNode.h",
722  "ir/brokenTypeNode.h",
723  "ir/base/scriptFunction.h",
724  "ir/expressions/literal.h",
725  "ir/ts/tsInterfaceDeclaration.h",
726  "ir/ts/tsImportEqualsDeclaration.h",
727  "ir/validationInfo.h",
728  "ir/base/methodDefinition.h",
729  "ir/ts/tsIntersectionType.h",
730  "checker/types/ts/nullType.h",
731  "checker/types/ts/unknownType.h",
732  "ir/ts/tsEnumMember.h",
733  "ir/expressions/superExpression.h",
734  "checker/types/ts/constructorType.h",
735  "ir/ets/etsTypeReference.h",
736  "checker/types/ets/etsNonNullishType.h",
737  "checker/types/ets/etsObjectTypeConstants.h",
738  "checker/types/ets/types.h",
739  "ir/statements/variableDeclaration.h",
740  "ir/opcodeMap.h",
741  "ir/ts/tsAnyKeyword.h",
742  "checker/types/ets/doubleType.h",
743  "ir/visitor/IterateAstVisitor.h",
744  "checker/types/ts/enumType.h",
745  "ir/expressions/directEvalExpression.h",
746  "ir/ts/tsParameterProperty.h",
747  "ir/statements/continueStatement.h",
748  "ir/ets/etsWildcardType.h",
749  "ir/expressions/literals/undefinedLiteral.h",
750  "ir/ts/tsIndexedAccessType.h",
751  "checker/types/ets/wildcardType.h",
752  "checker/types/ts/booleanType.h",
753  "ir/expressions/typeofExpression.h",
754  "checker/types/ets/etsAsyncFuncReturnType.h",
755  "ir/statements/loopStatement.h",
756  "ir/statements/annotationDeclaration.h",
757  "ir/statements/annotationUsage.h",
758  "ir/annotationAllowed.h",
759  "ir/base/scriptFunctionSignature.h",
760  "ir/expressions/yieldExpression.h",
761  "ir/ets/etsNewMultiDimArrayInstanceExpression.h",
762  "ir/ets/etsParameterExpression.h",
763  "ir/ts/tsTypeQuery.h",
764  "ir/expressions/importExpression.h",
765  "ir/jsDocAllowed.h",
766  "varbinder/variable.h",
767  "varbinder/scope.h",
768  "varbinder/varbinder.h",
769  "varbinder/ETSBinder.h",
770  "varbinder/declaration.h",
771  "varbinder/recordTable.h",
772  "checker/checker.h",
773  "checker/ETSchecker.h",
774  "checker/checkerContext.h",
775  "checker/resolveResult.h",
776  "parser/ETSparser.h",
777  "parser/parserFlags.h",
778  "parser/parserImpl.h",
779  "parser/program/program.h",
780  "es2panda.h",
781  "ast_verifier/ASTVerifier.h",
782  "util/importPathManager.h",
783]
784
785ES2PANDA_API_GENERATED = [
786  "$LIBGEN_DIR/gen/headers/checker/types/typeMapping.yaml",
787  "$LIBGEN_DIR/gen/headers/options.yaml",
788  "$LIBGEN_DIR/gen/headers/ir/astNodeMapping.yaml",
789  "$LIBGEN_DIR/gen/headers/varbinder/variableFlags.yaml",
790  "$LIBGEN_DIR/gen/headers/ir/typed.yaml",
791  "$LIBGEN_DIR/gen/headers/ir/annotationAllowed.yaml",
792  "$LIBGEN_DIR/gen/headers/ir/jsDocAllowed.yaml",
793  "$LIBGEN_DIR/gen/headers/es2panda.yaml",
794  "$LIBGEN_DIR/gen/headers/ir/statements/labelledStatement.yaml",
795  "$LIBGEN_DIR/gen/headers/checker/types/ts/unknownType.yaml",
796  "$LIBGEN_DIR/gen/headers/ir/statements/throwStatement.yaml",
797  "$LIBGEN_DIR/gen/headers/ir/base/classProperty.yaml",
798  "$LIBGEN_DIR/gen/headers/ir/ts/tsVoidKeyword.yaml",
799  "$LIBGEN_DIR/gen/headers/checker/types/ts/stringLiteralType.yaml",
800  "$LIBGEN_DIR/gen/headers/ir/ets/etsFunctionType.yaml",
801  "$LIBGEN_DIR/gen/headers/ir/ts/tsTypeOperator.yaml",
802  "$LIBGEN_DIR/gen/headers/ir/statements/ifStatement.yaml",
803  "$LIBGEN_DIR/gen/headers/ir/ts/tsConstructorType.yaml",
804  "$LIBGEN_DIR/gen/headers/ir/base/decorator.yaml",
805  "$LIBGEN_DIR/gen/headers/ir/ts/tsEnumDeclaration.yaml",
806  "$LIBGEN_DIR/gen/headers/ir/ts/tsNeverKeyword.yaml",
807  "$LIBGEN_DIR/gen/headers/ir/module/importDefaultSpecifier.yaml",
808  "$LIBGEN_DIR/gen/headers/checker/types/ts/objectType.yaml",
809  "$LIBGEN_DIR/gen/headers/ir/expressions/objectExpression.yaml",
810  "$LIBGEN_DIR/gen/headers/ir/module/importSpecifier.yaml",
811  "$LIBGEN_DIR/gen/headers/ir/expressions/conditionalExpression.yaml",
812  "$LIBGEN_DIR/gen/headers/checker/types/ets/etsDynamicFunctionType.yaml",
813  "$LIBGEN_DIR/gen/headers/ir/expressions/callExpression.yaml",
814  "$LIBGEN_DIR/gen/headers/ir/expressions/literals/bigIntLiteral.yaml",
815  "$LIBGEN_DIR/gen/headers/ir/base/classElement.yaml",
816  "$LIBGEN_DIR/gen/headers/checker/types/ets/types.yaml",
817  "$LIBGEN_DIR/gen/headers/ir/ts/tsImportType.yaml",
818  "$LIBGEN_DIR/gen/headers/ir/expressions/taggedTemplateExpression.yaml",
819  "$LIBGEN_DIR/gen/headers/ir/visitor/IterateAstVisitor.yaml",
820  "$LIBGEN_DIR/gen/headers/ir/statements/functionDeclaration.yaml",
821  "$LIBGEN_DIR/gen/headers/ir/ets/etsTypeReference.yaml",
822  "$LIBGEN_DIR/gen/headers/checker/types/ts/tupleType.yaml",
823  "$LIBGEN_DIR/gen/headers/ir/ts/tsTypeReference.yaml",
824  "$LIBGEN_DIR/gen/headers/checker/types/ts/functionType.yaml",
825  "$LIBGEN_DIR/gen/headers/ir/as/namedType.yaml",
826  "$LIBGEN_DIR/gen/headers/ir/expressions/literals/numberLiteral.yaml",
827  "$LIBGEN_DIR/gen/headers/ir/ts/tsFunctionType.yaml",
828  "$LIBGEN_DIR/gen/headers/ir/base/templateElement.yaml",
829  "$LIBGEN_DIR/gen/headers/ir/ts/tsInterfaceDeclaration.yaml",
830  "$LIBGEN_DIR/gen/headers/checker/types/ts/typeReference.yaml",
831  "$LIBGEN_DIR/gen/headers/ir/statements/variableDeclaration.yaml",
832  "$LIBGEN_DIR/gen/headers/checker/types/ts/booleanType.yaml",
833  "$LIBGEN_DIR/gen/headers/checker/types/ts/neverType.yaml",
834  "$LIBGEN_DIR/gen/headers/checker/types/ts/numberType.yaml",
835  "$LIBGEN_DIR/gen/headers/ir/expressions/literals/undefinedLiteral.yaml",
836  "$LIBGEN_DIR/gen/headers/allEnums.yaml",
837  "$LIBGEN_DIR/gen/headers/checker/types/ts/indexInfo.yaml",
838  "$LIBGEN_DIR/gen/headers/checker/types/ets/etsFunctionType.yaml",
839  "$LIBGEN_DIR/gen/headers/ir/expressions/memberExpression.yaml",
840  "$LIBGEN_DIR/gen/headers/ir/ts/tsClassImplements.yaml",
841  "$LIBGEN_DIR/gen/headers/ir/ts/tsObjectKeyword.yaml",
842  "$LIBGEN_DIR/gen/headers/checker/types/ts/unionType.yaml",
843  "$LIBGEN_DIR/gen/headers/ir/ets/etsUnionType.yaml",
844  "$LIBGEN_DIR/gen/headers/ir/ets/etsKeyofType.yaml",
845  "$LIBGEN_DIR/gen/headers/ir/base/tsPropertySignature.yaml",
846  "$LIBGEN_DIR/gen/headers/checker/types/ts/objectDescriptor.yaml",
847  "$LIBGEN_DIR/gen/headers/ir/ts/tsConditionalType.yaml",
848  "$LIBGEN_DIR/gen/headers/ir/ts/tsLiteralType.yaml",
849  "$LIBGEN_DIR/gen/headers/ir/ts/tsTypeAliasDeclaration.yaml",
850  "$LIBGEN_DIR/gen/headers/ir/statements/debuggerStatement.yaml",
851  "$LIBGEN_DIR/gen/headers/checker/types/ts/elementFlags.yaml",
852  "$LIBGEN_DIR/gen/headers/ir/statements/returnStatement.yaml",
853  "$LIBGEN_DIR/gen/headers/ir/module/exportDefaultDeclaration.yaml",
854  "$LIBGEN_DIR/gen/headers/ir/base/scriptFunction.yaml",
855  "$LIBGEN_DIR/gen/headers/ir/base/classDefinition.yaml",
856  "$LIBGEN_DIR/gen/headers/checker/types/ets/etsArrayType.yaml",
857  "$LIBGEN_DIR/gen/headers/checker/types/ts/interfaceType.yaml",
858  "$LIBGEN_DIR/gen/headers/ir/expressions/arrayExpression.yaml",
859  "$LIBGEN_DIR/gen/headers/ir/ts/tsInterfaceBody.yaml",
860  "$LIBGEN_DIR/gen/headers/ir/ts/tsTypeQuery.yaml",
861  "$LIBGEN_DIR/gen/headers/ir/ts/tsBigintKeyword.yaml",
862  "$LIBGEN_DIR/gen/headers/ir/base/property.yaml",
863  "$LIBGEN_DIR/gen/headers/ir/statements/variableDeclarator.yaml",
864  "$LIBGEN_DIR/gen/headers/ir/expressions/literals/stringLiteral.yaml",
865  "$LIBGEN_DIR/gen/headers/ir/ts/tsTypeAssertion.yaml",
866  "$LIBGEN_DIR/gen/headers/ir/ts/tsExternalModuleReference.yaml",
867  "$LIBGEN_DIR/gen/headers/ir/ts/tsUndefinedKeyword.yaml",
868  "$LIBGEN_DIR/gen/headers/checker/types/signature.yaml",
869  "$LIBGEN_DIR/gen/headers/ir/ets/etsTuple.yaml",
870  "$LIBGEN_DIR/gen/headers/ir/ets/etsStringLiteralType.yaml",
871  "$LIBGEN_DIR/gen/headers/util/language.yaml",
872  "$LIBGEN_DIR/gen/headers/ir/statements/tryStatement.yaml",
873  "$LIBGEN_DIR/gen/headers/checker/types/ets/etsBigIntType.yaml",
874  "$LIBGEN_DIR/gen/headers/checker/types/ts/anyType.yaml",
875  "$LIBGEN_DIR/gen/headers/checker/types/globalTypesHolder.yaml",
876  "$LIBGEN_DIR/gen/headers/checker/types/ets/longType.yaml",
877  "$LIBGEN_DIR/gen/headers/ir/astNode.yaml",
878  "$LIBGEN_DIR/gen/headers/ir/expressions/unaryExpression.yaml",
879  "$LIBGEN_DIR/gen/headers/ir/statements/forInStatement.yaml",
880  "$LIBGEN_DIR/gen/headers/ir/expressions/thisExpression.yaml",
881  "$LIBGEN_DIR/gen/headers/ir/base/tsMethodSignature.yaml",
882  "$LIBGEN_DIR/gen/headers/ir/expressions/binaryExpression.yaml",
883  "$LIBGEN_DIR/gen/headers/checker/types/ts/bigintLiteralType.yaml",
884  "$LIBGEN_DIR/gen/headers/ir/expressions/superExpression.yaml",
885  "$LIBGEN_DIR/gen/headers/ir/statements/assertStatement.yaml",
886  "$LIBGEN_DIR/gen/headers/ir/ts/tsStringKeyword.yaml",
887  "$LIBGEN_DIR/gen/headers/checker/types/ets/etsAsyncFuncReturnType.yaml",
888  "$LIBGEN_DIR/gen/headers/ir/expressions/assignmentExpression.yaml",
889  "$LIBGEN_DIR/gen/headers/checker/types/ts/voidType.yaml",
890  "$LIBGEN_DIR/gen/headers/checker/types/ets/doubleType.yaml",
891  "$LIBGEN_DIR/gen/headers/ir/statements/expressionStatement.yaml",
892  "$LIBGEN_DIR/gen/headers/ir/ets/etsModule.yaml",
893  "$LIBGEN_DIR/gen/headers/ir/base/metaProperty.yaml",
894  "$LIBGEN_DIR/gen/headers/ir/ts/tsArrayType.yaml",
895  "$LIBGEN_DIR/gen/headers/ir/base/tsSignatureDeclaration.yaml",
896  "$LIBGEN_DIR/gen/headers/ir/module/exportAllDeclaration.yaml",
897  "$LIBGEN_DIR/gen/headers/ir/module/exportSpecifier.yaml",
898  "$LIBGEN_DIR/gen/headers/ir/ts/tsTupleType.yaml",
899  "$LIBGEN_DIR/gen/headers/ir/expressions/functionExpression.yaml",
900  "$LIBGEN_DIR/gen/headers/checker/types/ets/etsExtensionFuncHelperType.yaml",
901  "$LIBGEN_DIR/gen/headers/ir/base/tsIndexSignature.yaml",
902  "$LIBGEN_DIR/gen/headers/checker/types/ts/nullType.yaml",
903  "$LIBGEN_DIR/gen/headers/ir/ts/tsModuleDeclaration.yaml",
904  "$LIBGEN_DIR/gen/headers/checker/types/ets/etsVoidType.yaml",
905  "$LIBGEN_DIR/gen/headers/checker/types/ets/etsNonNullishType.yaml",
906  "$LIBGEN_DIR/gen/headers/checker/types/ts/bigintType.yaml",
907  "$LIBGEN_DIR/gen/headers/ir/module/importDeclaration.yaml",
908  "$LIBGEN_DIR/gen/headers/checker/types/ets/etsStringType.yaml",
909  "$LIBGEN_DIR/gen/headers/ir/ts/tsParenthesizedType.yaml",
910  "$LIBGEN_DIR/gen/headers/ir/astNodeFlags.yaml",
911  "$LIBGEN_DIR/gen/headers/checker/types/ts/typeParameter.yaml",
912  "$LIBGEN_DIR/gen/headers/ir/expressions/literal.yaml",
913  "$LIBGEN_DIR/gen/headers/ir/expressions/literals/charLiteral.yaml",
914  "$LIBGEN_DIR/gen/headers/checker/types/ets/intType.yaml",
915  "$LIBGEN_DIR/gen/headers/checker/types/ts/objectLiteralType.yaml",
916  "$LIBGEN_DIR/gen/headers/checker/types/typeFlag.yaml",
917  "$LIBGEN_DIR/gen/headers/ir/ets/etsPackageDeclaration.yaml",
918  "$LIBGEN_DIR/gen/headers/ir/ets/etsImportDeclaration.yaml",
919  "$LIBGEN_DIR/gen/headers/ir/ets/etsStructDeclaration.yaml",
920  "$LIBGEN_DIR/gen/headers/ir/ts/tsModuleBlock.yaml",
921  "$LIBGEN_DIR/gen/headers/ir/ets/etsNewArrayInstanceExpression.yaml",
922  "$LIBGEN_DIR/gen/headers/ir/statements/loopStatement.yaml",
923  "$LIBGEN_DIR/gen/headers/ir/statements/annotationDeclaration.yaml",
924  "$LIBGEN_DIR/gen/headers/ir/statements/annotationUsage.yaml",
925  "$LIBGEN_DIR/gen/headers/ir/statements/emptyStatement.yaml",
926  "$LIBGEN_DIR/gen/headers/ir/statements/whileStatement.yaml",
927  "$LIBGEN_DIR/gen/headers/ir/base/scriptFunctionSignature.yaml",
928  "$LIBGEN_DIR/gen/headers/checker/types/ts/numberLiteralType.yaml",
929  "$LIBGEN_DIR/gen/headers/ir/expressions/chainExpression.yaml",
930  "$LIBGEN_DIR/gen/headers/ir/ts/tsIntersectionType.yaml",
931  "$LIBGEN_DIR/gen/headers/ir/expressions/updateExpression.yaml",
932  "$LIBGEN_DIR/gen/headers/checker/types/ets/etsEnumType.yaml",
933  "$LIBGEN_DIR/gen/headers/ir/expressions/blockExpression.yaml",
934  "$LIBGEN_DIR/gen/headers/ir/ts/tsTypeLiteral.yaml",
935  "$LIBGEN_DIR/gen/headers/ir/ts/tsTypeParameter.yaml",
936  "$LIBGEN_DIR/gen/headers/checker/types/ets/etsDynamicType.yaml",
937  "$LIBGEN_DIR/gen/headers/checker/types/ets/charType.yaml",
938  "$LIBGEN_DIR/gen/headers/ir/ts/tsBooleanKeyword.yaml",
939  "$LIBGEN_DIR/gen/headers/ir/base/spreadElement.yaml",
940  "$LIBGEN_DIR/gen/headers/ir/ts/tsTypePredicate.yaml",
941  "$LIBGEN_DIR/gen/headers/ir/module/importNamespaceSpecifier.yaml",
942  "$LIBGEN_DIR/gen/headers/ir/module/exportNamedDeclaration.yaml",
943  "$LIBGEN_DIR/gen/headers/ir/ets/etsParameterExpression.yaml",
944  "$LIBGEN_DIR/gen/headers/ir/ts/tsTypeParameterInstantiation.yaml",
945  "$LIBGEN_DIR/gen/headers/ir/expressions/literals/nullLiteral.yaml",
946  "$LIBGEN_DIR/gen/headers/ir/ts/tsInferType.yaml",
947  "$LIBGEN_DIR/gen/headers/ir/statements/switchCaseStatement.yaml",
948  "$LIBGEN_DIR/gen/headers/ir/expressions/yieldExpression.yaml",
949  "$LIBGEN_DIR/gen/headers/checker/types/ts/undefinedType.yaml",
950  "$LIBGEN_DIR/gen/headers/ir/ts/tsImportEqualsDeclaration.yaml",
951  "$LIBGEN_DIR/gen/headers/checker/types/ts/stringType.yaml",
952  "$LIBGEN_DIR/gen/headers/ir/expressions/literals/booleanLiteral.yaml",
953  "$LIBGEN_DIR/gen/headers/ir/ts/tsNumberKeyword.yaml",
954  "$LIBGEN_DIR/gen/headers/checker/types/ts/nonPrimitiveType.yaml",
955  "$LIBGEN_DIR/gen/headers/ir/base/classStaticBlock.yaml",
956  "$LIBGEN_DIR/gen/headers/checker/types/ets/etsNullishTypes.yaml",
957  "$LIBGEN_DIR/gen/headers/checker/types/type.yaml",
958  "$LIBGEN_DIR/gen/headers/ir/ts/tsNonNullExpression.yaml",
959  "$LIBGEN_DIR/gen/headers/ir/as/prefixAssertionExpression.yaml",
960  "$LIBGEN_DIR/gen/headers/checker/types/typeFacts.yaml",
961  "$LIBGEN_DIR/gen/headers/ir/expressions/classExpression.yaml",
962  "$LIBGEN_DIR/gen/headers/checker/types/ets/etsTupleType.yaml",
963  "$LIBGEN_DIR/gen/headers/pathsToHeaders.yaml",
964  "$LIBGEN_DIR/gen/headers/ir/statements/forOfStatement.yaml",
965  "$LIBGEN_DIR/gen/headers/checker/types/typeRelation.yaml",
966  "$LIBGEN_DIR/gen/headers/ir/expressions/templateLiteral.yaml",
967  "$LIBGEN_DIR/gen/headers/ir/ts/tsUnionType.yaml",
968  "$LIBGEN_DIR/gen/headers/ir/ts/tsUnknownKeyword.yaml",
969  "$LIBGEN_DIR/gen/headers/ir/expressions/identifier.yaml",
970  "$LIBGEN_DIR/gen/headers/ir/opaqueTypeNode.yaml",
971  "$LIBGEN_DIR/gen/headers/ir/statements/blockStatement.yaml",
972  "$LIBGEN_DIR/gen/headers/ir/statement.yaml",
973  "$LIBGEN_DIR/gen/headers/ir/expressions/directEvalExpression.yaml",
974  "$LIBGEN_DIR/gen/headers/ir/ts/tsTypeParameterDeclaration.yaml",
975  "$LIBGEN_DIR/gen/headers/ir/base/methodDefinition.yaml",
976  "$LIBGEN_DIR/gen/headers/ir/ts/tsNullKeyword.yaml",
977  "$LIBGEN_DIR/gen/headers/ir/ts/tsInterfaceHeritage.yaml",
978  "$LIBGEN_DIR/gen/headers/checker/types/ts/enumLiteralType.yaml",
979  "$LIBGEN_DIR/gen/headers/ir/expression.yaml",
980  "$LIBGEN_DIR/gen/headers/ir/srcDump.yaml",
981  "$LIBGEN_DIR/gen/headers/checker/types/ts/types.yaml",
982  "$LIBGEN_DIR/gen/headers/checker/types/ets/floatType.yaml",
983  "$LIBGEN_DIR/gen/headers/ir/ets/etsClassLiteral.yaml",
984  "$LIBGEN_DIR/gen/headers/ir/irnode.yaml",
985  "$LIBGEN_DIR/gen/headers/ir/statements/breakStatement.yaml",
986  "$LIBGEN_DIR/gen/headers/checker/types/ets/byteType.yaml",
987  "$LIBGEN_DIR/gen/headers/ir/expressions/literals/regExpLiteral.yaml",
988  "$LIBGEN_DIR/gen/headers/checker/types/ets/etsTypeParameter.yaml",
989  "$LIBGEN_DIR/gen/headers/checker/types/ets/etsObjectTypeConstants.yaml",
990  "$LIBGEN_DIR/gen/headers/ir/ts/tsMappedType.yaml",
991  "$LIBGEN_DIR/gen/headers/ir/opcodeMap.yaml",
992  "$LIBGEN_DIR/gen/headers/ir/ts/tsAnyKeyword.yaml",
993  "$LIBGEN_DIR/gen/headers/checker/types/ets/etsUnionType.yaml",
994  "$LIBGEN_DIR/gen/headers/ir/statements/classDeclaration.yaml",
995  "$LIBGEN_DIR/gen/headers/checker/types/ts/enumType.yaml",
996  "$LIBGEN_DIR/gen/headers/ir/ts/tsIndexedAccessType.yaml",
997  "$LIBGEN_DIR/gen/headers/ir/ts/tsQualifiedName.yaml",
998  "$LIBGEN_DIR/gen/headers/ir/expressions/awaitExpression.yaml",
999  "$LIBGEN_DIR/gen/headers/ir/validationInfo.yaml",
1000  "$LIBGEN_DIR/gen/headers/ir/statements/continueStatement.yaml",
1001  "$LIBGEN_DIR/gen/headers/ir/ets/etsNewMultiDimArrayInstanceExpression.yaml",
1002  "$LIBGEN_DIR/gen/headers/ir/ts/tsNamedTupleMember.yaml",
1003  "$LIBGEN_DIR/gen/headers/ir/expressions/importExpression.yaml",
1004  "$LIBGEN_DIR/gen/headers/ir/astDump.yaml",
1005  "$LIBGEN_DIR/gen/headers/ir/ets/etsNullishTypes.yaml",
1006  "$LIBGEN_DIR/gen/headers/ir/expressions/typeofExpression.yaml",
1007  "$LIBGEN_DIR/gen/headers/ir/ts/tsEnumMember.yaml",
1008  "$LIBGEN_DIR/gen/headers/checker/types/ets/wildcardType.yaml",
1009  "$LIBGEN_DIR/gen/headers/lexer/regexp/regexp.yaml",
1010  "$LIBGEN_DIR/gen/headers/ir/statements/switchStatement.yaml",
1011  "$LIBGEN_DIR/gen/headers/checker/types/ets/etsBooleanType.yaml",
1012  "$LIBGEN_DIR/gen/headers/ir/statements/doWhileStatement.yaml",
1013  "$LIBGEN_DIR/gen/headers/ir/base/catchClause.yaml",
1014  "$LIBGEN_DIR/gen/headers/checker/types/ts/constructorType.yaml",
1015  "$LIBGEN_DIR/gen/headers/ir/visitor/AstVisitor.yaml",
1016  "$LIBGEN_DIR/gen/headers/ir/expressions/sequenceExpression.yaml",
1017  "$LIBGEN_DIR/gen/headers/ir/expressions/arrowFunctionExpression.yaml",
1018  "$LIBGEN_DIR/gen/headers/checker/types/ts/booleanLiteralType.yaml",
1019  "$LIBGEN_DIR/gen/headers/checker/types/ets/etsObjectType.yaml",
1020  "$LIBGEN_DIR/gen/headers/ir/expressions/omittedExpression.yaml",
1021  "$LIBGEN_DIR/gen/headers/checker/types/ts/arrayType.yaml",
1022  "$LIBGEN_DIR/gen/headers/tokenType.yaml",
1023  "$LIBGEN_DIR/gen/headers/ir/ets/etsNewClassInstanceExpression.yaml",
1024  "$LIBGEN_DIR/gen/headers/ir/ts/tsAsExpression.yaml",
1025  "$LIBGEN_DIR/gen/headers/ir/statements/forUpdateStatement.yaml",
1026  "$LIBGEN_DIR/gen/headers/ir/ets/etsTypeReferencePart.yaml",
1027  "$LIBGEN_DIR/gen/headers/ir/ets/etsReExportDeclaration.yaml",
1028  "$LIBGEN_DIR/gen/headers/ir/ets/etsPrimitiveType.yaml",
1029  "$LIBGEN_DIR/gen/headers/ir/typeNode.yaml",
1030  "$LIBGEN_DIR/gen/headers/ir/expressions/newExpression.yaml",
1031  "$LIBGEN_DIR/gen/headers/ir/ts/tsParameterProperty.yaml",
1032  "$LIBGEN_DIR/gen/headers/ir/ets/etsWildcardType.yaml",
1033  "$LIBGEN_DIR/gen/headers/checker/types/ets/shortType.yaml",
1034  "$LIBGEN_DIR/gen/headers/ir/ts/tsThisType.yaml",
1035  "$LIBGEN_DIR/gen/headers/varbinder/variable.yaml",
1036  "$LIBGEN_DIR/gen/headers/varbinder/scope.yaml",
1037  "$LIBGEN_DIR/gen/headers/varbinder/varbinder.yaml",
1038  "$LIBGEN_DIR/gen/headers/varbinder/ETSBinder.yaml",
1039  "$LIBGEN_DIR/gen/headers/varbinder/declaration.yaml",
1040  "$LIBGEN_DIR/gen/headers/varbinder/recordTable.yaml",
1041  "$LIBGEN_DIR/gen/headers/checker/checker.yaml",
1042  "$LIBGEN_DIR/gen/headers/checker/ETSchecker.yaml",
1043  "$LIBGEN_DIR/gen/headers/checker/checkerContext.yaml",
1044  "$LIBGEN_DIR/gen/headers/checker/resolveResult.yaml",
1045  "$LIBGEN_DIR/gen/headers/parser/parserFlags.yaml",
1046  "$LIBGEN_DIR/gen/headers/parser/ETSparser.yaml",
1047  "$LIBGEN_DIR/gen/headers/parser/program/program.yaml",
1048  "$LIBGEN_DIR/gen/headers/ast_verifier/ASTVerifier.yaml",
1049  "$LIBGEN_DIR/gen/headers/util/importPathManager.yaml",
1050]
1051
1052ES2PANDA_API = [
1053  "public/cppToCTypes.yaml",
1054  "public/ignoredAllowed.yaml",
1055]
1056
1057ES2PANDA_API += ES2PANDA_API_GENERATED
1058
1059foreach(i, ES2PANDA_API) {
1060  RB_LIST += [ "public/${LIB_NAME}.rb" ]
1061}
1062
1063action("libes2panda_public_parse_headers") {
1064  script = "./public/headers_parser/main.py"
1065
1066  deps = [
1067    ":es2panda_options_gen_options_h",
1068    ":gen_es2panda_lexer_tokenType_h",
1069  ]
1070
1071  generated_headers = [
1072    "$target_gen_dir/generated/options.h",
1073    "$target_gen_dir/generated/tokenType.h",
1074  ]
1075
1076  args = [
1077           "--es2panda-root",
1078           rebase_path(".", ""),
1079           "--lib-gen-dir",
1080           rebase_path(LIBGEN_DIR, root_build_dir),
1081           "--headers",
1082         ] + rebase_path(HEADERS_TO_BE_PARSED, "") +
1083         rebase_path(generated_headers, "")
1084
1085  sources = HEADERS_TO_BE_PARSED
1086  outputs = ES2PANDA_API_GENERATED
1087}
1088
1089ark_gen("gen") {
1090  data = ES2PANDA_API
1091  template_files = [
1092    "${LIB_NAME}_decl.inc.erb",
1093    "${LIB_NAME}_enums.inc.erb",
1094    "${LIB_NAME}_impl.inc.erb",
1095    "${LIB_NAME}_include.inc.erb",
1096    "${LIB_NAME}_list.inc.erb",
1097    "${LIB_NAME}.idl.erb",
1098  ]
1099  sources = "public/"
1100  destination = "$LIBGEN_DIR/"
1101  api = RB_LIST
1102  extra_dependencies = [ ":libes2panda_public_parse_headers" ]
1103}
1104
1105# libes2panda does not include bytecode optimizer, because it is used in
1106# libarkruntime, and conflict with JIT setup ensues
1107libes2panda_public_sources = [
1108  "declgen_ets2ts/declgenEts2Ts.cpp",
1109  "public/${LIB_NAME}.cpp",
1110  "util/generateBin.cpp",
1111  "util/options.cpp",
1112]
1113
1114config("libes2panda_config") {
1115  cflags_cc = [
1116    "-fexceptions",
1117    "-Werror=shadow",
1118  ]
1119}
1120
1121if ((defined(ark_standalone_build) && ark_standalone_build) ||
1122    (defined(ark_static_standalone_build) && ark_static_standalone_build)) {
1123  libes2panda_configs = [ "$ark_root:ark_config" ]
1124  libes2panda_public_configs = [ "$ark_root:ark_config" ]
1125} else {
1126  libes2panda_configs =
1127      [ "//build/config/components/runtime_core/static_core:ark_common_config" ]
1128  libes2panda_public_configs =
1129      [ "//build/config/components/runtime_core/static_core:ark_common_config" ]
1130}
1131
1132if (ark_standalone_build || ark_static_standalone_build) {
1133  libes2panda_configs += [
1134    "$ark_root/assembler:arkassembler_public_config",
1135    "$ark_root/libpandabase:arkbase_public_config",
1136    "$ark_root/libpandafile:arkfile_public_config",
1137  ]
1138}
1139
1140libes2panda_configs += [
1141  ":libes2panda_public_config",
1142  ":libes2panda_config",
1143]
1144
1145if (ark_standalone_build || ark_static_standalone_build) {
1146  libes2panda_public_configs += [
1147    "$ark_root/assembler:arkassembler_public_config",
1148    "$ark_root/libpandabase:arkbase_public_config",
1149    "$ark_root/libpandafile:arkfile_public_config",
1150    "$ark_root/bytecode_optimizer:bytecodeopt_public_config",
1151    "$ark_root/runtime:arkruntime_public_config",
1152    "$ark_root/compiler:arkcompiler_public_config",
1153  ]
1154}
1155
1156libes2panda_public_configs += [
1157  ":libes2panda_public_config",
1158  ":libes2panda_config",
1159]
1160
1161ohos_shared_library("libes2panda") {
1162  deps = [ ":libes2panda_frontend_static" ]
1163  output_extension = "so"
1164  part_name = "ets_frontend"
1165  subsystem_name = "arkcompiler"
1166}
1167
1168ohos_source_set("libes2panda_frontend_static") {
1169  sources = libes2panda_sources
1170
1171  configs = libes2panda_configs
1172
1173  deps = [
1174    ":es2panda_diagnostic_gen_diagnostic_h",
1175    ":es2panda_options_gen_options_h",
1176    ":gen_${LIB_NAME}_decl_inc",
1177    ":gen_${LIB_NAME}_enums_inc",
1178    ":gen_${LIB_NAME}_idl",
1179    ":gen_${LIB_NAME}_impl_inc",
1180    ":gen_${LIB_NAME}_include_inc",
1181    ":gen_${LIB_NAME}_list_inc",
1182    ":gen_es2panda_compiler_signatures_h",
1183    ":gen_es2panda_lexer_keywords_h",
1184    ":gen_es2panda_lexer_tokenType_h",
1185    ":gen_es2panda_lexer_token_inl",
1186    ":isa_gen_es2panda_formats_h",
1187    ":isa_gen_es2panda_isa_h",
1188  ]
1189  external_deps = [
1190    "runtime_core:libarktsassembler_package",
1191    "runtime_core:libarktsbase_package",
1192    "runtime_core:libarktscompiler_package",
1193    "runtime_core:libarktsfile_package",
1194    sdk_libc_secshared_dep,
1195  ]
1196  if (ark_standalone_build || ark_static_standalone_build) {
1197    deps += [
1198      "$ark_third_party_root/icu/icu4c:static_icui18n",
1199      "$ark_third_party_root/icu/icu4c:static_icuuc",
1200    ]
1201  } else {
1202    external_deps += [
1203      "icu:static_icui18n",
1204      "icu:static_icuuc",
1205      "runtime_core:assembler_headers",
1206      "runtime_core:libpandabase_headers",
1207      "runtime_core:libpandafile_headers",
1208      "runtime_core:runtime_gen_headers",
1209    ]
1210  }
1211  part_name = "ets_frontend"
1212  subsystem_name = "arkcompiler"
1213}
1214
1215ohos_shared_library("libes2panda_public") {
1216  deps = [ ":libes2panda_public_frontend_static" ]
1217  if (is_mingw || is_win) {
1218    output_extension = "dll"
1219  } else {
1220    output_extension = "so"
1221  }
1222
1223  libs = platform_libs
1224  ldflags = platform_ldflags
1225  if (is_linux) {
1226    libs += [ "stdc++fs" ]
1227  }
1228  part_name = "ets_frontend"
1229  subsystem_name = "arkcompiler"
1230}
1231
1232if (!(defined(ark_static_standalone_build) && ark_static_standalone_build)) {
1233  ohos_shared_headers("libes2panda_public_headers") {
1234    include_dirs = [ "$ark_es2panda_root/public" ]
1235    deps = [
1236      ":gen_${LIB_NAME}_decl_inc",
1237      ":gen_${LIB_NAME}_enums_inc",
1238      ":gen_${LIB_NAME}_idl",
1239      ":gen_${LIB_NAME}_impl_inc",
1240      ":gen_${LIB_NAME}_include_inc",
1241      ":gen_${LIB_NAME}_list_inc"
1242    ]
1243    part_name = "ets_frontend"
1244    subsystem_name = "arkcompiler"
1245  }
1246}
1247
1248action("generate_ets2panda_info") {
1249  script = "$ark_root/gn/build/es2panda_info.sh"
1250  outputs = [ "$target_gen_dir/generated/es2panda_build_info.h" ]
1251  args = [
1252    rebase_path("$target_gen_dir/generated/es2panda_build_info.h"),
1253    rebase_path("$ark_root"),
1254  ]
1255}
1256
1257ohos_source_set("libes2panda_public_frontend_static") {
1258  sources = libes2panda_public_sources
1259
1260  configs = libes2panda_public_configs
1261
1262  deps = [ ":libes2panda_frontend_static" ]
1263
1264  if (target_os != "win" && target_os != "mingw" && target_os != "winuwp") {
1265    deps += [ ":generate_ets2panda_info" ]
1266    defines = [ "ES2PANDA_COMPILE_BY_GN" ]
1267  }
1268
1269  external_deps = [
1270    "runtime_core:libarktsbytecodeopt_package",
1271    sdk_libc_secshared_dep,
1272  ]
1273
1274  if (ark_standalone_build || ark_static_standalone_build) {
1275    deps += [ "$ark_root/bytecode_optimizer:libarktsbytecodeopt_package" ]
1276  } else {
1277    external_deps += [
1278      "runtime_core:assembler_headers",
1279      "runtime_core:bytecode_optimizer_headers",
1280      "runtime_core:compiler_headers",
1281      "runtime_core:libpandabase_headers",
1282      "runtime_core:libpandafile_headers",
1283      "runtime_core:runtime_gen_headers",
1284      "runtime_core:runtime_headers",
1285      "runtime_core:verification_headers",
1286    ]
1287  }
1288
1289  part_name = "ets_frontend"
1290  subsystem_name = "arkcompiler"
1291}
1292
1293ark_isa_gen("isa_gen_es2panda") {
1294  template_files = [
1295    "isa.h.erb",
1296    "formats.h.erb",
1297  ]
1298  sources = "compiler/templates"
1299  destination = "$target_gen_dir/generated"
1300}
1301
1302ark_gen("es2panda_options_gen") {
1303  data = [ "util/options.yaml" ]
1304  template_files = [ "options.h.erb" ]
1305  sources = "$ark_root/templates/options"
1306  destination = "$target_gen_dir/generated"
1307  api = [ "$ark_root/templates/common.rb" ]
1308}
1309
1310ark_gen("es2panda_diagnostic_gen") {
1311  data = [
1312    "util/diagnostic/syntax.yaml",
1313    "util/diagnostic/semantic.yaml",
1314    "util/diagnostic/warning.yaml",
1315    "util/diagnostic/fatal.yaml",
1316    "util/diagnostic/isolated_declgen.yaml",
1317    "declgen_ets2ts/declgen_ets2ts_error.yaml",
1318    "declgen_ets2ts/declgen_ets2ts_warning.yaml",
1319    "util/diagnostic/arktsconfig_error.yaml",
1320  ]
1321  template_files = [ "diagnostic.h.erb" ]
1322  sources = "util/diagnostic"
1323  destination = "$target_gen_dir/generated"
1324  api = [
1325    "util/diagnostic/diagnostic.rb",
1326    "util/diagnostic/diagnostic.rb",
1327    "util/diagnostic/diagnostic.rb",
1328    "util/diagnostic/diagnostic.rb",
1329    "util/diagnostic/diagnostic.rb",
1330    "util/diagnostic/diagnostic.rb",
1331    "util/diagnostic/diagnostic.rb",
1332    "util/diagnostic/diagnostic.rb",
1333  ]
1334}
1335
1336ark_gen("gen_es2panda_lexer") {
1337  data = [
1338    "lexer/scripts/keywords.yaml",
1339    "lexer/scripts/tokens.yaml",
1340  ]
1341  template_files = [
1342    "keywords.h.erb",
1343    "token.inl.erb",
1344    "tokenType.h.erb",
1345  ]
1346  sources = "lexer/templates"
1347  destination = "$target_gen_dir/generated"
1348  api = [
1349    "lexer/scripts/keywords.rb",
1350    "lexer/scripts/tokens.rb",
1351  ]
1352}
1353
1354ark_gen("gen_es2panda_compiler") {
1355  data = [ "compiler/scripts/signatures.yaml" ]
1356  template_files = [ "signatures.h.erb" ]
1357  sources = "compiler/templates"
1358  destination = "$target_gen_dir/generated"
1359  api = [ "compiler/scripts/signatures.rb" ]
1360}
1361