code: function pathExpressions (token, tokens) {
    const expressions = []
    token = tokens.shift()
    while (true) {
      if (!token) {
        throw new Error(`A path expression should end with ")"`)
      }
      if (token === ')') {
        break
      }
      expressions.push(pathExpression(token, tokens))
      token = tokens.shift()
    }
    return { _type: pathExpressions.name, expressions }
  }
docs: can either start with "(" or anything else if it started with "(" it ends with ")" if it didn't start with "(" it ends with undefined