# File lib/treetop/runtime/compiled_parser.rb, line 15
      def parse(input, options = {})
        prepare_to_parse(input)
        @index = options[:index] if options[:index]
        result = send("_nt_#{options[:root] || root}")
        should_consume_all = options.include?(:consume_all_input) ? options[:consume_all_input] : consume_all_input?
        return nil if (should_consume_all && index != input.size)
        return SyntaxNode.new(input, index...(index + 1)) if result == true
        return result
      end