module Fig::Grammar::VersionIdentification
Public Instance Methods
_nt_everything()
click to toggle source
# File lib/fig/grammar/version_identification.rb, line 43 def _nt_everything start_index = index if node_cache[:everything].has_key?(index) cached = node_cache[:everything][index] if cached node_cache[:everything][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true @index = cached.interval.end end return cached end i0, s0 = index, [] s1, i1 = [], index loop do r2 = _nt_ws_or_comment if r2 s1 << r2 else break end end r1 = instantiate_node(SyntaxNode,input, i1...index, s1) s0 << r1 if r1 r4 = _nt_grammar_version if r4 r3 = r4 else r3 = instantiate_node(SyntaxNode,input, index...index) end s0 << r3 if r3 s5, i5 = [], index loop do if index < input_length r6 = true @index += 1 else terminal_parse_failure("any character") r6 = nil end if r6 s5 << r6 else break end end r5 = instantiate_node(SyntaxNode,input, i5...index, s5) s0 << r5 end end if s0.last r0 = instantiate_node(SyntaxNode,input, i0...index, s0) r0.extend(Everything0) r0.extend(Everything1) else @index = i0 r0 = nil end node_cache[:everything][start_index] = r0 r0 end
root()
click to toggle source
# File lib/fig/grammar/version_identification.rb, line 19 def root @root ||= :everything end