Oops that shouldn't have happened! Please enable Java-Script to use our site!
  • 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

    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