bit_pattern 0.0.3-alpha

  • Installing
  • Versions
  • 0

bit_pattern #

Build Status

Bit sequence matchers for building emulators in Dart.

Creating a pattern #

Patterns can be created from a sequence of 0s, 1s and variable length chunks.

// Create a pattern that matches any integer whose most significant byte is
// 0x6 and whose least significant byte is anything.
var pattern = new BitPattern([0, 1, 1, 0, nibble('lsb')]); 

The pattern can be used to determine whether an integer uses an equivalent bit sequence.

pattern.matches(0x60); // == true
pattern.matches(0x6F); // == true
pattern.matches(0x50); // == false

Patterns can be put into groups to simplify matching multiple patterns against an integer using a PatternGroup.

var pattern0x1 = new BitPattern([0, 0, 0, 1]);
var pattern0xF = new BitPattern([1, 1, 1, 1]);
var patternGroup = new BitPatternGroup([pattern0x1, pattern0xF]);

patternGroup.match(0x1) == pattern0x1; // true
patternGroup.match(0xF) == pattern0xF; // true
patternGroup.match(0x6) == null;     // true

If there are multiple BitPatterns in a PatternGroup that match some integer, the group with the fewest number of non-variable bits is returned. If two or more matched patterns have an identical number of non-variable bits, then these two patterns are incompatible and a BitPatternException is raised.

var pattern0xE = new BitPattern([0, 1, 1, 1]);
var patternAny1 = new BitPattern([nibble('any1')]);
var patternAny2 = new BitPattern([nibble('any2')]);
var patternGroup = new BitPatternGroup([patternAny1, pattern0xE, patternAny2]);

patternGroup.match(0xE) == pattern0xE; // true
patternGroup.match(0xF) == patternAny2; // error! Both patternAny1 and patternAny2 match!

Use this package as a library

1. Depend on it

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

  bit_pattern: ^0.0.3-alpha

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:bit_pattern/bit_pattern.dart';
Version Uploaded Documentation Archive
0.0.1 May 22, 2017 Go to the documentation of bit_pattern 0.0.1 Download bit_pattern 0.0.1 archive
0.0.4-alpha May 27, 2017 Go to the documentation of bit_pattern 0.0.4-alpha Download bit_pattern 0.0.4-alpha archive
0.0.3-alpha May 23, 2017 Go to the documentation of bit_pattern 0.0.3-alpha Download bit_pattern 0.0.3-alpha archive
0.0.2-alpha May 22, 2017 Go to the documentation of bit_pattern 0.0.2-alpha Download bit_pattern 0.0.2-alpha archive
Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Learn more about scoring.

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

The package version is not analyzed, because it does not support Dart 2. Until this is resolved, the package will receive a health and maintenance score of 0.

Maintenance issues and suggestions

Make sure dartdoc successfully runs on your package's source files. (-10 points)

Dependencies were not resolved.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=1.22.0 <2.0.0