Protected
getGet the control flow vertex for the given node id or fail if it does not exist.
Protected
getGet the dataflow graph vertex for the given id
Protected
getGet the normalized AST node for the given id or fail if it does not exist.
Protected
getProtected
onProtected
onProtected
onProtected
onProtected
onProtected
onProtected
onProtected
onProtected
onProtected
onProtected
onProtected
onProtected
onCalled for every anonymous function definition
Protected
onProtected
onProtected
onProtected
onProtected
onCalled for every constant logical value in the program
Protected
onProtected
onCalled for every constant number value in the program
Protected
onProtected
onProtected
onProtected
onProtected
onProtected
onProtected
onProtected
onProtected
onCalled for every constant string value in the program
Protected
onProtected
onCalled for every variable that is written within the program. You can use getOrigins to get the origins of the variable.
Protected
onCalled for every variable that is read within the program. You can use getOrigins to get the origins of the variable.
Protected
onProtected
onProtected
onStart the visiting process.
Protected
startProtected
visitProtected
visitProtected
visitcall this function to indicate that a node is to be considered visited.
true
if the node was not visited before, false
otherwise
Protected
visitProtected
visitProtected
visit
This visitor extends on the DataflowAwareCfgGuidedVisitor by dispatching visitors for separate function calls as well, providing more information! In a way, this is the mixin of syntactic and dataflow guided visitation.
Overwrite the functions starting with
on
to implement your logic. In general, there is just one special case that you need to be aware of:In the context of a function call, flowR may be unsure to which origin the call relate! Consider the following example:
Obtaining the origins of the call to
foo
will return both built-in functionslibrary
andrm
. The general semantic visitor can not decide on how to combine these cases, and it is up to your overload of SemanticCfgGuidedVisitor#onDispatchFunctionCallOrigins|onDispatchFunctionCallOrigins to decide how to handle this.Use BasicCfgGuidedVisitor#start to start the traversal.