| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- var sys = require('sys')
- , fs = require('fs')
- , path = require('path')
- , ometa = require('ometa')
- , rule = 'scssFile'
- , createdParser
- ;
- var fixReadFile = function(rawFile) {
- return rawFile.slice(1).replace(/\\n/g, '\n');
- };
- var getParser = function(callback) {
- if(!createdParser) {
- fs.readFile(path.join(__dirname, '/CssSelector.ometa'), 'utf8', function(err, cssSelectorContents) {
- var selectorFile = fixReadFile(cssSelectorContents);
- ometa.createParser(selectorFile, function(err, cssSelectorParser) {
- fs.readFile(path.join(__dirname, '/scss.ometa'), 'utf8', function(err, contents) {
- var contentFile = fixReadFile(contents);
- if(err) {
- callback(err);
- } else {
- ometa.createParser(contentFile, function(err, parser) {
- if(err) {
- callback(err);
- } else {
- createdParser = parser;
- callback(null, createdParser);
- }
- });
- }
- });
- });
- });
- } else {
- callback(null, createdParser);
- }
- };
- var parse = function(scssFile, callback) {
- getParser(function(err, parser) {
- if(err) {
- callback(err);
- } else {
- parser.parse(scssFile, rule, function(err, css) {
- require(__dirname + '/prettyPrint').render(css, function(inner, printed) {
- callback(err, printed);
- });
- });
- }
- });
- };
- module.exports.parse = parse;
|