method
firstpos
v4.2.9 -
Show latest stable
- Class:
ActionDispatch::Journey::GTG::Builder
firstpos(node)public
No documentation available.
# File actionpack/lib/action_dispatch/journey/gtg/builder.rb, line 82
def firstpos(node)
case node
when Nodes::Star
firstpos(node.left)
when Nodes::Cat
if nullable?(node.left)
firstpos(node.left) | firstpos(node.right)
else
firstpos(node.left)
end
when Nodes::Or
node.children.flat_map { |c| firstpos(c) }.uniq
when Nodes::Unary
firstpos(node.left)
when Nodes::Terminal
nullable?(node) ? [] : [node]
else
raise ArgumentError, 'unknown firstpos: %s' % node.class.name
end
end