class Pione::PNML::FlowRuleBuilder
FlowRuleBuilder
builds a flow rule definition for PNML
net.
Public Class Methods
new(net, net_name, env)
click to toggle source
@param net [PNML::Net]
PNML net
@param net_name [String]
name of the net
@param env [Lang::Environment]
language environment
# File lib/pione/pnml/compiler.rb, line 389 def initialize(net, net_name, env) @net = net @net_name = net_name @env = env end
Public Instance Methods
build(flow_elements, params, features, variable_bindings)
click to toggle source
Build a flow rule definition for PNML
net.
@param flow_elements [Array]
flow elements
@return [RuleDefinition]
a flow rule definition for PNML net
# File lib/pione/pnml/compiler.rb, line 401 def build(flow_elements, params, features, variable_bindings) inputs = @net.places.select {|place| Perspective.net_input_data_place?(@env, place)} inputs = inputs.map {|input| InputData.new(input)} outputs = @net.places.select {|place| Perspective.net_output_data_place?(@env, place)} outputs = outputs.map {|output| OutputData.new(output)} option = { :inputs => inputs, :outputs => outputs, :params => params, :features => features, :variable_bindings => variable_bindings, :flow_elements => flow_elements } RuleDefinition.new(@net_name, :flow, false, @net_name, 0, option) end