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) @error_msgs = { :premature => "Premature end of input", :failed => "Failed to match #{match.inspect[1..-2]}" } 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
to_s_inner(prec)
click to toggle source
# File lib/parslet/atoms/re.rb, line 34 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 23 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