Class: Scribble::Parsing::DelimitedChunk
- Inherits:
-
Parslet::Atoms::Base
- Object
- Parslet::Atoms::Base
- Scribble::Parsing::DelimitedChunk
- Defined in:
- lib/scribble/parsing/parser.rb
Instance Method Summary collapse
-
#initialize(delimiters, min_chars = 0) ⇒ DelimitedChunk
constructor
A new instance of DelimitedChunk.
- #to_s_inner(prec) ⇒ Object
- #try(source, context, consume_all) ⇒ Object
Constructor Details
#initialize(delimiters, min_chars = 0) ⇒ DelimitedChunk
Returns a new instance of DelimitedChunk.
6 7 8 9 |
# File 'lib/scribble/parsing/parser.rb', line 6 def initialize delimiters, min_chars = 0 @delimiters = delimiters @min_chars = min_chars end |
Instance Method Details
#to_s_inner(prec) ⇒ Object
21 22 23 |
# File 'lib/scribble/parsing/parser.rb', line 21 def to_s_inner(prec) "until('#{@delimiters.inspect}')" end |
#try(source, context, consume_all) ⇒ Object
11 12 13 14 15 16 17 18 19 |
# File 'lib/scribble/parsing/parser.rb', line 11 def try(source, context, consume_all) excluding_length = @delimiters.map {|d| source.chars_until(d) }.min if excluding_length >= @min_chars return succ(source.consume([excluding_length, 100000].min)) # max 100000 character atom, otherwise error in resulting regexp else return context.err(self, source, "No such string in input: #{@delimiters.inspect}.") end end |