Chromium Code Reviews| Index: utils/css/css.dart |
| diff --git a/utils/css/css.dart b/utils/css/css.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..2ab1d7614f16c0379ec5ec98d5127555638604b5 |
| --- /dev/null |
| +++ b/utils/css/css.dart |
| @@ -0,0 +1,61 @@ |
| +// Copyright (c) 2011, 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('../../frog/lang.dart', prefix:'lang'); |
| +#import('../../frog/file_system_memory.dart'); |
| + |
| +#source('tokenkind.dart'); |
| +#source('tokenizer.dart'); |
| +#source('tree.dart'); |
| +#source('cssselectorexception.dart'); |
| +#source('cssworld.dart'); |
| +#source('parser.dart'); |
| + |
| + |
| +void initCssWorld() { |
| + var fs = new MemoryFileSystem(); |
| + lang.parseOptions('', [], fs); |
| + lang.initializeWorld(fs); |
| + lang.world.process(); |
| + lang.world.resolveAll(); |
| + |
| + // Set these here so that we can compile the corelib without its errors |
|
jimhug
2011/11/10 17:58:56
I'd make this a TODO if you really need it - this
terry
2011/11/16 14:00:22
This comment was wrong. I've updated the comment
|
| + // killing us |
| + lang.options.throwOnErrors = true; |
| + lang.options.throwOnFatal = true; |
| +} |
| + |
| +// TODO(terry): Add obfuscation mapping file. |
| +void cssParseAndValidate(String cssExpression, CssWorld world) { |
| + Parser parser = new Parser(new lang.SourceFile(lang.SourceFile.IN_MEMORY_FILE, |
| + cssExpression)); |
| + var tree = parser.template(); |
| + if (tree != null) { |
| + parser.validateTemplate(tree.selectors, world); |
| + } |
| +} |
| + |
| +// Returns pretty printed tree of the expression. |
| +String cssParseAndValidateDebug(String cssExpression, CssWorld world) { |
|
jimhug
2011/11/10 17:58:56
Nice helper.
|
| + Parser parser = new Parser(new lang.SourceFile(lang.SourceFile.IN_MEMORY_FILE, |
| + cssExpression)); |
| + String output = ""; |
| + String prettyTree = ""; |
| + try { |
| + var tree = parser.template(); |
| + if (tree != null) { |
| + prettyTree = tree.toDebugString(); |
| + parser.validateTemplate(tree.selectors, world); |
| + output = prettyTree; |
| + } |
| + } catch (var e) { |
| + String error = e.toString(); |
| + output = "$error\n$prettyTree"; |
| + throw e; |
| + } |
| + |
| + return output; |
| +} |