start of removing seq args to node(..)

This commit is contained in:
David Greenspan
2012-09-11 21:54:10 -07:00
parent 79ce16bfe9
commit d2c99c490a
2 changed files with 5 additions and 1 deletions

View File

@@ -124,7 +124,7 @@ var parse = function (tokenizer) {
var primaryOrFunctionExpression =
expecting('expression',
or(node('this', seq(token('this'))),
or(node('this', token('this')), // XXXX remove unnecessary seqs in node(...) args
node('identifier', seq(tokenClass('IDENTIFIER'))),
node('number', seq(tokenClass('NUMBER'))),
node('boolean', seq(tokenClass('BOOLEAN'))),

View File

@@ -163,6 +163,8 @@ var node = function (name, childrenParser) {
var children = childrenParser.parse(t);
if (! children)
return null;
if (! isArray(children))
children = [children];
return new ParseNode(name, children);
});
};
@@ -246,6 +248,7 @@ var unary = function (name, termParser, opParser) {
// `x` => ["x"]
// `x,y` => ["x", ",", "y"]
// `x,y,z` => ["x", ",", "y", ",", "z"]
// Unpacks.
var list = function (itemParser, sepParser) {
var push = function(array, newThing) {
if (isArray(newThing))
@@ -277,6 +280,7 @@ var list = function (itemParser, sepParser) {
});
};
// Unpacks arrays (nested seqs).
var seq = function (/*parsers*/) {
var args = arguments;
if (! args.length)