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



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

def *(range)

  RepetitionParser.new(self, range)
end

#+(pa) ⇒ Object



99
100
101
102
# File 'lib/neg/parser.rb', line 99

def +(pa)

  SequenceParser.new(self, pa)
end

#[](name) ⇒ Object



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

def [](name)

  NonTerminalParser.new(name.to_s, self)
end

#parse(input_or_string) ⇒ Object



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

def parse(input_or_string)

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

  success, result = do_parse(input)

  input.rewind(start) unless success

  [ nil, success, start, result ]
end

#|(pa) ⇒ Object



104
105
106
107
# File 'lib/neg/parser.rb', line 104

def |(pa)

  AlternativeParser.new(self, pa)
end