abstract class AstCreatorBase extends AnyRef
- Alphabetic
- By Inheritance
- AstCreatorBase
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new AstCreatorBase(filename: String)
Abstract Value Members
- abstract def createAst(): DiffGraphBuilder
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def absolutePath(filename: String): String
Absolute path for the given file name
- def annotationAssignmentAst(assignmentValueName: String, code: String, assignmentAst: Ast): Ast
Creates an AST that represents an annotation assignment with a name for the assigned value, its overall code, and the respective assignment AST.
- def annotationAst(annotation: NewAnnotation, children: Seq[Ast]): Ast
Creates an AST that represents an annotation, including its content (annotation parameter assignments).
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def blockAst(blockNode: NewBlock, statements: List[Ast] = List()): Ast
For a given block node and statement ASTs, create an AST that represents the block.
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.
- def callAst(callNode: NewCall, arguments: Seq[Ast] = List(), base: Option[Ast] = None, receiver: Option[Ast] = None): Ast
Create an abstract syntax tree for a call, including CPG-specific edges required for arguments and the receiver.
Create an abstract syntax tree for a call, including CPG-specific edges required for arguments and the receiver.
Our call representation is inspired by ECMAScript, that is, in addition to arguments, a call has a base and a receiver. For languages other than Javascript, leave
receiverempty for now.- callNode
the node that represents the entire call
- arguments
arguments (without the base argument (instance))
- base
the value to use as
thisin the method call.- receiver
the object in which the property lookup is performed
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def controlStructureAst(controlStructureNode: NewControlStructure, condition: Option[Ast], children: Seq[Ast] = Seq(), placeConditionLast: Boolean = false): Ast
For a given node, condition AST and children ASTs, create an AST that represents the control structure.
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.
- val diffGraph: DiffGraphBuilder
- def doWhileAst(condition: Option[Ast], body: Seq[Ast], code: Option[String] = None, lineNumber: Option[Integer] = None, columnNumber: Option[Integer] = None): Ast
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def forAst(forNode: NewControlStructure, locals: Seq[Ast], initAsts: Seq[Ast], conditionAsts: Seq[Ast], updateAsts: Seq[Ast], bodyAst: Ast): Ast
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def globalNamespaceBlock(): NewNamespaceBlock
Create a global namespace block for the given
filename - def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def methodAst(method: NewMethod, parameters: Seq[NewMethodParameterIn], body: Ast, methodReturn: NewMethodReturn, modifiers: Seq[NewModifier] = Nil): Ast
Creates an AST that represents an entire method, including its content.
- def methodAstWithAnnotations(method: NewMethod, parameters: Seq[Ast], body: Ast, methodReturn: NewMethodReturn, modifiers: Seq[NewModifier] = Nil, annotations: Seq[Ast] = Nil): Ast
Creates an AST that represents an entire method, including its content and with support for both method and parameter annotations.
- def methodStubAst(method: NewMethod, parameters: Seq[NewMethodParameterIn], methodReturn: NewMethodReturn, modifiers: Seq[NewModifier] = Nil): Ast
Creates an AST that represents a method stub, containing information about the method, its parameters, and the return type.
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def returnAst(returnNode: NewReturn, arguments: Seq[Ast] = List()): Ast
For a given return node and arguments, create an AST that represents the return instruction.
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.
- def setArgumentIndices(arguments: Seq[Ast]): Unit
- def staticInitMethodAst(initAsts: List[Ast], fullName: String, signature: Option[String], returnType: String): Ast
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- 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.
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- def whileAst(condition: Option[Ast], body: Seq[Ast], code: Option[String] = None, lineNumber: Option[Integer] = None, columnNumber: Option[Integer] = None): Ast
- def withArgumentIndex[T <: ExpressionNew](node: T, argIdxOpt: Option[Int]): T
- def withArgumentName[T <: ExpressionNew](node: T, argNameOpt: Option[String]): T
- def withIndex[T, X](nodes: Array[T])(f: (T, Int) => X): Seq[X]
- def withIndex[T, X](nodes: Seq[T])(f: (T, Int) => X): Seq[X]
- def wrapMultipleInBlock(asts: Seq[Ast], lineNumber: Option[Integer]): Ast
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated