// 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; }