def scanDelimited( delimiters="'\"`", prefix='\\s*', escape='\\' )
delimiters ||= "'\"`"
prefix ||= '\\s*'
escape ||= '\\'
debugMsg( 1, "Scanning for delimited text: delim = (%s), prefix=(%s), escape=(%s)",
delimiters, prefix, escape )
self.matchError = nil
unless (( prefixLength = self.match?(prefix.to_re) ))
self.matchError = "Failed to match prefix '%s' at offset %d" %
[ prefix, self.pointer ]
return nil
end
delimPattern = makeDelimPattern( delimiters, escape, prefix )
debugMsg( 2, "Delimiter pattern is %s" % delimPattern.inspect )
unless (( matchedString = self.scan(delimPattern) ))
self.matchError = "No delimited string found."
return nil
end
return {
:match => matchedString[prefixLength .. -1],
:prefix => matchedString[0..prefixLength-1],
}
end