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



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

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

#+(pa) ⇒ Object



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

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

#-@Object



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

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

#[](name) ⇒ Object



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

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

#parse(input_or_string) ⇒ Object



100
101
102
103
104
105
106
107
108
109
110
# File 'lib/neg/parser.rb', line 100

def parse(input_or_string)

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

  success, result, children = do_parse(input)

  input.rewind(start) unless success

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

#|(pa) ⇒ Object



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

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

#~Object



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

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