Class: Neg::Parser::SubParser
- Inherits:
-
Object
- Object
- Neg::Parser::SubParser
- Defined in:
- lib/neg/parser.rb
Overview
– sub parsers ++
Direct Known Subclasses
CharacterParser, CompositeParser, LookaheadParser, NonTerminalParser, RepetitionParser, StringParser
Instance Method Summary collapse
- #*(range) ⇒ Object
- #+(pa) ⇒ Object
- #-@ ⇒ Object
- #[](name) ⇒ Object
- #parse(input_or_string, opts) ⇒ Object
- #|(pa) ⇒ Object
- #~ ⇒ Object
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 |