Annotation of gcc/bi-arity.c, revision 1.1.1.3

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
1.1.1.3 ! root       18: the Free Software Foundation, 59 Temple Place - Suite 330,
        !            19: Boston, MA 02111-1307, USA.  */
1.1       root       20: 
                     21: 
                     22: #include <stdio.h>
                     23: #include "hconfig.h"
                     24: #include "bi-defs.h"
                     25: 
                     26: int
                     27: length (n)
                     28:      struct node *n;
                     29: {
                     30:   int k;
                     31: 
                     32:   for (k = 0; n; n = n->next)
                     33:     ++k;
                     34:   return k;
                     35: }
                     36: 
                     37: int
                     38: main ()
                     39: {
                     40:   struct def *d;
                     41:   struct variation *v;
                     42:   struct node *n;
                     43: 
                     44:   yyparse ();
                     45:   reverse ();
                     46: 
                     47:   for (d = defs; d; d = d->next)
                     48:     for (v = d->variations; v; v = v->next)
                     49:       {
                     50:        printf ("{ %d, %d, %d, {", length (v->inputs),
                     51:               length (v->outputs), length (v->literals));
                     52:        for (n = v->literals; n; n = n->next)
1.1.1.2   root       53:          printf ("(char) %scode, ", n->text);
1.1       root       54:        if (v->literals == 0)
                     55:          printf ("0");
                     56:        printf ("}},\n");
                     57:       }
                     58: 
                     59:   fflush (stdout);
                     60:   exit (ferror (stdout) != 0 ? FATAL_EXIT_CODE : SUCCESS_EXIT_CODE);
                     61:   /* NOTREACHED */
                     62:   return 0;
                     63: }
                     64: 
                     65: /* Safely allocate NBYTES bytes of memory. Returns pointer to block of
                     66:    memory. */
                     67: char *
                     68: xmalloc (nbytes)
                     69:      int nbytes;
                     70: {
                     71:   char *tmp = (char *) malloc (nbytes);
                     72:   
                     73:   if (!tmp)
                     74:     {
                     75:       fprintf (stderr, "can't allocate %d bytes (out of virtual memory)\n", nbytes);
                     76:       exit (FATAL_EXIT_CODE);
                     77:     }
                     78: 
                     79:   return tmp;
                     80: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.