StringScanner.substring
, which returns a substring of the source string.Declare SpanScanner
's exposed SourceSpan
s and SourceLocation
s to be FileSpan
s and FileLocation
s. They always were underneath, but callers may now rely on it.
Add SpanScanner.location
, which returns the scanner's current SourceLocation
.
Switch from source_maps
' Span
class to source_span
's SourceSpan
class.
new StringScanner()
's sourceUrl
parameter is now named to make it clear that it can be safely null
.
new StringScannerException()
takes different arguments in a different order to match SpanFormatException
.
StringScannerException.string
has been renamed to StringScannerException.source
to match the FormatException
interface.
StringScannerException
inherit from source_map's [SpanFormatException
][].new StringScanner()
now takes an optional sourceUrl
argument that provides the URL of the source file. This is used for error reporting.
Add StringScanner.readChar()
and StringScanner.peekChar()
methods for doing character-by-character scanning.
Scanners now throw StringScannerException
s which provide more detailed access to information about the errors that were thrown and can provide terminal-colored messages.
Add a LineScanner
subclass of StringScanner
that automatically tracks line and column information of the text being scanned.
Add a SpanScanner
subclass of LineScanner
that exposes matched ranges as [source map][] Span
objects.