Fixes @media and invalid test cases (#47)

* Fixes @media and invalid test cases

The parser now supports media queries with expressionless media features (no
trailing `: <expr>`). For example:

    @media all and (transform-3d) {}

Also adds missing AND operators to test cases which had expressions immediately
following the media type.

Fixes #44.

* Adds more tests and fixes query list parsing

Changing how media queries are parsed introduced a regression where parsing a
malformed media query list would consume tokens past the initial point of
failure.
3 files changed
tree: 93fc976026d4976520481e355bd08a2399449d1a
  1. .analysis_options
  2. .gitignore
  3. .test_config
  4. CHANGELOG.md
  5. LICENSE
  6. README.md
  7. bin/
  8. codereview.settings
  9. example/
  10. lib/
  11. pubspec.yaml
  12. test/
README.md

CSS parser library for Dart

This is a CSS parser written entirely in Dart. It can be used in the client/server/command line.

This package is installed with Pub, see: install instructions for this package.

Usage

Parsing CSS is easy!

import 'package:csslib/parser.dart' show parse;
import 'package:csslib/css.dart';

main() {
  var stylesheet = parse(
      '.foo { color: red; left: 20px; top: 20px; width: 100px; height:200px }');
  print(stylesheet.toString());
}

You can pass a String or list of bytes to parse.

Running Tests

Basic tests can be found in this repository:

pub run test

The full CSS test suite can be found in https://github.com/dart-lang/csslib-test-suite

cd ../csslib-test-suite
./run.sh