|
|
1.1 root 1: /* Bytecode Interpreter utility to generate arity table.
2: Copyright (C) 1993 Free Software Foundation, Inc.
3:
4: This file is part of GNU CC.
5:
6: GNU CC is free software; you can redistribute it and/or modify
7: it under the terms of the GNU General Public License as published by
8: the Free Software Foundation; either version 2, or (at your option)
9: any later version.
10:
11: GNU CC is distributed in the hope that it will be useful,
12: but WITHOUT ANY WARRANTY; without even the implied warranty of
13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14: GNU General Public License for more details.
15:
16: You should have received a copy of the GNU General Public License
17: along with GNU CC; see the file COPYING. If not, write to
18: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
19:
20:
21: #include <stdio.h>
22: #include "hconfig.h"
23: #include "bi-defs.h"
24:
25: int
26: length (n)
27: struct node *n;
28: {
29: int k;
30:
31: for (k = 0; n; n = n->next)
32: ++k;
33: return k;
34: }
35:
36: int
37: main ()
38: {
39: struct def *d;
40: struct variation *v;
41: struct node *n;
42:
43: yyparse ();
44: reverse ();
45:
46: for (d = defs; d; d = d->next)
47: for (v = d->variations; v; v = v->next)
48: {
49: printf ("{ %d, %d, %d, {", length (v->inputs),
50: length (v->outputs), length (v->literals));
51: for (n = v->literals; n; n = n->next)
52: printf ("%scode, ", n->text);
53: if (v->literals == 0)
54: printf ("0");
55: printf ("}},\n");
56: }
57:
58: fflush (stdout);
59: exit (ferror (stdout) != 0 ? FATAL_EXIT_CODE : SUCCESS_EXIT_CODE);
60: /* NOTREACHED */
61: return 0;
62: }
63:
64: /* Safely allocate NBYTES bytes of memory. Returns pointer to block of
65: memory. */
66: char *
67: xmalloc (nbytes)
68: int nbytes;
69: {
70: char *tmp = (char *) malloc (nbytes);
71:
72: if (!tmp)
73: {
74: fprintf (stderr, "can't allocate %d bytes (out of virtual memory)\n", nbytes);
75: exit (FATAL_EXIT_CODE);
76: }
77:
78: return tmp;
79: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.