|
|
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.