lop.test.js 749 B

123456789101112131415161718192021222324252627
  1. var lop = require("../");
  2. var Parser = lop.Parser;
  3. var rules = lop.rules;
  4. var testing = require("../lib/testing");
  5. var Tokeniser = require("./Tokeniser");
  6. exports.canParseUsingParser = function(test) {
  7. var tokens = new Tokeniser({keywords: []}).tokenise("! blah");
  8. var name = rules.sequence.capture(rules.token("identifier"), "name");
  9. var rule = rules.sequence(
  10. rules.token("identifier", "!"),
  11. name
  12. );
  13. var parser = new Parser();
  14. var result = parser.parseTokens(rule, tokens);
  15. testing.assertIsSuccess(test, result);
  16. test.deepEqual(result.value().get(name), "blah");
  17. test.done();
  18. };
  19. var parseString = function(parser, string) {
  20. return parser(new TokenIterator(tokens));
  21. };