readOr in reader macros
This commit is contained in:
@@ -531,6 +531,7 @@ class Helpers {
|
||||
// plus macro-specific things.
|
||||
var interp = new KissInterp();
|
||||
interp.variables.set("read", Reader._assertRead.bind(_, k));
|
||||
interp.variables.set("readOr", Reader._readOr.bind(_, k));
|
||||
interp.variables.set("readExpArray", Reader._readExpArray.bind(_, _, k));
|
||||
interp.variables.set("ReaderExp", ReaderExpDef);
|
||||
interp.variables.set("nextToken", Reader.nextToken.bind(_, "a token"));
|
||||
|
@@ -327,6 +327,15 @@ class Reader {
|
||||
}
|
||||
}
|
||||
|
||||
static function _readOr(stream:Stream, k:KissState, defaultExp:ReaderExp):ReaderExp {
|
||||
return switch (_read(stream, k)) {
|
||||
case Some(exp):
|
||||
exp;
|
||||
case None:
|
||||
defaultExp;
|
||||
}
|
||||
}
|
||||
|
||||
static var nestedReadExpArrayStartPositions = [];
|
||||
static var readExpArrayStartPositions = [];
|
||||
|
||||
|
Reference in New Issue
Block a user