Class: Neg::Parser::SubParser

Inherits:
Object
  • Object
show all
Defined in:
lib/neg/parser.rb

Overview

– sub parsers ++

Instance Method Summary collapse

Instance Method Details

#*(range) ⇒ Object



113
# File 'lib/neg/parser.rb', line 113

def *(range)  ; RepetitionParser.new(self, range); end

#+(pa) ⇒ Object



110
# File 'lib/neg/parser.rb', line 110

def +(pa)     ; SequenceParser.new(self, pa); end

#-@Object



115
# File 'lib/neg/parser.rb', line 115

def -@        ; LookaheadParser.new(self, false); end

#[](name) ⇒ Object



112
# File 'lib/neg/parser.rb', line 112

def [](name)  ; NonTerminalParser.new(name.to_s, self); end

#parse(input_or_string, opts) ⇒ Object



117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# File 'lib/neg/parser.rb', line 117

def parse(input_or_string, opts)

  input = Neg::Input(input_or_string)
  start = input.position

  success, result, children = do_parse(input, opts)

  input.rewind(start) unless success

  #if success && children.size == 1 && children.first[1] == start
  #  return children.first
  #end

  [ nil, start, success, result, children ]
end

#|(pa) ⇒ Object



111
# File 'lib/neg/parser.rb', line 111

def |(pa)     ; AlternativeParser.new(self, pa); end

#~Object



114
# File 'lib/neg/parser.rb', line 114

def ~         ; LookaheadParser.new(self, true); end