+@deffn {Directive} %after-header @{@var{code}@}
+Specifies code to be inserted into the code file after the contents of the
+header file.
+@xref{Table of Symbols, ,%start-header}.
+@end deffn
+
+@deffn {Directive} %before-header @{@var{code}@}
+Specifies code to be inserted into the code file before the contents of the
+header file.
+@xref{Table of Symbols, ,%start-header}.
+@end deffn
+
+@deffn {Directive} %end-header @{@var{code}@}
+Specifies code to be inserted both into the header file (if generated;
+@pxref{Table of Symbols, ,%defines}) and into the code file after any
+Bison-generated definitions.
+@xref{Table of Symbols, ,%start-header}.
+@end deffn
+
+@deffn {Directive} %start-header @{@var{code}@}
+Specifies code to be inserted both into the header file (if generated;
+@pxref{Table of Symbols, ,%defines}) and into the code file before any
+Bison-generated definitions.
+
+@cindex Prologue
+@findex %before-header
+@findex %union
+@findex %end-header
+@findex %after-header
+For example, the following declaration order in the grammar file reflects the
+order in which Bison will output these code blocks. However, you are free to
+declare these code blocks in your grammar file in whatever order is most
+convenient for you:
+
+@smallexample
+%before-header @{
+ /* Bison treats this block like a pre-prologue block: it inserts it
+ * into the code file before the contents of the header file. It
+ * does *not* insert it into the header file. This is a good place
+ * to put #include's that you want at the top of your code file. A
+ * common example is `#include "system.h"'. */
+@}
+%start-header @{
+ /* Bison inserts this block into both the header file and the code
+ * file. In both files, the point of insertion is before any
+ * Bison-generated token, semantic type, location type, and class
+ * definitions. This is a good place to define %union
+ * dependencies, for example. */
+@}
+%union @{
+ /* Unlike the traditional Yacc prologue blocks, the output order
+ * for the %*-header blocks is not affected by their declaration
+ * position relative to any %union in the grammar file. */
+@}
+%end-header @{
+ /* Bison inserts this block into both the header file and the code
+ * file. In both files, the point of insertion is after the
+ * Bison-generated definitions. This is a good place to declare or
+ * define public functions or data structures that depend on the
+ * Bison-generated definitions. */
+@}
+%after-header @{
+ /* Bison treats this block like a post-prologue block: it inserts
+ * it into the code file after the contents of the header file. It
+ * does *not* insert it into the header file. This is a good place
+ * to declare or define internal functions or data structures that
+ * depend on the Bison-generated definitions. */
+@}
+@end smallexample
+
+If you have multiple occurrences of any one of the above declarations, Bison
+will concatenate the contents in declaration order.
+
+@xref{Prologue, ,The Prologue}.
+@end deffn
+
+@deffn {Directive} %debug
+Equip the parser for debugging. @xref{Decl Summary}.
+@end deffn
+