class Parslet::Atoms::Re
Matches a special kind of regular expression that only ever matches one character at a time. Useful members of this family are: character ranges, \w, \d, \r, \n, ...
Example:
match('[a-z]') # matches a-z match('\s') # like regexps: matches space characters
Attributes
match[R]
re[R]
Public Class Methods
new(match)
click to toggle source
Calls superclass method
# File lib/parslet/atoms/re.rb, line 12 def initialize(match) super() @match = match.to_s @re = Regexp.new(self.match, Regexp::MULTILINE) end
Public Instance Methods
accept(visitor)
click to toggle source
Call back visitors visit_re method. See parslet/export for an example.
# File lib/parslet/atoms/visitor.rb, line 77 def accept(visitor) visitor.visit_re(match) end
error_msgs()
click to toggle source
# File lib/parslet/atoms/re.rb, line 19 def error_msgs @error_msgs ||= { premature: 'Premature end of input', failed: "Failed to match #{match.inspect[1..-2]}" } end
to_s_inner(prec)
click to toggle source
# File lib/parslet/atoms/re.rb, line 37 def to_s_inner(prec) match.inspect[1..-2] end
try(source, context, consume_all)
click to toggle source
# File lib/parslet/atoms/re.rb, line 26 def try(source, context, consume_all) return succ(source.consume(1)) if source.matches?(@re) # No string could be read return context.err(self, source, error_msgs[:premature]) \ if source.chars_left < 1 # No match return context.err(self, source, error_msgs[:failed]) end