+/* FIXME. */
+
+#define MACRO_INSERT_INT(Key, Value) \
+{ \
+ obstack_fgrow1 (¯o_obstack, "%d", Value); \
+ obstack_1grow (¯o_obstack, 0); \
+ macro_insert (Key, obstack_finish (¯o_obstack)); \
+}
+
+#define MACRO_INSERT_STRING(Key, Value) \
+{ \
+ obstack_sgrow (¯o_obstack, Value); \
+ obstack_1grow (¯o_obstack, 0); \
+ macro_insert (Key, obstack_finish (¯o_obstack)); \
+}
+
+#define MACRO_INSERT_PREFIX(Key, Value) \
+{ \
+ obstack_fgrow2 (¯o_obstack, "%s%s", spec_name_prefix, Value); \
+ obstack_1grow (¯o_obstack, 0); \
+ macro_insert (Key, obstack_finish (¯o_obstack)); \
+}
+
+static void
+prepare (void)
+{
+ MACRO_INSERT_INT ("last", high);
+ MACRO_INSERT_INT ("flag", MINSHORT);
+ MACRO_INSERT_INT ("pure", pure_parser);
+ MACRO_INSERT_INT ("nsym", nsyms);
+ MACRO_INSERT_INT ("debug", debug_flag);
+ MACRO_INSERT_INT ("final", final_state);
+ MACRO_INSERT_INT ("maxtok", max_user_token_number);
+ MACRO_INSERT_INT ("ntbase", ntokens);
+ MACRO_INSERT_INT ("verbose", 0);
+
+ MACRO_INSERT_INT ("nnts", nvars);
+ MACRO_INSERT_INT ("nrules", nrules);
+ MACRO_INSERT_INT ("nstates", nstates);
+ MACRO_INSERT_INT ("ntokens", ntokens);
+
+ MACRO_INSERT_INT ("locations_flag", locations_flag);
+
+ if (spec_name_prefix)
+ MACRO_INSERT_STRING ("prefix", spec_name_prefix);
+}