+ struct output_engine *e;
+
+ if (n_stack >= allocated_stack)
+ engine_stack = x2nrealloc (engine_stack, &allocated_stack,
+ sizeof *engine_stack);
+
+ e = &engine_stack[n_stack++];
+ llx_init (&e->drivers);
+ ds_init_empty (&e->deferred_syntax);
+}
+
+void
+output_engine_pop (void)
+{
+ struct output_engine *e;
+
+ assert (n_stack > 0);
+ e = &engine_stack[--n_stack];
+ while (!llx_is_empty (&e->drivers))