Class: JavaScriptTargetCodeGenerator
The JavaScript target-specific code generator for translating Kipper code into JavaScript.
Since
0.10.0
Hierarchy
unknown
↳
JavaScriptTargetCodeGenerator
Table of contents
Constructors
Methods
- additiveExpression
- arrayPrimaryExpression
- assignmentExpression
- bitwiseAndExpression
- bitwiseOrExpression
- bitwiseShiftExpression
- bitwiseXorExpression
- boolPrimaryExpression
- castOrConvertExpression
- compoundStatement
- conditionalExpression
- doWhileLoopIterationStatement
- equalityExpression
- expressionStatement
- fStringPrimaryExpression
- forLoopIterationStatement
- functionCallExpression
- functionDeclaration
- genericTypeSpecifierExpression
- identifierPrimaryExpression
- identifierTypeSpecifierExpression
- ifStatement
- incrementOrDecrementPostfixExpression
- incrementOrDecrementUnaryExpression
- jumpStatement
- lambdaExpression
- logicalAndExpression
- logicalOrExpression
- memberAccessExpression
- multiplicativeExpression
- numberPrimaryExpression
- objectPrimaryExpression
- objectProperty
- operatorModifiedUnaryExpression
- parameterDeclaration
- relationalExpression
- returnStatement
- setUp
- stringPrimaryExpression
- switchStatement
- tangledPrimaryExpression
- translateOperatorExpressionWithOperands
- typeofTypeSpecifierExpression
- variableDeclaration
- voidOrNullOrUndefinedPrimaryExpression
- whileLoopIterationStatement
- wrapUp
Constructors
constructor
• new JavaScriptTargetCodeGenerator()
Inherited from
KipperTargetCodeGenerator.constructor
Methods
additiveExpression
▸ additiveExpression(node
): Promise
<TranslatedExpression
>
Translates a AdditiveExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
AdditiveExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:652
arrayPrimaryExpression
▸ arrayPrimaryExpression(node
): Promise
<TranslatedExpression
>
Translates a ArrayPrimaryExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
ArrayPrimaryExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:401
assignmentExpression
▸ assignmentExpression(node
): Promise
<TranslatedExpression
>
Translates a AssignmentExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
AssignmentExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:759
bitwiseAndExpression
▸ bitwiseAndExpression(node
): Promise
<TranslatedExpression
>
Translates a BitwiseAndExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
BitwiseAndExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:712
bitwiseOrExpression
▸ bitwiseOrExpression(node
): Promise
<TranslatedExpression
>
Translates a BitwiseOrExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
BitwiseOrExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:705
bitwiseShiftExpression
▸ bitwiseShiftExpression(node
): Promise
<TranslatedExpression
>
Translates a BitwiseShiftExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
BitwiseShiftExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:726
bitwiseXorExpression
▸ bitwiseXorExpression(node
): Promise
<TranslatedExpression
>
Translates a BitwiseXorExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
BitwiseXorExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:719
boolPrimaryExpression
▸ boolPrimaryExpression(node
): Promise
<TranslatedExpression
>
Translates a BoolPrimaryExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
BoolPrimaryExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:524
castOrConvertExpression
▸ castOrConvertExpression(node
): Promise
<TranslatedExpression
>
Translates a CastOrConvertExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
CastOrConvertExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:613
compoundStatement
▸ compoundStatement(node
): Promise
<TranslatedCodeLine
[]>
Translates a CompoundStatement into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
CompoundStatement |
Returns
Promise
<TranslatedCodeLine
[]>
Defined in
kipper/target-js/src/code-generator.ts:136
conditionalExpression
▸ conditionalExpression(node
): Promise
<TranslatedExpression
>
Translates a ConditionalExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
ConditionalExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:747
doWhileLoopIterationStatement
▸ doWhileLoopIterationStatement(node
): Promise
<TranslatedCodeLine
[]>
Translates a DoWhileLoopIterationStatement into the JavaScript language.
Since
0.10.0
Parameters
Name | Type |
---|---|
node |
DoWhileLoopIterationStatement |
Returns
Promise
<TranslatedCodeLine
[]>
Defined in
kipper/target-js/src/code-generator.ts:247
equalityExpression
▸ equalityExpression(node
): Promise
<TranslatedExpression
>
Translates a EqualityExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
EqualityExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:698
expressionStatement
▸ expressionStatement(node
): Promise
<TranslatedCodeLine
[]>
Translates a ExpressionStatement into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
ExpressionStatement |
Returns
Promise
<TranslatedCodeLine
[]>
Defined in
kipper/target-js/src/code-generator.ts:232
fStringPrimaryExpression
▸ fStringPrimaryExpression(node
): Promise
<TranslatedExpression
>
Translates a FStringPrimaryExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
FStringPrimaryExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:508
forLoopIterationStatement
▸ forLoopIterationStatement(node
): Promise
<TranslatedCodeLine
[]>
Translates a ForLoopIterationStatement into the JavaScript language.
Since
0.10.0
Parameters
Name | Type |
---|---|
node |
ForLoopIterationStatement |
Returns
Promise
<TranslatedCodeLine
[]>
Defined in
kipper/target-js/src/code-generator.ts:285
functionCallExpression
▸ functionCallExpression(node
): Promise
<TranslatedExpression
>
Translates a FunctionCallExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
FunctionCallExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:562
functionDeclaration
▸ functionDeclaration(node
): Promise
<TranslatedCodeLine
[]>
Translates a FunctionDeclaration into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
FunctionDeclaration |
Returns
Promise
<TranslatedCodeLine
[]>
Defined in
kipper/target-js/src/code-generator.ts:364
genericTypeSpecifierExpression
▸ genericTypeSpecifierExpression(node
): Promise
<TranslatedExpression
>
Translates a GenericTypeSpecifierExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
GenericTypeSpecifierExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:485
identifierPrimaryExpression
▸ identifierPrimaryExpression(node
): Promise
<TranslatedExpression
>
Translates a IdentifierPrimaryExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
IdentifierPrimaryExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:424
identifierTypeSpecifierExpression
▸ identifierTypeSpecifierExpression(node
): Promise
<TranslatedExpression
>
Translates a IdentifierTypeSpecifierExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
IdentifierTypeSpecifierExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:476
ifStatement
▸ ifStatement(node
): Promise
<TranslatedCodeLine
[]>
Translates a IfStatement into the JavaScript language.
Implementation notes:
- This algorithm is indirectly recursive, as else-if statements are handling like else statements with an immediate if statement in them.
- The formatting algorithm tries to start at the top and slowly go down each area of the abstract syntax tree. First the starting 'if' will be formatted, and afterwards the alternative branches are processed if they exists. If they do, it is also formatted like with a regular starting 'if', unless there is another nested if-statement in which case it will pass that job down to the child if-statement.
Since
0.10.0
Parameters
Name | Type |
---|---|
node |
IfStatement |
Returns
Promise
<TranslatedCodeLine
[]>
Defined in
kipper/target-js/src/code-generator.ts:157
incrementOrDecrementPostfixExpression
▸ incrementOrDecrementPostfixExpression(node
): Promise
<TranslatedExpression
>
Translates a IncrementOrDecrementPostfixExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
IncrementOrDecrementPostfixExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:550
incrementOrDecrementUnaryExpression
▸ incrementOrDecrementUnaryExpression(node
): Promise
<TranslatedExpression
>
Translates a IncrementOrDecrementUnaryExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
IncrementOrDecrementUnaryExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:586
jumpStatement
▸ jumpStatement(node
): Promise
<TranslatedCodeLine
[]>
Translates a JumpStatement into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
JumpStatement |
Returns
Promise
<TranslatedCodeLine
[]>
Defined in
kipper/target-js/src/code-generator.ts:338
lambdaExpression
▸ lambdaExpression(node
): Promise
<TranslatedExpression
>
Parameters
Name | Type |
---|---|
node |
LambdaExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:775
logicalAndExpression
▸ logicalAndExpression(node
): Promise
<TranslatedExpression
>
Translates a LogicalAndExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
LogicalAndExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:733
logicalOrExpression
▸ logicalOrExpression(node
): Promise
<TranslatedExpression
>
Translates a LogicalOrExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
LogicalOrExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:740
memberAccessExpression
▸ memberAccessExpression(node
): Promise
<TranslatedExpression
>
Translates a IdentifierPrimaryExpression into the JavaScript language.
Since
0.10.0
Parameters
Name | Type |
---|---|
node |
MemberAccessExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:440
multiplicativeExpression
▸ multiplicativeExpression(node
): Promise
<TranslatedExpression
>
Translates a MultiplicativeExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
MultiplicativeExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:633
numberPrimaryExpression
▸ numberPrimaryExpression(node
): Promise
<TranslatedExpression
>
Translates a NumberPrimaryExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
NumberPrimaryExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:390
objectPrimaryExpression
▸ objectPrimaryExpression(node
): Promise
<TranslatedExpression
>
Translates a ObjectPrimaryExpression into the JavaScript language.
Since
0.11.0
Parameters
Name | Type |
---|---|
node |
ObjectPrimaryExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:409
objectProperty
▸ objectProperty(node
): Promise
<TranslatedExpression
>
Translates a ObjectProperty into the JavaScript language.
Since
0.11.0
Parameters
Name | Type |
---|---|
node |
ObjectProperty |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:417
operatorModifiedUnaryExpression
▸ operatorModifiedUnaryExpression(node
): Promise
<TranslatedExpression
>
Translates a OperatorModifiedUnaryExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
OperatorModifiedUnaryExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:598
parameterDeclaration
▸ parameterDeclaration(node
): Promise
<TranslatedCodeLine
[]>
Translates a ParameterDeclaration into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
ParameterDeclaration |
Returns
Promise
<TranslatedCodeLine
[]>
Defined in
kipper/target-js/src/code-generator.ts:357
relationalExpression
▸ relationalExpression(node
): Promise
<TranslatedExpression
>
Translates a RelationalExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
RelationalExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:691
returnStatement
▸ returnStatement(node
): Promise
<TranslatedCodeLine
[]>
Translates a ReturnStatement into the JavaScript language.
Since
0.10.0
Parameters
Name | Type |
---|---|
node |
ReturnStatement |
Returns
Promise
<TranslatedCodeLine
[]>
Defined in
kipper/target-js/src/code-generator.ts:347
setUp
▸ setUp(programCtx
): Promise
<TranslatedCodeLine
[]>
Code generation function, which is called at the start of a translation and generates the dependencies for a file in the target language.
This should be only used to set up a Kipper file in the target language and not as a replacement to KipperTargetBuiltInGenerator.
Since
0.10.0
Parameters
Name | Type |
---|---|
programCtx |
KipperProgramContext |
Returns
Promise
<TranslatedCodeLine
[]>
Defined in
kipper/target-js/src/code-generator.ts:88
stringPrimaryExpression
▸ stringPrimaryExpression(node
): Promise
<TranslatedExpression
>
Translates a StringPrimaryExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
StringPrimaryExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:499
switchStatement
▸ switchStatement(node
): Promise
<TranslatedCodeLine
[]>
Translates a SwitchStatement into the JavaScript language.
Since
0.10.0
Parameters
Name | Type |
---|---|
node |
SwitchStatement |
Returns
Promise
<TranslatedCodeLine
[]>
Defined in
kipper/target-js/src/code-generator.ts:225
tangledPrimaryExpression
▸ tangledPrimaryExpression(node
): Promise
<TranslatedExpression
>
Translates a TangledPrimaryExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
TangledPrimaryExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:531
translateOperatorExpressionWithOperands
▸ Private
translateOperatorExpressionWithOperands(node
): Promise
<TranslatedExpression
>
Translates any form of operator-based expression with two operands into the JavaScript language.
Since
0.10.0
Parameters
Name | Type | Description |
---|---|---|
node |
any |
The node to translate. |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:667
typeofTypeSpecifierExpression
▸ typeofTypeSpecifierExpression(node
): Promise
<TranslatedExpression
>
Translates a TypeofTypeSpecifierExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
TypeofTypeSpecifierExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:492
variableDeclaration
▸ variableDeclaration(node
): Promise
<TranslatedCodeLine
[]>
Translates a VariableDeclaration into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
VariableDeclaration |
Returns
Promise
<TranslatedCodeLine
[]>
Defined in
kipper/target-js/src/code-generator.ts:378
voidOrNullOrUndefinedPrimaryExpression
▸ voidOrNullOrUndefinedPrimaryExpression(node
): Promise
<TranslatedExpression
>
Translates a IncrementOrDecrementPostfixExpression into the JavaScript language.
Parameters
Name | Type |
---|---|
node |
VoidOrNullOrUndefinedPrimaryExpression |
Returns
Promise
<TranslatedExpression
>
Defined in
kipper/target-js/src/code-generator.ts:539
whileLoopIterationStatement
▸ whileLoopIterationStatement(node
): Promise
<TranslatedCodeLine
[]>
Translates a WhileLoopIterationStatement into the JavaScript language.
Since
0.10.0
Parameters
Name | Type |
---|---|
node |
WhileLoopIterationStatement |
Returns
Promise
<TranslatedCodeLine
[]>
Defined in
kipper/target-js/src/code-generator.ts:266
wrapUp
▸ wrapUp(programCtx
): Promise
<TranslatedCodeLine
[]>
Code generation function, which is called at the end of a translation and should wrap up a program in the target language.
This should be only used to add additional items to finish a Kipper file in the target language and not as a replacement to KipperTargetBuiltInGenerator.
Since
0.10.0
Parameters
Name | Type |
---|---|
programCtx |
KipperProgramContext |
Returns
Promise
<TranslatedCodeLine
[]>
Defined in
kipper/target-js/src/code-generator.ts:129