Comparing version 17.0.0 to 17.0.1
@@ -15,3 +15,3 @@ /* | ||
Tail, trampoline, ParserError, ParseError, MultipleError, UnknownError, UnexpectError, ExpectError, ParserState, | ||
Position, Parser, label, rec, unparser, always, never, bind, extract, getParserState, setParserState, | ||
Position, Parser, label, late, rec, unparser, always, never, bind, extract, getParserState, setParserState, | ||
modifyParserState, getState, setState, modifyState, getInput, setInput, getPosition, setPosition, fail, attempt, | ||
@@ -262,5 +262,12 @@ look, lookahead, next, sequences, sequencea, sequence, either, choices, choicea, choice, optional, expected, | ||
})); | ||
(late = (function(def) { | ||
var value; | ||
return new(Parser)((function(state, m, cok, cerr, eok, eerr) { | ||
(value = (value || def())); | ||
return unparser(value, state, m, cok, cerr, eok, eerr); | ||
})); | ||
})); | ||
(rec = (function(def) { | ||
var value = def(new(Parser)((function(state, m, cok, cerr, eok, eerr) { | ||
return unparser(value, state, m, cok, cerr, eok, eerr); | ||
var value = def(late((function() { | ||
return value; | ||
}))); | ||
@@ -621,2 +628,3 @@ return value; | ||
(exports["label"] = label); | ||
(exports["late"] = late); | ||
(exports["rec"] = rec); | ||
@@ -623,0 +631,0 @@ (exports["unparser"] = unparser); |
{ | ||
"name": "bennu", | ||
"version": "17.0.0", | ||
"version": "17.0.1", | ||
"description": "Parser Combinator Library", | ||
@@ -5,0 +5,0 @@ "author": "Matt Bierner", |
@@ -13,11 +13,11 @@ # Bennu - Javascript Parser Combinator Library | ||
var op = oneOf '><+-.,'; | ||
var op := oneOf '><+-.,'; | ||
var other = many <| noneOf "><+-.,[]"; // Brainfuck ignores any other characters | ||
var other := many <| noneOf "><+-.,[]"; // Brainfuck ignores any other characters | ||
var block = \body -> | ||
var block := \body -> | ||
between(character '[', character ']', | ||
body); | ||
var program = rec\self -> // allows referencing `program` in parse definition. | ||
var program := rec\self -> // allows referencing `program` in parse definition. | ||
next( | ||
@@ -31,4 +31,4 @@ other, // consume non BF chars at start, | ||
Bennu provides many [Parsec][parsec] parser combinators, along with parser memoization. | ||
Unmodified bennu parser combinations can also be incrementally run by `bennu`. | ||
Bennu provides many [Parsec][parsec] parser combinators. Bennu also provides | ||
functionality like memoization and running unmodified parser combinations incrementally.. | ||
@@ -35,0 +35,0 @@ |
Sorry, the diff of this file is not supported yet
122752
2142