Module: Laser::Analysis::ControlFlow

Defined in:
lib/laser/analysis/control_flow.rb,
lib/laser/analysis/control_flow/simulation.rb,
lib/laser/analysis/control_flow/cfg_builder.rb,
lib/laser/analysis/control_flow/basic_block.rb,
lib/laser/analysis/control_flow/alias_analysis.rb,
lib/laser/analysis/control_flow/cfg_instruction.rb,
lib/laser/analysis/control_flow/raise_properties.rb,
lib/laser/analysis/control_flow/unused_variables.rb,
lib/laser/analysis/control_flow/yield_properties.rb,
lib/laser/analysis/control_flow/lifetime_analysis.rb,
lib/laser/analysis/control_flow/control_flow_graph.rb,
lib/laser/analysis/control_flow/method_call_search.rb,
lib/laser/analysis/control_flow/constant_propagation.rb,
lib/laser/analysis/control_flow/unreachability_analysis.rb,
lib/laser/analysis/control_flow/static_single_assignment.rb,
lib/laser/analysis/control_flow/guaranteed_super_detection.rb

Defined Under Namespace

Modules: AliasAnalysis, ConstantPropagation, GuaranteedSuperDetection, LifetimeAnalysis, MethodCallSearch, RaiseProperties, Simulation, StaticSingleAssignment, UnreachabilityAnalysis, UnusedVariables, YieldProperties Classes: BasicBlock, ControlFlowGraph, GraphBuilder, Instruction, TerminalBasicBlock

Constant Summary

INAPPLICABLE =
PlaceholderObject.new('INAPPLICABLE')

Class Method Summary collapse

Class Method Details

.perform_cfg_analysis(tree, text, opts = {}) ⇒ Object



22
23
24
25
26
# File 'lib/laser/analysis/control_flow.rb', line 22

def self.perform_cfg_analysis(tree, text, opts={})
  graph = GraphBuilder.new(tree).build
  graph.analyze(opts)
  graph
end