grammarInvoker.js 983 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. var sys = require('sys'),
  2. fs = require('fs'),
  3. ometa = require('ometa'),
  4. createdParser;
  5. var getParser = function(callback) {
  6. if(!createdParser) {
  7. fs.readFile(__dirname + '/../src/cssSelector.ometa', function(err, contents) {
  8. if(err) {
  9. callback(err);
  10. } else {
  11. ometa.createParser(contents.toString(), function(err, parser) {
  12. if(err) {
  13. callback(err);
  14. } else {
  15. createdParser = parser;
  16. callback(null, createdParser);
  17. }
  18. });
  19. }
  20. });
  21. } else {
  22. callback(null, createdParser);
  23. }
  24. };
  25. var parse = function(scssFile, callback) {
  26. getParser(function(err, parser) {
  27. if(err) {
  28. callback(err);
  29. } else {
  30. parser.parse(scssFile, 'selectors_group', function(err, css) {
  31. sys.puts(css.toString());
  32. });
  33. }
  34. });
  35. };
  36. module.exports.parse = parse;
  37. parse(':not(h1, h2, h3)', function(err) {
  38. sys.puts(sys.inspect(err, true, null));
  39. });