# File lib/parslet/atoms/lookahead.rb, line 24 def try(source, context, consume_all) pos = source.pos success, value = bound_parslet.apply(source, context, consume_all) if positive return succ(nil) if success return context.err_at(self, source, @error_msgs[:positive], pos) else return succ(nil) unless success return context.err_at(self, source, @error_msgs[:negative], pos) end # This is probably the only parslet that rewinds its input in #try. # Lookaheads NEVER consume their input, even on success, that's why. ensure source.pos = pos end