CokoCpgBackend

The CPG backend for Coko.

Constructors

Link copied to clipboard
constructor(config: BackendConfiguration)

Properties

Link copied to clipboard
open override val artifacts: Map<Path, Artifact>
Link copied to clipboard
open override val backendData: TranslationResult
Link copied to clipboard
val cpg: TranslationResult
Link copied to clipboard
val CokoBackend.cpg: TranslationResult
Link copied to clipboard
open override val toolInfo: ToolComponent

Functions

Link copied to clipboard
fun CokoBackend.cpgCall(name: String, predicate: CallExpression.() -> Boolean = { true }): List<CallExpression>

Returns a list of CallExpressions with the matching name and fulfilling predicate.

Link copied to clipboard
fun CokoBackend.cpgCallFqn(fqn: String, predicate: CallExpression.() -> Boolean = { true }): List<CallExpression>

Returns a list of CallExpressions with the matching fqn (fully-qualified name) and fulfilling predicate.

Link copied to clipboard
fun CokoBackend.cpgConstructor(classFqn: String, predicate: CallExpression.() -> Boolean = { true }): List<ConstructExpression>

Returns a list of ConstructExpressions with the matching classFqn and fulfilling predicate.

Link copied to clipboard
fun CokoBackend.cpgMemberExpr(predicate: MemberExpression.() -> Boolean): List<MemberExpression>

Returns a list of MemberExpressions with the matching something.

Link copied to clipboard
fun CokoBackend.cpgVariable(name: String): List<ValueDeclaration>

Returns a list of ValueDeclarations with the matching name.

Link copied to clipboard
fun CokoBackend.cpgVariableFqn(fqn: String): List<ValueDeclaration>

Returns a list of ValueDeclarations with the matching fqn.

Link copied to clipboard
open infix override fun Op.followedBy(that: Op): FollowsEvaluator

For each of the nodes in this, there is a path to at least one of the nodes in that.

Link copied to clipboard
open override fun never(vararg ops: Op): NeverEvaluator
Link copied to clipboard
open override fun only(vararg ops: Op): OnlyEvaluator

Ensures that all calls to the ops have arguments that fit the parameters specified in ops

Link copied to clipboard
open override fun order(baseNodes: Op, block: Order.() -> Unit): OrderEvaluator
open override fun order(baseNodes: OrderToken, block: Order.() -> Unit): OrderEvaluator
Link copied to clipboard
open override fun whenever(premise: ConditionComponent, assertionBlock: WheneverEvaluator.() -> Unit): WheneverEvaluator
open override fun whenever(premise: Condition.() -> ConditionComponent, assertionBlock: WheneverEvaluator.() -> Unit): WheneverEvaluator