X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/35fe08345edf43644a80a5987a50937c67e7c937..75ae8299840bbd854fa2474d38402bbb933c6511:/src/graphviz.h diff --git a/src/graphviz.h b/src/graphviz.h index 1cf9422f..0254ef74 100644 --- a/src/graphviz.h +++ b/src/graphviz.h @@ -1,7 +1,71 @@ -#include +/* Output Graphviz specification of a state machine generated by Bison. + Copyright (C) 2006, 2010-2013 Free Software Foundation, Inc. + + This file is part of Bison, the GNU Compiler Compiler. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* Written by Paul Eggert and Satya Kiran Popuri. */ + +#ifndef GRAPHVIZ_H_ +# define GRAPHVIZ_H_ + +# include "state.h" + +/** Begin a Dot graph. + * + * \param fout output stream. + */ void start_graph (FILE *fout); + +/** Output a Dot node. + * + * \param id identifier of the node + * \param label human readable label of the node (no Dot escaping needed). + * \param fout output stream. + */ void output_node (int id, char const *label, FILE *fout); + +/** Output a Dot edge. + * \param source id of the source node + * \param destination id of the target node + * \param label human readable label of the edge + * (no Dot escaping needed). Can be 0. + * \param style Dot style of the edge (e.g., "dotted" or "solid"). + * \param fout output stream. + */ void output_edge (int source, int destination, char const *label, - char const *style, FILE *fout); + char const *style, FILE *fout); + +/** Output a reduction. + * \param s current state + * \param reds the set of reductions + * \param fout output stream. + */ +void output_red (state const *s, reductions const *reds, FILE *fout); + +/** End a Dot graph. + * + * \param fout output stream. + */ void finish_graph (FILE *fout); + +/** Escape a lookahead token. + * + * \param name the token. + */ +char const *escape (char const *name); + +#endif /* ! GRAPHVIZ_H_ */