ometa-node.js 793 B

123456789101112131415161718192021222324
  1. var lib = require("./lib");
  2. require("./ometa-base")
  3. require("./parser")
  4. require("./bs-js-compiler")
  5. require("./bs-ometa-compiler")
  6. require("./bs-ometa-optimizer")
  7. require("./bs-ometa-js-compiler")
  8. var translateCode = function(s) {
  9. var translationError = function(m, i) { alert("Translation error - please tell Alex about this!"); throw fail },
  10. tree = BSOMetaJSParser.matchAll(s, "topLevel", undefined, function(m, i) { throw objectThatDelegatesTo(fail, {errorPos: i}) })
  11. return BSOMetaJSTranslator.match(tree, "trans", undefined, translationError)
  12. }
  13. var parse = function(grammarString) {
  14. var parser = eval(translateCode(grammarString));
  15. return function(stringToParse, rule) {
  16. return eval(parser.matchAll(stringToParse, rule));
  17. };
  18. };
  19. module.exports = parse;