class ERB::Compiler::SimpleScanner

:nodoc:

def scan

:nodoc:
def scan
  stag_reg = (stags == DEFAULT_STAGS) ? /(.*?)(<%[%=#]?|\z)/m : /(.*?)(#{stags.join('|')}|\z)/m
  etag_reg = (etags == DEFAULT_ETAGS) ? /(.*?)(%%?>|\z)/m : /(.*?)(#{etags.join('|')}|\z)/m
  scanner = StringScanner.new(@src)
  while ! scanner.eos?
    scanner.scan(@stag ? etag_reg : stag_reg)
    yield(scanner[1])
    yield(scanner[2])
  end
end