| Class | SynFlowFactory::TransitionSet |
| In: |
lib/syn_flow.rb
|
| Parent: | Object |
# File lib/syn_flow.rb, line 105 def << ( transition ) case transition when Array add(*transition) when Hash transition.each do |src, x| unless x.is_a? Hash raise TypeError, "bad transtion: #{transition.inspect}" end x.each do |label, dest| add(src, label, dest) end end when Transition add_transition(transition) else raise TypeError, "bad transtion: #{transition.inspect}" end self end
# File lib/syn_flow.rb, line 91 def add ( src, label, dest ) @val[src] ||= {} @val[src][label] = dest end
# File lib/syn_flow.rb, line 70 def include? ( *a ) case a.size when 1 t = a[0] case t when Array return include?(*t) else return delta(t.src, t.label) == t.dest end when 2 state, label = a return ! delta(state, label).nil? when 3 state, label, dest = a return delta(state, label) == dest else raise ArgumentError, 'bad transition' end end