lib/cpee/processtransformation/cpee.rb in cpee-1.3.134 vs lib/cpee/processtransformation/cpee.rb in cpee-1.3.136
- old
+ new
@@ -36,28 +36,32 @@
end
def generate_for_list(list,res)
list.each do |e|
nam = e.class.name.gsub(/\w+:+/,'')
- send("print_#{nam}".to_sym,e,res)
+ send("print_#{nam}".to_sym,e,res)
+ end
end
- end
private :generate_for_list
def print_Break(node,res)
res.add('break')
end
def print_InfiniteLoop(node,res)
s1 = res.add('loop', 'pre_test' => 'true')
generate_for_list(node,s1)
end
- def print_Loop(node,res)
- s1 = res.add('loop', 'pre_test' => node.condition.join(' && '))
+ def print_Loop_default(node,res)
+ s1 = res.add('loop', 'pre_test' => node.condition.empty? ? 'true' : node.condition.join(' && '))
s1.attributes['language'] = node.condition_type unless node.condition_type.nil?
generate_for_list(node,s1)
+ s1
end
+ private :print_Loop_default
+ def print_Loop(node,res); print_Loop_default(node,res); end
+ private :print_Loop
def print_Node(node,res)
if node.endpoints.empty? && !node.script.nil? && node.script.strip != ''
n = res.add('d:manipulate', 'id' => "a#{node.niceid}")
n.text = node.script
@@ -81,20 +85,23 @@
end
end
end
private :print_Node
- def print_Parallel(node,res)
+ def print_Parallel_default(node,res)
s1 = res.add('parallel','wait' => node.wait)
node.sub.each do |branch|
s2 = s1.add('parallel_branch')
generate_for_list(branch,s2)
end
+ s1
end
+ private :print_Parallel_default
+ def print_Parallel(node,res); print_Parallel_default(node,res); end
private :print_Parallel
- def print_Conditional(node,res)
+ def print_Conditional_default(node,res)
s1 = res.add('d:choose', 'mode' => node.mode)
node.sub.each do |branch|
s2 = if branch.condition.any?
a = s1.add('d:alternative','condition' => branch.condition.join(' or '))
a.attributes['language'] = branch.condition_type unless branch.condition_type.nil?
@@ -105,11 +112,15 @@
generate_for_list(branch,s2)
end
if (x = s1.find('d:otherwise')).any?
s1.add x
end
+ s1
end
+ private :print_Conditional_default
+ def print_Conditional(node,res); print_Conditional_default(node,res); end
private :print_Conditional
+
end
end
end