function parseAttributeStatement(graph) {
  // attribute statements
  if (token === "node") {
    getToken();

    // node attributes
    graph.node = parseAttributeList();
    return "node";
  } else if (token === "edge") {
    getToken();

    // edge attributes
    graph.edge = parseAttributeList();
    return "edge";
  } else if (token === "graph") {
    getToken();

    // graph attributes
    graph.graph = parseAttributeList();
    return "graph";
  }

  return null;
}
parse an attribute statement like "node [shape=circle fontSize=16]".
Available keywords are 'node', 'edge', 'graph'.
The previous list with default attributes will be replaced
@param {object} graph
@returns {string | null} keyword Returns the name of the parsed attribute
                                 (node, edge, graph), or null if nothing
                                 is parsed.