AstCreator

io.joern.jssrc2cpg.astcreation.AstCreator
class AstCreator(val config: Config, val parserResult: ParseResult, val usedTypes: ConcurrentHashMap[(String, String), Boolean]) extends AstCreatorBase with AstForExpressionsCreator with AstForPrimitivesCreator with AstForTypesCreator with AstForFunctionsCreator with AstForDeclarationsCreator with AstForStatementsCreator with AstForTemplateDomCreator with AstNodeBuilder with TypeHelper with AstCreatorHelper

Attributes

Graph
Supertypes

Members list

Concise view

Type members

Inherited classlikes

case class MethodAst(ast: Ast, methodNode: NewMethod, methodAst: Ast)

Attributes

Inherited from:
AstForFunctionsCreator
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Value members

Concrete methods

override def absolutePath(filename: String): String

Absolute path for the given file name

Absolute path for the given file name

Attributes

Definition Classes
AstCreatorBase
protected def astForNode(json: Value): Ast
protected def astForNodeWithFunctionReference(json: Value): Ast
protected def astForNodeWithFunctionReferenceAndCall(json: Value): Ast
protected def astForNodes(jsons: List[Value]): List[Ast]
override def createAst(): DiffGraphBuilder

Attributes

Definition Classes
AstCreatorBase

Inherited methods

protected def addModifier(node: NewNode, json: Value): Unit

Attributes

Inherited from:
AstForTypesCreator
protected def astForArrayExpression(arrExpr: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForExpressionsCreator
protected def astForAssignmentExpression(assignment: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForExpressionsCreator
protected def astForAwaitExpression(awaitExpr: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForExpressionsCreator
protected def astForBigIntLiteral(bigIntLiteral: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForPrimitivesCreator
protected def astForBinaryExpression(binExpr: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForExpressionsCreator
protected def astForBlockStatement(block: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForStatementsCreator
protected def astForBooleanLiteral(booleanLiteral: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForPrimitivesCreator
protected def astForBreakStatement(breakStmt: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForStatementsCreator
protected def astForCallExpression(callExpr: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForExpressionsCreator
protected def astForCastExpression(castExpr: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForExpressionsCreator
protected def astForClass(clazz: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForTypesCreator
protected def astForConditionalExpression(ternary: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForExpressionsCreator
protected def astForContinueStatement(continueStmt: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForStatementsCreator
protected def astForDecimalLiteral(decimalLiteral: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForPrimitivesCreator
protected def astForDeconstruction(pattern: BabelNodeInfo, sourceAst: Ast, paramName: Option[String]): Ast

Attributes

Inherited from:
AstForDeclarationsCreator
protected def astForDoWhileStatement(doWhileStmt: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForStatementsCreator
protected def astForEnum(tsEnum: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForTypesCreator
protected def astForExportAllDeclaration(declaration: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForDeclarationsCreator
protected def astForExportAssignment(assignment: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForDeclarationsCreator
protected def astForExportDefaultDeclaration(declaration: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForDeclarationsCreator
protected def astForExportNamedDeclaration(declaration: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForDeclarationsCreator
protected def astForExpressionStatement(exprStmt: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForExpressionsCreator
protected def astForForStatement(forStmt: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForStatementsCreator
protected def astForFunctionDeclaration(func: BabelNodeInfo, shouldCreateFunctionReference: Boolean, shouldCreateAssignmentCall: Boolean): Ast

Attributes

Inherited from:
AstForFunctionsCreator
protected def astForIdentifier(ident: BabelNodeInfo, typeFullName: Option[String]): Ast

Attributes

Inherited from:
AstForPrimitivesCreator

Attributes

Inherited from:
AstForStatementsCreator
protected def astForImportDeclaration(impDecl: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForDeclarationsCreator
protected def astForImportKeyword(importKeyword: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForPrimitivesCreator
protected def astForInOfStatement(forInOfStmt: BabelNodeInfo): Ast

De-sugaring from:

De-sugaring from:

for (var i in/of arr) { body }

to:

{ var _iterator = Object.keys(arr)Symbol.iterator; var _result; var i; while (!(_result = _iterator.next()).done) { i = _result.value; body } }

Attributes

Inherited from:
AstForStatementsCreator
protected def astForInterface(tsInterface: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForTypesCreator
protected def astForJsxAttribute(jsxAttr: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForTemplateDomCreator
protected def astForJsxClosingElement(jsxClosingElem: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForTemplateDomCreator
protected def astForJsxElement(jsxElem: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForTemplateDomCreator
protected def astForJsxExprContainer(jsxExprContainer: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForTemplateDomCreator
protected def astForJsxFragment(jsxFragment: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForTemplateDomCreator
protected def astForJsxOpeningElement(jsxOpeningElem: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForTemplateDomCreator
protected def astForJsxSpreadAttribute(jsxSpreadAttr: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForTemplateDomCreator
protected def astForJsxText(jsxText: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForTemplateDomCreator
protected def astForLabeledStatement(labelStmt: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForStatementsCreator
protected def astForLogicalExpression(logicalExpr: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForExpressionsCreator
protected def astForMemberExpression(memberExpr: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForExpressionsCreator
protected def astForModule(tsModuleDecl: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForTypesCreator
protected def astForNewExpression(newExpr: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForExpressionsCreator
protected def astForNullLiteral(nullLiteral: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForPrimitivesCreator
protected def astForNumberLiteral(numberLiteral: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForPrimitivesCreator
protected def astForNumericLiteral(numericLiteral: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForPrimitivesCreator
protected def astForObjectExpression(objExpr: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForExpressionsCreator
protected def astForRegExpLiteral(regExpLiteral: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForPrimitivesCreator
protected def astForRegexLiteral(regexLiteral: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForPrimitivesCreator
protected def astForReturnStatement(ret: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForStatementsCreator
protected def astForSequenceExpression(seq: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForExpressionsCreator
protected def astForSpreadElement(spreadElement: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForPrimitivesCreator
protected def astForStringLiteral(stringLiteral: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForPrimitivesCreator
protected def astForSuperKeyword(superKeyword: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForPrimitivesCreator
protected def astForSwitchStatement(switchStmt: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForStatementsCreator
protected def astForTSDeclareFunction(func: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForFunctionsCreator
protected def astForTSImportEqualsDeclaration(impDecl: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForDeclarationsCreator
protected def astForTemplateElement(templateElement: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForPrimitivesCreator
def astForTemplateExpression(templateExpr: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForExpressionsCreator
protected def astForTemplateLiteral(templateLiteral: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForPrimitivesCreator
protected def astForThisExpression(thisExpr: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForExpressionsCreator
protected def astForThrowStatement(throwStmt: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForStatementsCreator
protected def astForTryStatement(tryStmt: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForStatementsCreator
protected def astForTypeAlias(alias: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForTypesCreator
protected def astForUnaryExpression(unaryExpr: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForExpressionsCreator
protected def astForUpdateExpression(updateExpr: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForExpressionsCreator
protected def astForVariableDeclaration(declaration: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForDeclarationsCreator
protected def astForWhileStatement(whileStmt: BabelNodeInfo): Ast

Attributes

Inherited from:
AstForStatementsCreator
def blockAst(blockNode: NewBlock, statements: List[Ast]): Ast

For a given block node and statement ASTs, create an AST that represents the block. The main purpose of this method is to increase the readability of the code which creates block asts.

For a given block node and statement ASTs, create an AST that represents the block. The main purpose of this method is to increase the readability of the code which creates block asts.

Attributes

Inherited from:
AstCreatorBase
protected def calcMethodNameAndFullName(func: BabelNodeInfo): (String, String)

Attributes

Inherited from:
AstCreatorHelper
protected def calcTypeNameAndFullName(classNode: BabelNodeInfo, preCalculatedName: Option[String]): (String, String)

Attributes

Inherited from:
AstCreatorHelper
def callAst(callNode: NewCall, arguments: Seq[Ast], receiver: Option[Ast], withRecvArgEdge: Boolean): Ast

For a given call node, arguments, and optionally, a receiver, create an AST that represents the call site. The main purpose of this method is to automatically assign the correct argument indices.

For a given call node, arguments, and optionally, a receiver, create an AST that represents the call site. The main purpose of this method is to automatically assign the correct argument indices.

Attributes

Inherited from:
AstCreatorBase
protected def code(node: Value): String

Attributes

Inherited from:
AstCreatorHelper
protected def codeForBabelNodeInfo(obj: BabelNodeInfo): Seq[String]

Attributes

Inherited from:
AstForDeclarationsCreator
protected def codeForNodes(nodes: Seq[NewNode]): Option[String]

Attributes

Inherited from:
AstCreatorHelper
protected def codeOf(node: NewNode): String

Attributes

Inherited from:
AstNodeBuilder
protected def column(node: Value): Option[Integer]

Attributes

Inherited from:
AstCreatorHelper
protected def columnEnd(node: Value): Option[Integer]

Attributes

Inherited from:
AstCreatorHelper
def controlStructureAst(controlStructureNode: NewControlStructure, condition: Option[Ast], children: List[Ast], placeConditionLast: Boolean): Ast

For a given node, condition AST and children ASTs, create an AST that represents the control structure. The main purpose of this method is to automatically assign the correct condition edges.

For a given node, condition AST and children ASTs, create an AST that represents the control structure. The main purpose of this method is to automatically assign the correct condition edges.

Attributes

Inherited from:
AstCreatorBase
protected def convertDestructingObjectElementWithDefault(element: BabelNodeInfo, key: BabelNodeInfo, localTmpName: String): Ast

Attributes

Inherited from:
AstForDeclarationsCreator
protected def createAssignmentCallAst(dest: Ast, source: Ast, code: String, line: Option[Integer], column: Option[Integer]): Ast

Attributes

Inherited from:
AstNodeBuilder
protected def createAssignmentCallAst(destId: NewNode, sourceId: NewNode, code: String, line: Option[Integer], column: Option[Integer]): Ast

Attributes

Inherited from:
AstNodeBuilder
protected def createBabelNodeInfo(json: Value): BabelNodeInfo

Attributes

Inherited from:
AstCreatorHelper
protected def createBindingNode(): NewBinding

Attributes

Inherited from:
AstNodeBuilder
protected def createBlockNode(node: BabelNodeInfo): NewBlock

Attributes

Inherited from:
AstNodeBuilder
protected def createBlockStatementAsts(json: Value): List[Ast]

Attributes

Inherited from:
AstForStatementsCreator
protected def createCallAst(callNode: NewCall, arguments: List[Ast], receiver: Option[Ast], base: Option[Ast]): Ast

Attributes

Inherited from:
AstNodeBuilder
protected def createCallNode(code: String, callName: String, dispatchType: String, line: Option[Integer], column: Option[Integer]): NewCall

Attributes

Inherited from:
AstNodeBuilder
protected def createClosureBindingNode(closureBindingId: String, closureOriginalName: String): NewClosureBinding

Attributes

Inherited from:
AstNodeBuilder
protected def createControlStructureNode(node: BabelNodeInfo, controlStructureType: String): NewControlStructure

Attributes

Inherited from:
AstNodeBuilder
protected def createDependencyNode(name: String, groupId: String, version: String): NewDependency

Attributes

Inherited from:
AstNodeBuilder
protected def createEqualsCallAst(dest: Ast, source: Ast, line: Option[Integer], column: Option[Integer]): Ast

Attributes

Inherited from:
AstNodeBuilder
protected def createFieldAccessCallAst(baseAst: Ast, partNode: NewNode, line: Option[Integer], column: Option[Integer]): Ast

Attributes

Inherited from:
AstNodeBuilder
protected def createFieldAccessCallAst(baseNode: NewNode, partNode: NewNode, line: Option[Integer], column: Option[Integer]): Ast

Attributes

Inherited from:
AstNodeBuilder
protected def createFieldIdentifierNode(name: String, line: Option[Integer], column: Option[Integer]): NewFieldIdentifier

Attributes

Inherited from:
AstNodeBuilder
protected def createFunctionTypeAndTypeDeclAst(methodNode: NewMethod, parentNode: NewNode, methodName: String, methodFullName: String, filename: String): Ast

Attributes

Inherited from:
AstNodeBuilder
protected def createIdentifierNode(name: String, dynamicTypeOption: Option[String], line: Option[Integer], column: Option[Integer]): NewIdentifier

Attributes

Inherited from:
AstNodeBuilder
protected def createIdentifierNode(name: String, node: BabelNodeInfo): NewIdentifier

Attributes

Inherited from:
AstNodeBuilder
protected def createImportNode(impDecl: BabelNodeInfo, importedEntity: Option[String], importedAs: String): NewImport

Attributes

Inherited from:
AstNodeBuilder
protected def createIndexAccessCallAst(baseAst: Ast, partAst: Ast, line: Option[Integer], column: Option[Integer]): Ast

Attributes

Inherited from:
AstNodeBuilder
protected def createIndexAccessCallAst(baseNode: NewNode, partNode: NewNode, line: Option[Integer], column: Option[Integer]): Ast

Attributes

Inherited from:
AstNodeBuilder
protected def createJumpTarget(switchCase: BabelNodeInfo): NewJumpTarget

Attributes

Inherited from:
AstNodeBuilder
protected def createLiteralNode(code: String, dynamicTypeOption: Option[String], line: Option[Integer], column: Option[Integer]): NewLiteral

Attributes

Inherited from:
AstNodeBuilder
protected def createLocalNode(name: String, typeFullName: String, closureBindingId: Option[String]): NewLocal

Attributes

Inherited from:
AstNodeBuilder
protected def createMemberNode(name: String, code: String, dynamicTypeOption: Option[String]): NewMember

Attributes

Inherited from:
AstNodeBuilder
protected def createMethodAstAndNode(func: BabelNodeInfo, shouldCreateFunctionReference: Boolean, shouldCreateAssignmentCall: Boolean, methodBlockContent: List[Ast]): MethodAst

Attributes

Inherited from:
AstForFunctionsCreator
protected def createMethodDefinitionNode(func: BabelNodeInfo, methodBlockContent: List[Ast]): NewMethod

Attributes

Inherited from:
AstForFunctionsCreator
protected def createMethodNode(methodName: String, methodFullName: String, func: BabelNodeInfo): NewMethod

Attributes

Inherited from:
AstNodeBuilder
protected def createMethodRefNode(code: String, methodFullName: String, func: BabelNodeInfo): NewMethodRef

Attributes

Inherited from:
AstNodeBuilder
protected def createMethodReturnNode(func: BabelNodeInfo): NewMethodReturn

Attributes

Inherited from:
AstNodeBuilder
protected def createParameterInNode(name: String, code: String, index: Int, isVariadic: Boolean, line: Option[Integer], column: Option[Integer], tpe: Option[String]): NewMethodParameterIn

Attributes

Inherited from:
AstNodeBuilder
protected def createReturnAst(returnNode: NewReturn, arguments: List[Ast]): Ast

Attributes

Inherited from:
AstNodeBuilder
protected def createReturnNode(ret: BabelNodeInfo): NewReturn

Attributes

Inherited from:
AstNodeBuilder
protected def createStaticCallNode(code: String, callName: String, fullName: String, line: Option[Integer], column: Option[Integer]): NewCall

Attributes

Inherited from:
AstNodeBuilder
protected def createTemplateDomNode(name: String, code: String, line: Option[Integer], column: Option[Integer]): NewTemplateDom

Attributes

Inherited from:
AstNodeBuilder
protected def createTernaryCallAst(testAst: Ast, trueAst: Ast, falseAst: Ast, line: Option[Integer], column: Option[Integer]): Ast

Attributes

Inherited from:
AstNodeBuilder
protected def createTypeDeclNode(name: String, fullname: String, filename: String, code: String, astParentType: String, astParentFullName: String, inherits: Seq[String], alias: Option[String], line: Option[Integer], column: Option[Integer]): NewTypeDecl

Attributes

Inherited from:
AstNodeBuilder
protected def createTypeRefNode(code: String, typeFullName: String, classNode: BabelNodeInfo): NewTypeRef

Attributes

Inherited from:
AstNodeBuilder
protected def createVoidCallNode(line: Option[Integer], column: Option[Integer]): NewCall

Attributes

Inherited from:
AstNodeBuilder
def forAst(forNode: NewControlStructure, locals: Seq[Ast], initAsts: Seq[Ast], conditionAsts: Seq[Ast], updateAsts: Seq[Ast], bodyAst: Ast): Ast

Attributes

Inherited from:
AstCreatorBase
protected def generateUnusedVariableName(usedVariableNames: HashMap[String, Int], variableName: String): String

Attributes

Inherited from:
AstCreatorHelper
def globalNamespaceBlock(): NewNamespaceBlock

Create a global namespace block for the given filename

Create a global namespace block for the given filename

Attributes

Inherited from:
AstCreatorBase
protected def hasKey(node: Value, key: String): Boolean

Attributes

Inherited from:
AstCreatorHelper
protected def isPlainTypeAlias(alias: BabelNodeInfo): Boolean

Attributes

Inherited from:
TypeHelper
protected def line(node: Value): Option[Integer]

Attributes

Inherited from:
AstCreatorHelper
protected def lineEnd(node: Value): Option[Integer]

Attributes

Inherited from:
AstCreatorHelper
def methodAst(method: NewMethod, parameters: Seq[NewMethodParameterIn], body: Ast, methodReturn: NewMethodReturn, modifiers: Seq[NewModifier]): Ast

Creates an AST that represents an entire method, including its content.

Creates an AST that represents an entire method, including its content.

Attributes

Inherited from:
AstCreatorBase
def methodAstWithAnnotations(method: NewMethod, parameters: Seq[Ast], body: Ast, methodReturn: NewMethodReturn, modifiers: Seq[NewModifier], annotations: Seq[Ast]): Ast

Creates an AST that represents an entire method, including its content and with support for both method and parameter annotations.

Creates an AST that represents an entire method, including its content and with support for both method and parameter annotations.

Attributes

Inherited from:
AstCreatorBase
def methodReturnNode(tfn: String, dtfn: Option[String], line: Option[Integer], column: Option[Integer]): NewMethodReturn

Create a method return node

Create a method return node

Attributes

Inherited from:
AstCreatorBase
def methodStubAst(method: NewMethod, parameters: Seq[NewMethodParameterIn], methodReturn: NewMethodReturn, modifiers: Seq[NewModifier]): Ast

Creates an AST that represents a method stub, containing information about the method, its parameters, and the return type.

Creates an AST that represents a method stub, containing information about the method, its parameters, and the return type.

Attributes

Inherited from:
AstCreatorBase
protected def nameForBabelNodeInfo(nodeInfo: BabelNodeInfo, defaultName: Option[String]): String

Attributes

Inherited from:
AstCreatorHelper
protected def newUnknown(node: BabelNodeInfo): NewUnknown

Attributes

Inherited from:
AstNodeBuilder
protected def notHandledYet(node: BabelNodeInfo, additionalInfo: String): Ast

Attributes

Inherited from:
AstCreatorHelper
protected def positionLookupTables(source: String): (SortedMap[Int, Int], SortedMap[Int, Int])

Attributes

Inherited from:
AstCreatorHelper
protected def registerType(typeName: String, typeFullName: String): Unit

Attributes

Inherited from:
AstCreatorHelper
def returnAst(returnNode: NewReturn, arguments: Seq[Ast]): Ast

For a given return node and arguments, create an AST that represents the return instruction. The main purpose of this method is to automatically assign the correct argument indices.

For a given return node and arguments, create an AST that represents the return instruction. The main purpose of this method is to automatically assign the correct argument indices.

Attributes

Inherited from:
AstCreatorBase
protected def safeBool(node: Value, key: String): Option[Boolean]

Attributes

Inherited from:
AstCreatorHelper
protected def safeObj(node: Value, key: String): Option[LinkedHashMap[String, Value]]

Attributes

Inherited from:
AstCreatorHelper
protected def safeStr(node: Value, key: String): Option[String]

Attributes

Inherited from:
AstCreatorHelper
protected def setArgIndices(asts: List[Ast], base: Option[Ast]): Unit

Attributes

Inherited from:
AstNodeBuilder
def setArgumentIndices(arguments: Seq[Ast]): Unit

Attributes

Inherited from:
AstCreatorBase
protected def setOrderExplicitly(ast: Ast, order: Int): Unit

Attributes

Inherited from:
AstNodeBuilder
def staticInitMethodAst(initAsts: List[Ast], fullName: String, signature: Option[String], returnType: String): Ast

Attributes

Inherited from:
AstCreatorBase
protected def stripQuotes(str: String): String

Attributes

Inherited from:
AstCreatorHelper
def tryCatchAst(tryNode: NewControlStructure, tryBodyAst: Ast, catchAsts: Seq[Ast], finallyAst: Option[Ast]): Ast

For the given try body, catch ASTs and finally AST, create a try-catch-finally AST with orders set correctly for the ossdataflow engine.

For the given try body, catch ASTs and finally AST, create a try-catch-finally AST with orders set correctly for the ossdataflow engine.

Attributes

Inherited from:
AstCreatorBase
protected def typeFor(node: BabelNodeInfo): String

Attributes

Inherited from:
TypeHelper
def withArgumentIndex[T <: ExpressionNew](node: T, argIdxOpt: Option[Int]): T

Attributes

Inherited from:
AstCreatorBase
def withArgumentName[T <: ExpressionNew](node: T, argNameOpt: Option[String]): T

Attributes

Inherited from:
AstCreatorBase
def withIndex[T, X](nodes: Array[T])(f: (T, Int) => X): Seq[X]

Attributes

Inherited from:
AstCreatorBase
def withIndex[T, X](nodes: Seq[T])(f: (T, Int) => X): Seq[X]

Attributes

Inherited from:
AstCreatorBase
def wrapMultipleInBlock(asts: Seq[Ast], lineNumber: Option[Integer]): Ast

Attributes

Inherited from:
AstCreatorBase

Concrete fields

protected val dynamicInstanceTypeStack: ListBuffer[String]
protected val functionFullNames: HashSet[String]
protected val functionNodeToNameAndFullName: HashMap[BabelNodeInfo, (String, String)]
protected val localAstParentStack: ListBuffer[NewBlock]
protected val logger: Logger
protected val methodAstParentStack: ListBuffer[NewNode]
protected val positionToFirstPositionInLineMapping: SortedMap[Int, Int]
protected val positionToLineNumberMapping: SortedMap[Int, Int]
protected val rootTypeDecl: ListBuffer[NewTypeDecl]
protected val scope: Scope
protected val seenAliasTypes: HashSet[NewTypeDecl]
protected val typeFullNameToPostfix: HashMap[String, Int]
protected val typeRefIdStack: ListBuffer[NewTypeRef]
val usedTypes: ConcurrentHashMap[(String, String), Boolean]
protected val usedVariableNames: HashMap[String, Int]

Inherited fields

val diffGraph: DiffGraphBuilder

Attributes

Inherited from:
AstCreatorBase