Class: Pione::PNML::ConstituentRuleBuilder
- Inherits:
-
Object
- Object
- Pione::PNML::ConstituentRuleBuilder
- Defined in:
- lib/pione/pnml/compiler.rb
Overview
ConstituentRuleBuilder builds constituent rule definitions.
Instance Method Summary collapse
-
#build ⇒ Array(Array<RuleDefinition>,Array)
Build a consituent rule definitions by transitions in the net.
-
#initialize(net, net_name, env) ⇒ ConstituentRuleBuilder
constructor
A new instance of ConstituentRuleBuilder.
Constructor Details
#initialize(net, net_name, env) ⇒ ConstituentRuleBuilder
Returns a new instance of ConstituentRuleBuilder.
98 99 100 101 102 |
# File 'lib/pione/pnml/compiler.rb', line 98 def initialize(net, net_name, env) @net = net @net_name = net_name @env = env end |
Instance Method Details
#build ⇒ Array(Array<RuleDefinition>,Array)
Build a consituent rule definitions by transitions in the net.
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/pione/pnml/compiler.rb', line 107 def build definition = build_rule_definition_table() # save all inner rules rules = definition.values.compact flow_elements = definition.values.compact # conditional branch @net.transitions.each do |transition| inputs = @net.find_all_places_by_target_id(transition.id).select do |place| Perspective.data_place?(@env, place) end.map {|input| InputData.new(input)} if Perspective.if_transition?(@env, transition) flow_elements << create_if_branch(transition, definition, inputs, flow_elements) elsif Perspective.case_transition?(@env, transition) flow_elements << create_case_branch(transition, definition, inputs, flow_elements) end end return [rules, flow_elements] end |