def scanCodeblock( innerDelim=CodeblockDelimiters, prefix='\s*', outerDelim=innerDelim )
self.matchError = nil
result = nil
startPos = self.pointer
prefix ||= '\s*'
innerDelim ||= CodeblockDelimiters
outerDelim ||= innerDelim
depth = caller(1).find_all {|frame|
frame =~ /in `scan(Variable|Tagged|Codeblock|Bracketed|Quotelike)'/
}.length
begin
debugMsg 3, "------------------------------------"
debugMsg 3, "Calling matchCodeBlock( %s, %s, %s )",
prefix.inspect, innerDelim.inspect, outerDelim.inspect
debugMsg 3, "------------------------------------"
result = matchCodeblock( prefix, innerDelim, outerDelim )
rescue MatchFailure => e
debugMsg( depth + 1, "Match error: %s" % e.message )
self.matchError = e.message
self.pointer = startPos
result = nil
rescue => e
self.pointer = startPos
Kernel::raise
end
return result
end