You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
749 B
27 lines
749 B
var lop = require("../");
|
|
var Parser = lop.Parser;
|
|
var rules = lop.rules;
|
|
var testing = require("../lib/testing");
|
|
var Tokeniser = require("./Tokeniser");
|
|
|
|
exports.canParseUsingParser = function(test) {
|
|
var tokens = new Tokeniser({keywords: []}).tokenise("! blah");
|
|
|
|
var name = rules.sequence.capture(rules.token("identifier"), "name");
|
|
var rule = rules.sequence(
|
|
rules.token("identifier", "!"),
|
|
name
|
|
);
|
|
|
|
var parser = new Parser();
|
|
var result = parser.parseTokens(rule, tokens);
|
|
|
|
testing.assertIsSuccess(test, result);
|
|
test.deepEqual(result.value().get(name), "blah");
|
|
|
|
test.done();
|
|
};
|
|
|
|
var parseString = function(parser, string) {
|
|
return parser(new TokenIterator(tokens));
|
|
};
|
|
|