91dd628bd8
Need unique name for library collision with template parser. Few more changes to work under VM. More changes for lang.dart seperation. Seperation from lang.dart (tokenizer can't access private fields of base class in another library). This was allowed in frog but not in the VM. VM is right so need to sever dependency. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com//9695048 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5544 260f80e4-7a28-3924-810f-c04153c831b5
72 lines
2.1 KiB
Dart
72 lines
2.1 KiB
Dart
// 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("../lib/file_system.dart");
|
|
#import('../lib/file_system_memory.dart');
|
|
|
|
#source('cssoptions.dart');
|
|
#source('source.dart');
|
|
#source('tokenkind.dart');
|
|
#source('token.dart');
|
|
#source('tokenizer_base.dart');
|
|
#source('tokenizer.dart');
|
|
#source('treebase.dart');
|
|
#source('tree.dart');
|
|
#source('cssselectorexception.dart');
|
|
#source('cssworld.dart');
|
|
#source('parser.dart');
|
|
#source('validate.dart');
|
|
#source('generate.dart');
|
|
#source('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 (var e) {
|
|
String error = e.toString();
|
|
output = "$error\n$prettyTree";
|
|
throw e;
|
|
}
|
|
|
|
return output;
|
|
}
|