+**
+** This code compiles the format strings (documented in mh-format(5)) into
+** an internal form to be later processed by fmt_scan.c.
+**
+** What happens here is that the format strings are parsed and an array
+** of struct format structures are returned. Each format structure is
+** a single operation interpreted by the the routines in fmt_scan.c.
+**
+** There is a NOT a one-to-one correspondence between format strings and
+** format instructions; some functions have side effects that can result
+** in multiple instructions being generated. The exact list of instructions
+** generated by a format string can be seem with the nmh fmtdump utility.
+**
+** A list of format instructions can be found in fmt_compile.h.
+**
+** If you wish to add a new function, you will need to do the following
+** things:
+**
+** - Add a new instruction to the list of instructions in fmt_compile.h.
+** Note that test instructions (starting with FT_IF_S_NULL) have special
+** handling, so if you are NOT writing a test function then you need
+** to insert it into the list before that _and_ bump all of the
+** following instruction numbers.
+**
+** - Add the function name to the functable[] array below, and write any
+** special code that your function may require in terms of parsing
+** (it very well may not need anything).
+**
+** - Add the code in fmt_scan.c to handle your new function.
+**
+** - Document the new function in the mh-format(5) man page.
+**