Complex Steps
Complex Steps are CPGQL Steps which combine the functionality of one or more Node-Type Steps, Repeat Steps, Filter Steps, Core Steps or Execution Directives. They are represented by one or more Directives and can be of three types: Generic Complex Steps, Call Graph Steps or Dataflow Complex Steps.
#
Generic Complex Steps#
dumpdump
is a Complex Step which executes the traversal and returns the value of the CODE property of the nodes it suffixes with syntax-highlighting.
#
dumpRawdumpRaw
is a Complex Step which executes the traversal and returns the value of the CODE property of the nodes it suffixes.
#
tagListtagList
is a Complex Step which executes the traversal and returns the list of all TAG nodes found at each node visited by the traversal it suffixes.
#
Call Graph StepsCall Graph Steps are Complex Steps which traverse the nodes of a Code Property Graph which represent a program's Call Graph.
The following examples are run on the simple program named X42
:
#
calleecallee
is a Call Graph Step which lists all nodes representing Call Graph callees of the traversed nodes.
#
callercaller
is a Call Graph Step which lists all nodes representing Call Graph callers of the traversed nodes.
#
callIncallIn
is a Call Graph Step which lists all nodes representing Call Graph parent call-sites of the traversed nodes.
#
inCallinCall
is a Call Graph Step which lists all nodes representing surrounding Call Graph call-sites of the traversed nodes.
#
Dataflow StepsDataflow Steps are Complex Steps which traverse the nodes of a Code Property Graph which represent a program's data-flow. controlledBy
, flows
,, source
, sink
, reachableBy
are all CPGQL Components that are combined to construct Dataflow Steps.