]>
git.saurik.com Git - bison.git/blob - src/muscle_tab.c
1 /* Macro table manager for Bison,
2 Copyright 2001 Free Software Foundation, Inc.
4 This file is part of Bison, the GNU Compiler Compiler.
6 Bison 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)
11 Bison 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.
16 You should have received a copy of the GNU General Public License
17 along with Bison; see the file COPYING. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. */
24 #include "muscle_tab.h"
27 struct hash_table muscle_table
;
30 mhash1 (const void *item
)
32 return_STRING_HASH_1 (((const muscle_entry_t
*) item
)->key
);
36 mhash2 (const void *item
)
38 return_STRING_HASH_2 (((const muscle_entry_t
*) item
)->key
);
42 mcmp (const void *x
, const void *y
)
44 return strcmp (((const muscle_entry_t
*) x
)->key
,
45 ((const muscle_entry_t
*) y
)->key
);
51 hash_init (&muscle_table
, MTABSIZE
, &mhash1
, &mhash2
, &mcmp
);
53 /* Version and input file. */
54 muscle_insert ("version", VERSION
);
55 muscle_insert ("filename", infile
);
58 muscle_insert ("stype", "int");
59 muscle_insert ("ltype", "yyltype");
62 muscle_insert ("tokendef", NULL
);
65 muscle_insert ("rhs", NULL
);
66 muscle_insert ("pact", NULL
);
67 muscle_insert ("prhs", NULL
);
68 muscle_insert ("stos", NULL
);
69 muscle_insert ("check", NULL
);
70 muscle_insert ("pgoto", NULL
);
71 muscle_insert ("table", NULL
);
72 muscle_insert ("tname", NULL
);
73 muscle_insert ("defact", NULL
);
74 muscle_insert ("toknum", NULL
);
75 muscle_insert ("defgoto", NULL
);
76 muscle_insert ("translate", NULL
);
79 muscle_insert ("flag", NULL
);
80 muscle_insert ("last", NULL
);
81 muscle_insert ("pure", NULL
);
82 muscle_insert ("nsym", NULL
);
83 muscle_insert ("debug", NULL
);
84 muscle_insert ("final", NULL
);
85 muscle_insert ("maxtok", NULL
);
86 muscle_insert ("ntbase", NULL
);
87 muscle_insert ("error-verbose", NULL
);
88 muscle_insert ("prefix", NULL
);
89 /* Default #line formatting. */
90 muscle_insert ("linef", "#line %d %s\n");
92 /* No parser macros. */
93 muscle_insert ("nnts", NULL
);
94 muscle_insert ("nrules", NULL
);
95 muscle_insert ("nstates", NULL
);
96 muscle_insert ("ntokens", NULL
);
98 /* Stack parameters. */
99 muscle_insert ("maxdepth", "10000");
100 muscle_insert ("initdepth", "200");
103 muscle_insert ("name", "Parser");
107 muscle_insert (const char *key
, const char *value
)
109 muscle_entry_t
*pair
= XMALLOC (muscle_entry_t
, 1);
112 hash_insert (&muscle_table
, pair
);
116 muscle_find (const char *key
)
118 muscle_entry_t pair
= { key
, 0 };
119 muscle_entry_t
*result
= hash_find_item (&muscle_table
, &pair
);
120 return result
? result
->value
: 0;