Package com.tonic.analysis.cpg.node
Enum CPGNodeType
- java.lang.Object
-
- java.lang.Enum<CPGNodeType>
-
- com.tonic.analysis.cpg.node.CPGNodeType
-
- All Implemented Interfaces:
Serializable,Comparable<CPGNodeType>
public enum CPGNodeType extends Enum<CPGNodeType>
Kinds of nodes a CPG can contain, spanning IR, AST, PDG, and SDG layers.
-
-
Enum Constant Summary
Enum Constants Enum Constant Description AST_EXPRESSIONAn expression in the recovered source tree, evaluating to a value.AST_STATEMENTA statement in the recovered source tree, executed for effect rather than for a value.BLOCKA basic block, a run of instructions entered only at its head.CALL_SITEA single invocation, the anchor interprocedural edges attach to.FIELD_REFA reference to a field, covering both reads and writes of it.INSTRUCTIONA single IR instruction inside a block.LITERALA compile-time constant operand, such as a number or string literal.LOCALA local variable of the method, distinct from its declared parameters.METHODA whole method, the root that its blocks and locals belong to.PARAMETERA formal parameter of the method, live from entry rather than assigned by a body instruction.PDG_ENTRYThe synthetic root that unconditionally executed code hangs its control dependence from.PDG_EXITThe synthetic sink every path out of the method converges on.SDG_ACTUAL_INAn argument supplied at a call site, paired with the callee's formal-in.SDG_ACTUAL_OUTThe value handed back to the caller at a call site, paired with the callee's formal-out.SDG_FORMAL_INA value entering a method at its entry, the callee side of an actual-in.SDG_FORMAL_OUTA value leaving a method at its exit, the callee side of an actual-out.TYPEA named class or descriptor type mentioned by the code, not a value of that type.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description StringgetDescription()StringgetShortName()booleanisASTNode()booleanisIRNode()booleanisPDGNode()booleanisSDGNode()static CPGNodeTypevalueOf(String name)Returns the enum constant of this type with the specified name.static CPGNodeType[]values()Returns an array containing the constants of this enum type, in the order they are declared.
-
-
-
Enum Constant Detail
-
METHOD
public static final CPGNodeType METHOD
A whole method, the root that its blocks and locals belong to.
-
BLOCK
public static final CPGNodeType BLOCK
A basic block, a run of instructions entered only at its head.
-
INSTRUCTION
public static final CPGNodeType INSTRUCTION
A single IR instruction inside a block.
-
PARAMETER
public static final CPGNodeType PARAMETER
A formal parameter of the method, live from entry rather than assigned by a body instruction.
-
LOCAL
public static final CPGNodeType LOCAL
A local variable of the method, distinct from its declared parameters.
-
CALL_SITE
public static final CPGNodeType CALL_SITE
A single invocation, the anchor interprocedural edges attach to.
-
LITERAL
public static final CPGNodeType LITERAL
A compile-time constant operand, such as a number or string literal.
-
TYPE
public static final CPGNodeType TYPE
A named class or descriptor type mentioned by the code, not a value of that type.
-
FIELD_REF
public static final CPGNodeType FIELD_REF
A reference to a field, covering both reads and writes of it.
-
AST_EXPRESSION
public static final CPGNodeType AST_EXPRESSION
An expression in the recovered source tree, evaluating to a value.
-
AST_STATEMENT
public static final CPGNodeType AST_STATEMENT
A statement in the recovered source tree, executed for effect rather than for a value.
-
PDG_ENTRY
public static final CPGNodeType PDG_ENTRY
The synthetic root that unconditionally executed code hangs its control dependence from.
-
PDG_EXIT
public static final CPGNodeType PDG_EXIT
The synthetic sink every path out of the method converges on.
-
SDG_FORMAL_IN
public static final CPGNodeType SDG_FORMAL_IN
A value entering a method at its entry, the callee side of an actual-in.
-
SDG_FORMAL_OUT
public static final CPGNodeType SDG_FORMAL_OUT
A value leaving a method at its exit, the callee side of an actual-out.
-
SDG_ACTUAL_IN
public static final CPGNodeType SDG_ACTUAL_IN
An argument supplied at a call site, paired with the callee's formal-in.
-
SDG_ACTUAL_OUT
public static final CPGNodeType SDG_ACTUAL_OUT
The value handed back to the caller at a call site, paired with the callee's formal-out.
-
-
Method Detail
-
values
public static CPGNodeType[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:for (CPGNodeType c : CPGNodeType.values()) System.out.println(c);
- Returns:
- an array containing the constants of this enum type, in the order they are declared
-
valueOf
public static CPGNodeType valueOf(String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
name- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException- if this enum type has no constant with the specified nameNullPointerException- if the argument is null
-
getShortName
public String getShortName()
- Returns:
- the short name
-
getDescription
public String getDescription()
- Returns:
- the description
-
isIRNode
public boolean isIRNode()
- Returns:
- whether this is an IR-layer node type
-
isASTNode
public boolean isASTNode()
- Returns:
- whether this is an AST-layer node type
-
isPDGNode
public boolean isPDGNode()
- Returns:
- whether this is a PDG-layer node type
-
isSDGNode
public boolean isSDGNode()
- Returns:
- whether this is an SDG parameter node type
-
-