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



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

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

#+(pa) ⇒ Object



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

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

#-@Object



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

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

#[](name) ⇒ Object



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

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

#parse(input_or_string, opts) ⇒ Object



130
131
132
133
134
135
136
137
138
139
140
# File 'lib/neg/parser.rb', line 130

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

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

#|(pa) ⇒ Object



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

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

#~Object



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

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