function parseExprList(close, allowTrailingComma, allowEmpty) {
    var elts = [];
    var first = true;
    while (!eat(close)) {
      if (!first) {
        expect(_comma);
        if (allowTrailingComma && options.allowTrailingCommas && eat(close)) {
          break;
        }
      } else {
        first = false;
      }

      elts.push((allowEmpty && tokType === _comma) ?
          null : parseExpression(true));
    }
    return elts;
  }
Parses a comma-separated list of expressions, and returns them as
an array. `close` is the token type that ends the list, and
`allowEmpty` can be turned on to allow subsequent commas with
nothing in between them to be parsed as `null` (which is needed
for array literals).

@param {!Object} close
@param {boolean} allowTrailingComma
@param {boolean=} allowEmpty
@returns {!Array<!node_t>}