class SFRP::Flat::Node
Public Instance Methods
initialized?()
click to toggle source
# File lib/sfrp/flat/elements.rb, line 43 def initialized? !init_exp.nil? end
to_poly(src_set, dest_set)
click to toggle source
# File lib/sfrp/flat/elements.rb, line 47 def to_poly(src_set, dest_set) dest_set << P.node(str, ta && ta.to_poly) do |n| collected_node_refs = [] poly_exp = exp.alpha_convert({}, (0..1000).to_a) .lift_node_ref(collected_node_refs).to_poly collected_node_refs.each do |nr| if nr.last && !src_set.node(nr.node_str).initialized? raise NodeInvalidLastReferrenceError.new(nr.node_str) end nr.last ? n.l(nr.node_str) : n.c(nr.node_str) end dest_set << n.eval_func(str, ta && ta.to_poly) do |f| f.exp { poly_exp } collected_node_refs.each_with_index.map do |_, i| f.param("__node_ref_#{i}") end end next if init_exp.nil? dest_set << n.init_func(str + '#init', ta && ta.to_poly) do |f| f.exp { init_exp.alpha_convert({}, (0..1000).to_a).to_poly } end end end