# Autogenerated from a Treetop grammar. Edits may be lost. require "hemingway/text/text_nodes" module Hemingway module Text include Treetop::Runtime def root @root ||= :text end module Text0 end def _nt_text start_index = index if node_cache[:text].has_key?(index) cached = node_cache[:text][index] if cached cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end s0, i0 = [], index loop do i1, s1 = index, [] i2 = index r3 = _nt_non_text if r3 r2 = nil else @index = i2 r2 = instantiate_node(SyntaxNode,input, index...index) end s1 << r2 if r2 if index < input_length r4 = instantiate_node(SyntaxNode,input, index...(index + 1)) @index += 1 else terminal_parse_failure("any character") r4 = nil end s1 << r4 end if s1.last r1 = instantiate_node(SyntaxNode,input, i1...index, s1) r1.extend(Text0) else @index = i1 r1 = nil end if r1 s0 << r1 else break end end if s0.empty? @index = i0 r0 = nil else r0 = instantiate_node(TextNode,input, i0...index, s0) end node_cache[:text][start_index] = r0 r0 end def _nt_non_text start_index = index if node_cache[:non_text].has_key?(index) cached = node_cache[:non_text][index] if cached cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0 = index r1 = _nt_escape if r1 r0 = r1 else r2 = _nt_tag_end if r2 r0 = r2 else r3 = _nt_math_start if r3 r0 = r3 else r4 = _nt_newline if r4 r0 = r4 else r5 = _nt_override if r5 r0 = r5 else @index = i0 r0 = nil end end end end end node_cache[:non_text][start_index] = r0 r0 end end class TextParser < Treetop::Runtime::CompiledParser include Text end end