Skip to content

Commit

Permalink
Modified file reading to fix (hopefully) newline selector issues
Browse files Browse the repository at this point in the history
  • Loading branch information
bmavity committed Dec 6, 2011
1 parent 91b357f commit 3333498
Show file tree
Hide file tree
Showing 7 changed files with 33 additions and 13 deletions.
1 change: 1 addition & 0 deletions .gitignore
@@ -1,2 +1,3 @@
*.swp *.swp
.DS_Store .DS_Store
node_modules
3 changes: 1 addition & 2 deletions package.json
@@ -1,12 +1,11 @@
{ {
"name": "scss", "name": "scss",
"description": "JavaScript Implementation of SCSS (Sassy CSS)", "description": "JavaScript Implementation of SCSS (Sassy CSS)",
"version": "0.2.0", "version": "0.2.1",
"contributors": [ "contributors": [
{ "name": "Brian Mavity", "email": "brian@brianmavity.com" } { "name": "Brian Mavity", "email": "brian@brianmavity.com" }
], ],
"main": "./src/index.js", "main": "./src/index.js",
"directories": { "lib": "./src" },
"engines": { "node": ">= 0.2.0" }, "engines": { "node": ">= 0.2.0" },
"dependencies": { "dependencies": {
"ometa": "0.2.1" "ometa": "0.2.1"
Expand Down
2 changes: 1 addition & 1 deletion specs/cssSelectorSpecs.js
@@ -1,4 +1,4 @@
var vows = require('vows'), var vows = require('vows'),
assert = require('assert'), assert = require('assert'),
selectorGrammar = require(__dirname + '/grammarInvoker'); selectorGrammar = require(__dirname + '/grammarInvoker');


Expand Down
20 changes: 17 additions & 3 deletions specs/grammarInvoker.js
Expand Up @@ -3,14 +3,19 @@ var sys = require('sys'),
ometa = require('ometa'), ometa = require('ometa'),
creatingParser = false; creatingParser = false;


var fixReadFile = function(rawFile) {
return rawFile.slice(1).replace(/\\n/g, '\n');
};

var createParser = function(parserInitializer) { var createParser = function(parserInitializer) {
if(!creatingParser) { if(!creatingParser) {
creatingParser = true; creatingParser = true;
fs.readFile(__dirname + '/../src/cssSelector.ometa', function(err, contents) { //fs.readFile(__dirname + '/../src/cssSelector.ometa', 'utf8', function(err, contents) {
fs.readFile(__dirname + '/../../ometa-js/newLineGrammar.ometa', 'utf8', function(err, contents) {
if(err) { if(err) {
parserInitializer.setParser(err); parserInitializer.setParser(err);
} else { } else {
ometa.createParser(contents.toString(), parserInitializer.setParser); ometa.createParser(fixReadFile(contents), parserInitializer.setParser);
} }
creatingParser = false; creatingParser = false;
}); });
Expand Down Expand Up @@ -57,7 +62,8 @@ var parse = function(selector, callback) {
if(err) { if(err) {
callback(err); callback(err);
} else { } else {
callback(null, css.toString()); //callback(null, css.toString());
callback(null, css.join(''));
} }
}); });
} }
Expand All @@ -67,3 +73,11 @@ var parse = function(selector, callback) {


module.exports.parse = parse; module.exports.parse = parse;
module.exports.reset = parserInitializer.reset; module.exports.reset = parserInitializer.reset;
var ssss = 'a,\nb';
console.log(ssss);
parse(ssss, function(err, shiznit) {
if(err) {
console.log(err);
}
console.log(shiznit);
});
2 changes: 1 addition & 1 deletion src/cssSelector.ometa
@@ -1,4 +1,4 @@
ometa CssSelector <: Parser { ometa CssSelector <: Parser {
crChar = '\r', crChar = '\r',
ffChar = '\f', ffChar = '\f',
nlChar = '\n', nlChar = '\n',
Expand Down
15 changes: 11 additions & 4 deletions src/index.js
Expand Up @@ -4,15 +4,22 @@ var sys = require('sys'),
rule = 'scssFile', rule = 'scssFile',
createdParser; createdParser;


var fixReadFile = function(rawFile) {
return rawFile.slice(1).replace(/\\n/g, '\n');
};

var getParser = function(callback) { var getParser = function(callback) {
if(!createdParser) { if(!createdParser) {
fs.readFile(__dirname + '/CssSelector.ometa', function(err, cssSelectorContents) { fs.readFile(__dirname + '/CssSelector.ometa', 'utf8', function(err, cssSelectorContents) {
ometa.createParser(cssSelectorContents.toString(), function(err, cssSelectorParser) { var selectorFile = fixReadFile(cssSelectorContents);
fs.readFile(__dirname + '/scss.ometa', function(err, contents) { console.log(selectorFile);
ometa.createParser(selectorFile, function(err, cssSelectorParser) {
fs.readFile(__dirname + '/scss.ometa', 'utf8', function(err, contents) {
var contentFile = fixReadFile(contents);
if(err) { if(err) {
callback(err); callback(err);
} else { } else {
ometa.createParser(contents.toString(), function(err, parser) { ometa.createParser(contentFile, function(err, parser) {
if(err) { if(err) {
callback(err); callback(err);
} else { } else {
Expand Down
3 changes: 1 addition & 2 deletions src/scss.ometa
@@ -1,4 +1,4 @@
ometa Scss <: Parser { ometa Scss <: Parser {
selector = foreign(CssSelector, 'selectors_group'):sel -> { self.addSelector(sel) }, selector = foreign(CssSelector, 'selectors_group'):sel -> { self.addSelector(sel) },


propertyValue = '$' letterOrDigit+:val -> ('$' + val.join('')) propertyValue = '$' letterOrDigit+:val -> ('$' + val.join(''))
Expand Down Expand Up @@ -38,7 +38,6 @@ Scss.initialize = function() {
}; };


this.addMixin = function(mixinName) { this.addMixin = function(mixinName) {
console.log('mixin:' + mixinName);
var block = createBlock(); var block = createBlock();
mixins[mixinName] = block; mixins[mixinName] = block;
currentBlock = block; currentBlock = block;
Expand Down

0 comments on commit 3333498

Please sign in to comment.