parser-combinator
Version:
Parser combinators
50 lines (39 loc) • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _index = require('../../lib/stream/index');
var _index2 = _interopRequireDefault(_index);
var _index3 = require('../../lib/parsec/index');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var value = undefined;
var accepted = undefined;
function testParser(parser, string) {
var myStream = _index2.default.ofString(string);
var parsing = parser.parse(myStream);
value = parsing.value;
accepted = parsing.isAccepted();
}
exports.default = {
setUp: function setUp(done) {
done();
},
'expect flatten result to be ok': function expectFlattenResultToBeOk(test) {
var string = 'foobar';
// tests here
var parser = _index3.C.char('f').then(_index3.C.char('o')).then(_index3.C.char('o')).then(_index3.C.string('bar'));
testParser(parser, string);
test.deepEqual(value, ['f', 'o', 'o', 'bar'], 'flatten result not ok');
test.done();
},
'expect flatten result to be ok when empty': function expectFlattenResultToBeOkWhenEmpty(test) {
var string = 'some';
// tests here
var parser = _index3.F.any.rep().then(_index3.F.eos).thenReturns([]);
testParser(parser, string);
test.ok(accepted);
test.deepEqual(value, [], 'flatten result not ok');
test.done();
}
};
//# sourceMappingURL=flow-bundle-test.js.map