ParseErrors dont raise an exception anymore, we just set parser.error
to the value of the error
This commit is contained in:
parent
c804ed2ef1
commit
1e16d0233c
14
bin/lessc
14
bin/lessc
@ -16,12 +16,16 @@ fs.stat(input, function (e, stats) {
|
|||||||
fs.open(input, process.O_RDONLY, stats.mode, function (e, fd) {
|
fs.open(input, process.O_RDONLY, stats.mode, function (e, fd) {
|
||||||
fs.read(fd, stats.size, 0, "utf8", function (e, data) {
|
fs.read(fd, stats.size, 0, "utf8", function (e, data) {
|
||||||
tree = less.parser.parse(data);
|
tree = less.parser.parse(data);
|
||||||
css = tree.toCSS([], {frames: []});
|
if (less.parser.error) {
|
||||||
if (output) {
|
process.stdio.writeError(less.parser.error.message);
|
||||||
fd = fs.openSync(output, "w");
|
|
||||||
fs.writeSync(fd, css, 0, "utf8");
|
|
||||||
} else {
|
} else {
|
||||||
sys.print(css);
|
css = tree.toCSS([], {frames: []});
|
||||||
|
if (output) {
|
||||||
|
fd = fs.openSync(output, "w");
|
||||||
|
fs.writeSync(fd, css, 0, "utf8");
|
||||||
|
} else {
|
||||||
|
sys.print(css);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -169,9 +169,9 @@ less.parser = {
|
|||||||
line = (input.slice(0, i).match(/\n/g) || "").length + 1;
|
line = (input.slice(0, i).match(/\n/g) || "").length + 1;
|
||||||
end = input.slice(i).indexOf('\n') + i;
|
end = input.slice(i).indexOf('\n') + i;
|
||||||
zone = stylize(input.slice(start, i), 'green') +
|
zone = stylize(input.slice(start, i), 'green') +
|
||||||
stylize(input.slice(i, end), 'yellow');
|
stylize(input.slice(i, end), 'yellow') + '\033[0m\n';
|
||||||
|
|
||||||
throw { name: "ParseError", message: "Parse Error on line " + line + ":\n" + zone };
|
this.error = { name: "ParseError", message: "Parse Error on line " + line + ":\n" + zone };
|
||||||
}
|
}
|
||||||
return tree;
|
return tree;
|
||||||
},
|
},
|
||||||
|
@ -13,8 +13,8 @@ fs.readdirSync('test/less').forEach(function (file) {
|
|||||||
read(path.join('test/css', path.basename(file, '.less')) + '.css', function (e, css) {
|
read(path.join('test/css', path.basename(file, '.less')) + '.css', function (e, css) {
|
||||||
sys.print("- " + file + ": ")
|
sys.print("- " + file + ": ")
|
||||||
if (less === css) { sys.print('OK') }
|
if (less === css) { sys.print('OK') }
|
||||||
else if (err && err.name == 'ParseError') {
|
else if (err) {
|
||||||
sys.print("!\n " + err.message);
|
sys.print("!\n " + (err && err.message));
|
||||||
} else {
|
} else {
|
||||||
sys.print("=/=");
|
sys.print("=/=");
|
||||||
}
|
}
|
||||||
@ -24,12 +24,16 @@ fs.readdirSync('test/less').forEach(function (file) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
function toCSS(path, callback) {
|
function toCSS(path, callback) {
|
||||||
|
var tree;
|
||||||
read(path, function (e, str) {
|
read(path, function (e, str) {
|
||||||
if (e) { return callback(e) }
|
if (e) { return callback(e) }
|
||||||
try {
|
|
||||||
callback(null, less.parser.parse(str).toCSS([], {frames: []}));
|
tree = less.parser.parse(str);
|
||||||
} catch (e) {
|
|
||||||
callback(e);
|
if (less.parser.error) {
|
||||||
|
callback(less.parser.error);
|
||||||
|
} else {
|
||||||
|
callback(null, tree.toCSS([], {frames: []}));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user