]>
git.saurik.com Git - bison.git/blob - src/graphviz.c
   1 /* Output Graphviz specification of a state machine generated by Bison. 
   3    Copyright (C) 2006-2007, 2009-2010 Free Software Foundation, Inc. 
   5    This file is part of Bison, the GNU Compiler Compiler. 
   7    This program is free software: you can redistribute it and/or modify 
   8    it under the terms of the GNU General Public License as published by 
   9    the Free Software Foundation, either version 3 of the License, or 
  10    (at your option) any later version. 
  12    This program is distributed in the hope that it will be useful, 
  13    but WITHOUT ANY WARRANTY; without even the implied warranty of 
  14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
  15    GNU General Public License for more details. 
  17    You should have received a copy of the GNU General Public License 
  18    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */ 
  20 /* Written by Paul Eggert and Satya Kiran Popuri.  */ 
  30 /* Return an unambiguous printable representation for NAME, suitable 
  31    for C strings.  Use slot 2 since the user may use slots 0 and 1.  */ 
  34 quote (char const *name
) 
  36   return quotearg_n_style (2, c_quoting_style
, name
); 
  40 start_graph (FILE *fout
) 
  44              " * Generated by %s.\n" 
  45              " * Report bugs to <%s>.\n" 
  46              " * Home page: <%s>.\n" 
  55            quote (grammar_file
)); 
  59 output_node (int id
, char const *label
, FILE *fout
) 
  61   fprintf (fout
, "  %d [label=%s]\n", id
, quote (label
)); 
  65 output_edge (int source
, int destination
, char const *label
, 
  66              char const *style
, FILE *fout
) 
  68   fprintf (fout
, "  %d -> %d [style=%s", source
, destination
, style
); 
  70     fprintf (fout
, " label=%s", quote (label
)); 
  75 finish_graph (FILE *fout
)