nitc :: StaticAnalysis :: FLOW
Type of FlowSet representation used by the StaticAnalysis.nitc :: StaticAnalysis :: _current_inset
"in" set for the currently visited node.nitc :: StaticAnalysis :: _current_outset
'out' set for the currently visited node.nitc :: StaticAnalysis :: _modelbuilder
ModelBuilder used to lookup AST nodes.nitc :: StaticAnalysis :: current_inset
"in" set for the currently visited node.nitc :: StaticAnalysis :: current_inset=
"in" set for the currently visited node.nitc :: StaticAnalysis :: current_outset
'out' set for the currently visited node.nitc :: StaticAnalysis :: current_outset=
'out' set for the currently visited node.nitc :: StaticAnalysis :: defaultinit
nitc :: StaticAnalysis :: modelbuilder
ModelBuilder used to lookup AST nodes.nitc :: StaticAnalysis :: modelbuilder=
ModelBuilder used to lookup AST nodes.nitc :: StaticAnalysis :: new_initial_flow
Initial flow set to use.nitc :: StaticAnalysis :: new_initial_method_flow
Initial flow set to use within methods.nitc :: StaticAnalysis :: pretty_print
Pretty print the outsets of this analysis.nitc $ StaticAnalysis :: SELF
Type of this instance, automatically specialized in every classnitc $ StaticAnalysis :: init
nitc :: StaticAnalysis :: FLOW
Type of FlowSet representation used by the StaticAnalysis.nitc :: StaticAnalysis :: _current_inset
"in" set for the currently visited node.nitc :: StaticAnalysis :: _current_outset
'out' set for the currently visited node.nitc :: StaticAnalysis :: _modelbuilder
ModelBuilder used to lookup AST nodes.core :: Object :: class_factory
Implementation used byget_class
to create the specific class.
nitc :: StaticAnalysis :: current_inset
"in" set for the currently visited node.nitc :: StaticAnalysis :: current_inset=
"in" set for the currently visited node.nitc :: Visitor :: current_node=
The current visited nodenitc :: StaticAnalysis :: current_outset
'out' set for the currently visited node.nitc :: StaticAnalysis :: current_outset=
'out' set for the currently visited node.nitc :: Visitor :: defaultinit
nitc :: StaticAnalysis :: defaultinit
core :: Object :: defaultinit
nitc :: Visitor :: enter_visit
Ask the visitor to visit a given node.core :: Object :: is_same_instance
Return true ifself
and other
are the same instance (i.e. same identity).
core :: Object :: is_same_serialized
Isself
the same as other
in a serialization context?
core :: Object :: is_same_type
Return true ifself
and other
have the same dynamic type.
nitc :: StaticAnalysis :: modelbuilder
ModelBuilder used to lookup AST nodes.nitc :: StaticAnalysis :: modelbuilder=
ModelBuilder used to lookup AST nodes.core :: Object :: native_class_name
The class name of the object in CString format.nitc :: StaticAnalysis :: new_initial_flow
Initial flow set to use.nitc :: StaticAnalysis :: new_initial_method_flow
Initial flow set to use within methods.core :: Object :: output_class_name
Display class name on stdout (debug only).nitc :: StaticAnalysis :: pretty_print
Pretty print the outsets of this analysis.
# The base of all analysis performed statically.
abstract class StaticAnalysis
super Visitor
# Type of FlowSet representation used by the StaticAnalysis.
type FLOW: FlowSet
# "in" set for the currently visited node.
var current_inset: FLOW is noinit, writable
# 'out' set for the currently visited node.
var current_outset: FLOW is noinit, writable
# Sets at the entry of each node.
#
# Each node is associated with the `current_inset` it got.
var insets = new HashMap[ANode, FLOW]
# Sets at the exit of each node.
#
# Each node is associated with the `current_outset` it got.
var outsets = new HashMap[ANode, FLOW]
init do
current_inset = new_initial_flow
current_outset = new_initial_flow
end
# Initial flow set to use.
#
# Because the initial flow set depends on the analysis performed, the
# implementation of this method is the responsability the subclass.
fun new_initial_flow: FLOW is abstract
# Initial flow set to use within methods.
#
# Returns `new_initial_flow` by default.
# Redefine this method to inject things in the inset like parameters from
# the signature.
fun new_initial_method_flow(v: AMethPropdef): FLOW do return new_initial_flow
# The merge operation on sets for confluence.
#
# Depends on the analysis performed.
fun merge(s1, s2: FLOW): FLOW is abstract
# ModelBuilder used to lookup AST nodes.
var modelbuilder: ModelBuilder
# Run `self` on an AST `node`.
fun start_analysis(node: ANode) do visit(node)
# Pretty print the outsets of this analysis.
#
# Mainly used for debug and testing.
fun pretty_print is abstract
end
src/saf/saf_base.nit:25,1--81,3