in src/parser/WDL/hermes/wdl_parser.js [2310:2348]
function parse__gen20(ctx) {
var current = ctx.tokens.current();
var rule = current != null ? table[32][current.id] : -1;
var tree = new ParseTree(new NonTerminal(90, '_gen20'));
ctx.nonterminal = "_gen20";
tree.list = true;
tree.listSeparator = 0;
tree.astTransform = new AstTransformSubstitution(0);
if ( ctx.tokens.current() != null &&
nonterminal_follow[90].indexOf(ctx.tokens.current().id) != -1 &&
nonterminal_first[90].indexOf(ctx.tokens.current().id) == -1 ) {
return tree;
}
if ( ctx.tokens.current() == null) {
return tree;
}
var minimum = 0;
while ( minimum > 0 ||
(ctx.tokens.current() != null &&
nonterminal_first[90].indexOf(ctx.tokens.current().id) != -1)) {
tree.add(parse_map_kv(ctx));
ctx.nonterminal = "_gen20";
if ( ctx.tokens.current() != null && ctx.tokens.current().id == 0) {
tree.add(expect(ctx, 0));
} else {
if (minimum > 1) {
throw new SyntaxError(ctx.error_formatter.missing_list_items(
"_gen20",
0,
0 - minimum + 1,
null
));
}
break;
}
minimum = Math.max(minimum - 1, 0);
}
return tree;
}