Create a new analyzer instance. Prefer the use of the FlowrAnalyzerBuilder instead of calling this constructor directly.
The FlowR config to use for the analyses
The parser to use for parsing the given request.
The context to use for the analyses.
The caching layer to use for storing analysis results.
Close the parser if it was created by this builder. This is only required if you rely on an RShell/remote engine.
Returns project context information. If you are a user that wants to inspect the context, prefer inspectContext instead. Please be aware that modifications to the context may break analyzer assumptions.
Get the control flow graph (CFG) for the request.
Optional
simplifications: readonly (Simplification passes to be applied to the CFG.
Optional
useDataflow: booleanWhether to use the dataflow graph for the creation of the CFG.
Optional
force: booleanDo not use the cache, instead force new analyses.
Get a quick and dirty control flow graph (CFG) for the request. This does not use the dataflow information and does not apply any simplifications.
Optional
force: booleanDo not use the cache, instead force new analyses.
Get the dataflow graph for the request.
Optional
force: booleanDo not use the cache, instead force new analyses.
Returns a read-only version of the project context information. This is the preferred method for users that want to inspect the context.
Get the normalized abstract syntax tree for the request.
Optional
force: booleanDo not use the cache, instead force new analyses.
Get the parse output for the request.
The parse result type depends on the KnownParser used by the analyzer.
Optional
force: booleanDo not use the cache, instead force a new parse.
Get the name of the parser used by the analyzer.
Access the query API for the request.
Reset all caches used by the analyzer and effectively force all analyses to be redone.
This executes all steps of the core analysis (parse, normalize, dataflow).
Optional
force: booleanRun a search on the current analysis.
Central class for conducting analyses with FlowR. Use the FlowrAnalyzerBuilder to create a new instance.
If you want the original pattern of creating a pipeline and running all steps, you can still do this with FlowrAnalyzer#runFull.
To inspect the context of the analyzer, use FlowrAnalyzer#inspectContext (if you are a plugin and need to modify it, use FlowrAnalyzer#context instead).