• Home
Name Date Size #Lines LOC

..--

README.mdD16-Dec-20242.6 KiB8371

astBuilder.hD16-Dec-20241.3 KiB4422

awaitExpressionBuilder.hD16-Dec-20241.6 KiB5532

bigintLiteralBuilder.hD16-Dec-20241.5 KiB5330

binaryExpressionBuilder.hD16-Dec-20241.9 KiB6944

blockExpressionBuilder.hD16-Dec-20241.8 KiB6238

blockStatementBuilder.hD16-Dec-20241.8 KiB6541

booleanLiteralBuilder.hD16-Dec-20241.5 KiB5330

breakStatementBuilder.hD16-Dec-20241.4 KiB4624

callExpressionBuilder.hD16-Dec-20242 KiB7045

charLiteralBuilder.hD16-Dec-20241.5 KiB5330

classDeclarationBuilder.hD16-Dec-20241.8 KiB6440

classDefinitionBuilder.hD16-Dec-20243.3 KiB10979

classPropertyBuilder.hD16-Dec-20241.9 KiB6843

etsTypeReferenceBuilder.hD16-Dec-20241.7 KiB5734

etsTypeReferencePartBuilder.hD16-Dec-20241.9 KiB6742

exportDefaultDeclarationBuilder.hD16-Dec-20241.7 KiB6036

expressionStatementBuilder.hD16-Dec-20241.6 KiB5531

functionExpressionBuilder.hD16-Dec-20241.5 KiB5330

identifierBuilder.hD16-Dec-20241.5 KiB5531

ifStatementBuilder copy.hD16-Dec-20241.7 KiB6742

ifStatementBuilder.hD16-Dec-20241.8 KiB6742

memberExpressionBuilder.hD16-Dec-20241.9 KiB6742

methodDefinitionBuilder.hD16-Dec-20242.1 KiB7549

nullLiteralBuilder.hD16-Dec-20241.3 KiB4624

numberLiteralBuilder.hD16-Dec-20241.5 KiB5431

opaqueTypeNodeBuilder.hD16-Dec-20241.5 KiB5330

scriptFunctionBuilder.hD16-Dec-20241.7 KiB5633

stringLiteralBuilder.hD16-Dec-20241.5 KiB5431

superExpressionBuilder.hD16-Dec-20241.3 KiB4624

switchCaseStatementBuilder.hD16-Dec-20241.8 KiB6339

switchStatementBuilder.hD16-Dec-20241.9 KiB6944

thisExpressionBuilder.hD16-Dec-20241.4 KiB4624

tsClassImplementsBuilder.hD16-Dec-20241.8 KiB6036

tsEnumDeclarationBuilder.hD16-Dec-20242.3 KiB8659

tsEnumMemberBuilder.hD16-Dec-20241.6 KiB6036

tsTypeParameterInstantiationBuilder.hD16-Dec-20241.9 KiB6238

unaryExpressionBuilder.hD16-Dec-20241.7 KiB6137

undefinedLiteralBuilder.hD16-Dec-20241.4 KiB4624

updateExpressionBuilder.hD16-Dec-20241.9 KiB6843

variableDeclarationBuilder.hD16-Dec-20242.3 KiB7751

variableDeclaratorBuilder.hD16-Dec-20241.8 KiB6137

whileStatementBuilder.hD16-Dec-20241.6 KiB6036

yieldExpressionBuilder.hD16-Dec-20241.7 KiB6036

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*