]> gcc.gnu.org Git - gcc.git/blame - gcc/bi-arity.c
configure.in: Check for atol.
[gcc.git] / gcc / bi-arity.c
CommitLineData
9aefc7b6
JB
1/* Bytecode Interpreter utility to generate arity table.
2 Copyright (C) 1993 Free Software Foundation, Inc.
3
4This file is part of GNU CC.
5
6GNU CC is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 2, or (at your option)
9any later version.
10
11GNU CC is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU CC; see the file COPYING. If not, write to
940d9d63
RK
18the Free Software Foundation, 59 Temple Place - Suite 330,
19Boston, MA 02111-1307, USA. */
9aefc7b6
JB
20
21
0ce958d0 22#include <stdio.h>
a2c18d49 23#include "hconfig.h"
9aefc7b6
JB
24#include "bi-defs.h"
25
26int
904f3f5a 27length (n)
9aefc7b6
JB
28 struct node *n;
29{
30 int k;
31
32 for (k = 0; n; n = n->next)
33 ++k;
34 return k;
35}
36
37int
904f3f5a 38main ()
9aefc7b6
JB
39{
40 struct def *d;
41 struct variation *v;
42 struct node *n;
43
904f3f5a
RS
44 yyparse ();
45 reverse ();
9aefc7b6
JB
46
47 for (d = defs; d; d = d->next)
48 for (v = d->variations; v; v = v->next)
49 {
904f3f5a
RS
50 printf ("{ %d, %d, %d, {", length (v->inputs),
51 length (v->outputs), length (v->literals));
9aefc7b6 52 for (n = v->literals; n; n = n->next)
13837939 53 printf ("(char) %scode, ", n->text);
904f3f5a
RS
54 if (v->literals == 0)
55 printf ("0");
56 printf ("}},\n");
9aefc7b6 57 }
f7d4a1c9
RS
58
59 fflush (stdout);
60 exit (ferror (stdout) != 0 ? FATAL_EXIT_CODE : SUCCESS_EXIT_CODE);
61 /* NOTREACHED */
9aefc7b6
JB
62 return 0;
63}
0ce958d0
RS
64
65/* Safely allocate NBYTES bytes of memory. Returns pointer to block of
0f41302f
MS
66 memory. */
67
0ce958d0
RS
68char *
69xmalloc (nbytes)
70 int nbytes;
71{
72 char *tmp = (char *) malloc (nbytes);
73
74 if (!tmp)
75 {
76 fprintf (stderr, "can't allocate %d bytes (out of virtual memory)\n", nbytes);
f7d4a1c9 77 exit (FATAL_EXIT_CODE);
0ce958d0
RS
78 }
79
80 return tmp;
81}
60a3d801
MM
82
83/* More 'friendly' abort that prints the line and file.
84 config.h can #define abort fancy_abort if you like that sort of thing. */
85
86void
87fancy_abort ()
88{
89 fprintf (stderr, "Internal gcc abort.\n");
90 exit (FATAL_EXIT_CODE);
91}
This page took 0.192573 seconds and 5 git commands to generate.