• Home
Name Date Size #Lines LOC

..--

README.mdD06-May-20252.6 KiB8371

arrowFunctionExpressionBuilder.hD06-May-20251.4 KiB4624

assertStatementBuilder.hD06-May-20251.5 KiB5330

assignmentExpressionBuilder.hD06-May-20251.8 KiB6036

astBuilder.hD06-May-20251.7 KiB6037

awaitExpressionBuilder.hD06-May-20251.4 KiB4725

bigintLiteralBuilder.hD06-May-20251.3 KiB4624

binaryExpressionBuilder.hD06-May-20251.8 KiB6137

blockExpressionBuilder.hD06-May-20251.6 KiB5532

blockStatementBuilder.hD06-May-20251.6 KiB5532

booleanLiteralBuilder.hD06-May-20251.3 KiB4624

breakStatementBuilder.hD06-May-20251.2 KiB3918

callExpressionBuilder.hD06-May-20251.8 KiB6238

catchClauseBuilder.hD06-May-20251.4 KiB5330

chainExpressionBuilder.hD06-May-20251.4 KiB4624

charLiteralBuilder.hD06-May-20251.3 KiB4624

classDeclarationBuilder.hD06-May-20251.7 KiB5734

classDefinitionBuilder.hD06-May-20253 KiB10071

classExpressionBuilder.hD06-May-20251.3 KiB4624

classPropertyBuilder.hD06-May-20251.7 KiB6036

classStaticBlockBuilder.hD06-May-20251.4 KiB4624

conditionalExpressionBuilder.hD06-May-20251.7 KiB6036

continueStatementBuilder.hD06-May-20251.2 KiB3918

debuggerStatementBuilder.hD06-May-20251.2 KiB3918

decoratorBuilder.hD06-May-20251.3 KiB4624

directEvalExpressionBuilder.hD06-May-20252 KiB6944

doWhileStatementBuilder.hD06-May-20251.5 KiB5330

emptyStatementBuilder.hD06-May-20251.2 KiB3918

etsClassLiteralBuilder.hD06-May-20251.3 KiB4624

etsFunctionTypeBuilder.hD06-May-20251.6 KiB5330

etsLaunchExpressionBuilder.hD06-May-20251.4 KiB4624

etsNewArrayInstanceExpressionBuilder.hD06-May-20251.7 KiB5330

etsNewClassInstanceExpressionBuilder.hD06-May-20252 KiB6339

etsNewMultiDivArrayInstanceExpressionBuilder.hD06-May-20251.9 KiB5633

etsNullTypeBuilder.hD06-May-20251.2 KiB3918

etsPackageDeclarationBuilder.hD06-May-20251.4 KiB4624

etsParameterExpressionBuilder.hD06-May-20251.6 KiB5330

etsPrimitiveTypeBuilder.hD06-May-20251.4 KiB4624

etsReExportDeclarationBuilder.hD06-May-20251.9 KiB6036

etsStructDeclarationBuilder.hD06-May-20251.4 KiB4624

etsTupleBuilder.hD06-May-20251.4 KiB4927

etsTypeReferenceBuilder.hD06-May-20251.5 KiB5028

etsTypeReferencePartBuilder.hD06-May-20251.8 KiB6036

etsUndefinedTypeBuilder.hD06-May-20251.2 KiB3918

etsUnionTypeBuilder.hD06-May-20251.4 KiB4826

etsWildcardTypeBuilder.hD06-May-20251.6 KiB5330

exportAllDeclarationBuilder.hD06-May-20251.6 KiB5330

exportDefaultDeclarationBuilder.hD06-May-20251.6 KiB5330

exportNamedDeclarationBuilder.hD06-May-20251.6 KiB5028

exportSpecifierBuilder.hD06-May-20251.5 KiB5330

expressionStatementBuilder.hD06-May-20251.4 KiB4724

forInStatementBuilder.hD06-May-20251.6 KiB6036

forOfStatementBuilder.hD06-May-20251.8 KiB6742

forUpdateStatementBuilder.hD06-May-20251.8 KiB6742

functionDeclarationBuilder.hD06-May-20251.6 KiB5330

functionExpressionBuilder.hD06-May-20251.4 KiB4624

identifierBuilder.hD06-May-20251.3 KiB4724

ifStatementBuilder.hD06-May-20251.6 KiB6036

importDeclarationBuilder.hD06-May-20251.8 KiB6339

importDefaultSpecifierBuilder.hD06-May-20251.4 KiB4624

importExpressionBuilder.hD06-May-20251.4 KiB4624

importNamespaceSpecifierBuilder.hD06-May-20251.4 KiB4724

importSpecifierBuilder.hD06-May-20251.5 KiB5330

labelledStatementBuilder.hD06-May-20251.5 KiB5330

memberExpressionBuilder.hD06-May-20251.7 KiB6036

metaPropertyBuilder.hD06-May-20251.4 KiB4624

methodDefinitionBuilder.hD06-May-20251.9 KiB6742

namedTypeBuilder.hD06-May-20251.3 KiB4624

newExpressionBuilder.hD06-May-20251.7 KiB6238

nullLiteralBuilder.hD06-May-20251.2 KiB3918

numberLiteralBuilder.hD06-May-20251.3 KiB4624

omittedExpressionBuilder.hD06-May-20251.2 KiB3918

opaqueTypeNodeBuilder.hD06-May-20251.3 KiB4624

prefixAssertionExpressionBuilder.hD06-May-20251.6 KiB5330

propertyBuilder.hD06-May-20251.9 KiB7448

regExpLiteralBuilder.hD06-May-20251.7 KiB6036

returnStatementBuilder.hD06-May-20251.2 KiB3918

scriptFunctionBuilder.hD06-May-20251.7 KiB4826

sequenceExpressionBuilder.hD06-May-20251.5 KiB4927

stringLiteralBuilder.hD06-May-20251.3 KiB4624

superExpressionBuilder.hD06-May-20251.2 KiB3918

switchCaseStatementBuilder.hD06-May-20251.7 KiB5633

switchStatementBuilder.hD06-May-20251.8 KiB6238

taggedTemplateExpressionBuilder.hD06-May-20251.8 KiB6036

templateElementBuilder.hD06-May-20251.5 KiB5330

templateLiteralBuilder.hD06-May-20251.7 KiB5633

thisExpressionBuilder.hD06-May-20251.2 KiB3918

throwStatementBuilder.hD06-May-20251.3 KiB4624

tryStatementBuilder.hD06-May-20252.1 KiB7045

tsAnyKeywordBuilder.hD06-May-20251.2 KiB3918

tsArrayTypeBuilder.hD06-May-20251.3 KiB4624

tsAsExpressionBuilder.hD06-May-20251.7 KiB6036

tsBigintKeywordBuilder.hD06-May-20251.2 KiB3918

tsBooleanKeywordBuilder.hD06-May-20251.2 KiB3918

tsClassImplementsBuilder.hD06-May-20251.6 KiB5330

tsConditionalTypeBuilder.hD06-May-20251.9 KiB6742

tsEnumDeclarationBuilder.hD06-May-20252.1 KiB7852

tsEnumMemberBuilder.hD06-May-20251.4 KiB5330

tsFunctionTypeBuilder.hD06-May-20251.4 KiB4624

tsImportEqualsDeclarationBuilder.hD06-May-20251.8 KiB6036

tsImportTypeBuilder.hD06-May-20251.8 KiB6742

tsIndexSignatureBuilder.hD06-May-20251.7 KiB6036

tsIndexedAccessTypeBuilder.hD06-May-20251.6 KiB5330

tsInferTypeBuilder.hD06-May-20251.3 KiB4624

tsInterfaceBodyBuilder.hD06-May-20251.4 KiB4826

tsInterfaceHeritageBuilder.hD06-May-20251.4 KiB4624

tsIntersectionTypeBuilder.hD06-May-20251.4 KiB4927

tsLiteralTypeBuilder.hD06-May-20251.3 KiB4624

tsMappedTypeBuilder.hD06-May-20251.9 KiB6742

tsMethodSignatureBuilder.hD06-May-20251.9 KiB6742

tsModuleBlockBuilder.hD06-May-20251.4 KiB4927

tsModuleDeclarationBuilder.hD06-May-20251.9 KiB6843

tsNamedTupleMemberBuilder.hD06-May-20251.7 KiB6036

tsNeverKeywordBuilder.hD06-May-20251.2 KiB3918

tsNonNullExpressionBuilder.hD06-May-20251.4 KiB4624

tsNullKeywordBuilder.hD06-May-20251.2 KiB3918

tsNumberKeywordBuilder.hD06-May-20251.2 KiB3918

tsObjectKeywordBuilder.hD06-May-20251.2 KiB3918

tsParenthesizedTypeBuilder.hD06-May-20251.4 KiB4624

tsPropertySignatureBuilder.hD06-May-20252 KiB7448

tsQualifiedNameBuilder.hD06-May-20251.5 KiB5330

tsSignatureDeclarationBuilder.hD06-May-20251.8 KiB5431

tsStringKeywordBuilder.hD06-May-20251.2 KiB3918

tsThisTypeBuilder.hD06-May-20251.1 KiB3918

tsTupleTypeBuilder.hD06-May-20251.4 KiB4927

tsTypeAliasDeclarationBuilder.hD06-May-20251.8 KiB6036

tsTypeAssertionBuilder.hD06-May-20251.6 KiB5330

tsTypeLiteralBuilder.hD06-May-20251.4 KiB4927

tsTypeOperatorBuilder.hD06-May-20251.5 KiB5330

tsTypeParameterBuilder.hD06-May-20251.7 KiB6036

tsTypeParameterDeclarationBuilder.hD06-May-20251.7 KiB5633

tsTypeParameterInstantiationBuilder.hD06-May-20251.7 KiB5532

tsTypePredicateBuilder.hD06-May-20251.7 KiB6036

tsTypeQueryBuilder.hD06-May-20251.3 KiB4624

tsTypeReferenceBuilder.hD06-May-20251.6 KiB5330

tsUndefinedKeywordBuilder.hD06-May-20251.2 KiB3918

tsUnionTypeBuilder.hD06-May-20251.4 KiB4624

tsUnknownKeywordBuilder.hD06-May-20251.2 KiB3918

tsVoidKeywordBuilder.hD06-May-20251.2 KiB3918

typeofExpressionBuilder.hD06-May-20251.4 KiB4624

unaryExpressionBuilder.hD06-May-20251.5 KiB5330

undefinedLiteralBuilder.hD06-May-20251.2 KiB3918

updateExpressionBuilder.hD06-May-20251.7 KiB6036

variableDeclarationBuilder.hD06-May-20252 KiB6238

variableDeclaratorBuilder.hD06-May-20251.6 KiB5431

whileStatementBuilder.hD06-May-20251.5 KiB5330

yieldExpressionBuilder.hD06-May-20251.5 KiB5330

README.md

1# DSL for build AST tree
2
3## Usage
4
5All nodes of AST tree builder is header only.
6
7For use DSL for AST tree builder:
8
91. Include header with needed node
102. Create builder:
11
12    1. All builder methods, except method `Build`, return `ASTBuilder` class.
13    2. Builder constructor have `Allocator` argument, that must be sended.
14    3. For set arguments for construct node we have methods that starts with `Set` or `Add`. For all necessary fields for constructor we have methods for set them.
15    4. All builders have method `SetParent`, it can be used for set parent node.
16    5. To get node from builder you must to use method `Build`
17
18    Example:
19    ```cpp
20    // Create NumberLiteralBuildr, set value and build it. Variable `left` is NumberLiteral after call `Build` method.
21    auto left = NumberLiteralBuilder(Allocator()).SetValue("10").Build();
22    auto right = NumberLiteralBuilder(Allocator()).SetValue("5").Build();
23    // Create BinaryExpressionBuilder, set left operand, set right operand, set operator and build BinaryExpression node.
24    auto binaryExpr = BinaryExpressionBuilder(Allocator())
25                          .SetLeft(left)
26                          .SetRight(right)
27                          .SetOperator(ark::es2panda::lexer::TokenType::PUNCTUATOR_PLUS)
28                          .Build();
29    ```
30
31    *Note: More examples can be found in `ets_frontend/ets2panda/test/unit/public/ast_builder_test.cpp`*
32
33## List of implemented nodes
34
35<details>
36    <summary>Implemented nodes</summary>
37
38        * AwaitExpression
39        * BigintLiteral
40        * BinaryExpression
41        * BlockExpression
42        * BlockStatement
43        * BooleanLiteral
44        * BreakStatement
45        * CallExpression
46        * CharLiteral
47        * ClassDeclaration
48        * ClassDefenition
49        * ClassPropery
50        * ETSTypeReference
51        * ETSTypeReferencePart
52        * ExportDefaultDeclaration
53        * ExpressionStatement
54        * FunctionExpression
55        * Identifier
56        * IfStatement
57        * MemberExpression
58        * MethodDefinition
59        * NullLiteral
60        * NumberLiteral
61        * OpaqueTypeNode
62        * ScriptFunction
63        * Statement
64        * StringLiteral
65        * SuperExpression
66        * SwitchCaseStatement
67        * SwitchStatement
68        * ThisExpression
69        * TSClassImplements
70        * TSEnumDeclaration
71        * TSEnumMember
72        * TSTypeParameterInstantiation
73        * UnaryExpression
74        * UndefinedLiteral
75        * UpdateExpression
76        * VariableDeclaration
77        * VariableDeclarator
78        * WhileStatement
79        * YieldExpression
80
81</details>
82
83*Note: list of implemented nodes actual by 2024.07.03*