class Parslet::Atoms::Str
Matches a string of characters.
Example:
str('foo') # matches 'foo'
Attributes
str[R]
Public Class Methods
new(str)
click to toggle source
Calls superclass method
# File lib/parslet/atoms/str.rb, line 9 def initialize(str) super() @str = str.to_s @pat = Regexp.new(Regexp.escape(str)) @len = str.size end
Public Instance Methods
accept(visitor)
click to toggle source
Call back visitors visit_str method. See parslet/export for an example.
# File lib/parslet/atoms/visitor.rb, line 15 def accept(visitor) visitor.visit_str(str) end
error_msgs()
click to toggle source
# File lib/parslet/atoms/str.rb, line 17 def error_msgs @error_msgs ||= { premature: 'Premature end of input', failed: "Expected #{str.inspect}, but got " } end
to_s_inner(prec)
click to toggle source
# File lib/parslet/atoms/str.rb, line 38 def to_s_inner(prec) "'#{str}'" end
try(source, context, consume_all)
click to toggle source
# File lib/parslet/atoms/str.rb, line 24 def try(source, context, consume_all) return succ(source.consume(@len)) if source.matches?(@pat) # Input ending early: return context.err(self, source, error_msgs[:premature]) \ if source.chars_left<@len # Expected something, but got something else instead: error_pos = source.pos return context.err_at( self, source, [error_msgs[:failed], source.consume(@len)], error_pos) end