175: def eval( context )
176: one_name = node_one.text_value.gsub( /"/, "" )
177: two_name = node_two.text_value.gsub( /"/, "" )
178:
179:
180:
181:
182:
183:
184: one = context.nodes[one_name] || create_node( one_name, context )
185:
186:
187: two = context.nodes[two_name] || create_node( two_name, context )
188:
189:
190: edge_options = {}
191: edge_options = options.eval() unless options.terminal?
192:
193:
194: create_edge( one, two, edge_options, context )
195:
196: last_node = two
197: other_nodes.elements.each do |e|
198: new_node_name = e.next_node.text_value.gsub( /"/, "" )
199:
200:
201: new_node = context.nodes[new_node_name] || create_node( new_node_name, context )
202: create_edge( last_node, new_node, edge_options, context )
203:
204: last_node = new_node
205: end
206: end