code: function parse(tokens, basePath, iterSuffix) {
    const len = tokens.length;
    const body = [];
  
    let i = 0;
    while (i < len) {
      const token = tokens[i];
      if (subroutines[token.tokenType]) {
        const rest = tokens.slice(i + 1);
        const [
          branches,
          tokensHandled,
          shouldBreak,
        ] = subroutines[token.tokenType](token, rest, basePath, iterSuffix);
  
        body.push(...branches);
  
        i += tokensHandled;
  
        if (shouldBreak) {
          break;
        }
      } else {
        i += 1;
      }
    }
  
    return [body, i + 1];
  }
docs: Parse an array of tokens into a syntax tree
  @param {object[]} tokens
  @param {string} basePath
  @param {number} iterSuffix
  @returns {[object[], number]}