Files
sdk/utils/css/css.dart
T
gram@google.com 58a016634c Update utils to new library syntax.
This doesn't include adding partofs; that will have to be done later.
Review URL: https://codereview.chromium.org//11358145

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14693 260f80e4-7a28-3924-810f-c04153c831b5
2012-11-08 17:42:40 +00:00

73 lines
2.0 KiB
Dart

// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
library css;
import 'dart:math' as Math;
import '../lib/file_system.dart';
import '../lib/file_system_memory.dart';
part 'cssoptions.dart';
part 'source.dart';
part 'tokenkind.dart';
part 'token.dart';
part 'tokenizer_base.dart';
part 'tokenizer.dart';
part 'treebase.dart';
part 'tree.dart';
part 'cssselectorexception.dart';
part 'cssworld.dart';
part 'parser.dart';
part 'validate.dart';
part 'generate.dart';
part 'world.dart';
void initCssWorld([bool commandLine = true]) {
FileSystem fs = new MemoryFileSystem();
parseOptions([], fs);
initializeWorld(fs);
// TODO(terry): Should be set by arguments. When run as a tool these aren't
// set when run internaly set these so we can compile CSS and catch any
// problems programmatically.
options.throwOnErrors = true;
options.throwOnFatal = true;
options.useColors = commandLine ? true : false;
options.warningsAsErrors = false;
options.showWarnings = true;
}
// TODO(terry): Add obfuscation mapping file.
void cssParseAndValidate(String cssExpression, CssWorld cssworld) {
Parser parser = new Parser(new SourceFile(SourceFile.IN_MEMORY_FILE,
cssExpression));
var tree = parser.parseTemplate();
if (tree != null) {
Validate.template(tree.selectors, cssworld);
}
}
// Returns pretty printed tree of the expression.
String cssParseAndValidateDebug(String cssExpression, CssWorld cssworld) {
Parser parser = new Parser(new SourceFile(SourceFile.IN_MEMORY_FILE,
cssExpression));
String output = "";
String prettyTree = "";
try {
var tree = parser.parseTemplate();
if (tree != null) {
prettyTree = tree.toDebugString();
Validate.template(tree.selectors, cssworld);
output = prettyTree;
}
} catch (e) {
String error = e.toString();
output = "$error\n$prettyTree";
throw e;
}
return output;
}