string_scanner 0.1.4+1

  • README.md
  • CHANGELOG.md
  • Installing
  • Versions
  • --

This package exposes a StringScanner type that makes it easy to parse a string using a series of Patterns. For example:

import 'dart:math';

import 'package:string_scanner/string_scanner.dart';

num parseNumber(String source) {
  // Scan a number ("1", "1.5", "-3").
  var scanner = new StringScanner(source);

  // [Scanner.scan] tries to consume a [Pattern] and returns whether or not it
  // succeeded. It will move the scan pointer past the end of the pattern.
  var negative = scanner.scan("-");

  // [Scanner.expect] consumes a [Pattern] and throws a [FormatError] if it
  // fails. Like [Scanner.scan], it will move the scan pointer forward.
  scanner.expect(new RegExp(r"\d+"));

  // [Scanner.lastMatch] holds the [MatchData] for the most recent call to
  // [Scanner.scan], [Scanner.expect], or [Scanner.matches].
  var number = int.parse(scanner.lastMatch[0]);

  if (scanner.scan(".")) {
    scanner.expect(new RegExp(r"\d+"));
    var decimal = scanner.lastMatch[0];
    number += int.parse(decimal) / math.pow(10, decimal.length);
  }

  // [Scanner.expectDone] will throw a [FormatError] if there's any input that
  // hasn't yet been consumed.
  scanner.expectDone();

  return (negative ? -1 : 1) * number;
}

0.1.4+1

  • Remove the dependency on path, since we don't actually import it.

0.1.4

  • Add new SpanScanner.eager() for creating a SpanScanner that eagerly computes its current line and column numbers.

0.1.3+2

  • Fix LineScanner's handling of carriage returns to match that of SpanScanner.

0.1.3+1

  • Fixed the homepage URL.

0.1.3

  • Add an optional endState argument to SpanScanner.spanFrom.

0.1.2

  • Add StringScanner.substring, which returns a substring of the source string.

0.1.1

  • Declare SpanScanner's exposed SourceSpans and SourceLocations to be FileSpans and FileLocations. They always were underneath, but callers may now rely on it.

  • Add SpanScanner.location, which returns the scanner's current SourceLocation.

0.1.0

  • 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.

0.0.3

  • Make StringScannerException inherit from source_map's [SpanFormatException][].

0.0.2

  • 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 StringScannerExceptions 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.

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  string_scanner: "^0.1.4+1"

2. Install it

You can install packages from the command line:

with pub:


$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


      import 'package:string_scanner/string_scanner.dart';
  
Version Uploaded Documentation Archive
1.0.2 May 22, 2017 Go to the documentation of string_scanner 1.0.2 Download string_scanner 1.0.2 archive
1.0.1 Nov 2, 2016 Go to the documentation of string_scanner 1.0.1 Download string_scanner 1.0.1 archive
1.0.0 Jun 14, 2016 Go to the documentation of string_scanner 1.0.0 Download string_scanner 1.0.0 archive
0.1.5 Jun 6, 2016 Go to the documentation of string_scanner 0.1.5 Download string_scanner 0.1.5 archive
0.1.4+1 Jan 15, 2016 Go to the documentation of string_scanner 0.1.4+1 Download string_scanner 0.1.4+1 archive
0.1.4 Sep 2, 2015 Go to the documentation of string_scanner 0.1.4 Download string_scanner 0.1.4 archive
0.1.3+2 Sep 2, 2015 Go to the documentation of string_scanner 0.1.3+2 Download string_scanner 0.1.3+2 archive
0.1.3+1 Mar 30, 2015 Go to the documentation of string_scanner 0.1.3+1 Download string_scanner 0.1.3+1 archive
0.1.3 Dec 12, 2014 Go to the documentation of string_scanner 0.1.3 Download string_scanner 0.1.3 archive
0.1.2 Nov 5, 2014 Go to the documentation of string_scanner 0.1.2 Download string_scanner 0.1.2 archive

All 15 versions...

Analysis

This package version is not analyzed, because it is more than two years old. Check the latest stable version for its analysis.