|  |  | 
|  | : SYNOPSIS | 
|  | skip_past_newline | 
|  | get_stuff_in_command | 
|  | paramstuff | 
|  | indent | 
|  | maybecatstr | 
|  | ; | 
|  |  | 
|  | : ignore | 
|  | skip_past_newline | 
|  | get_stuff_in_command | 
|  | outputdots | 
|  | maybecatstr | 
|  | ; | 
|  |  | 
|  | : CODE_FRAGMENT | 
|  | ignore ; | 
|  |  | 
|  | : external | 
|  | 0 internalmode ignore ; | 
|  |  | 
|  | : internal | 
|  | 1 internalmode ignore ; | 
|  |  | 
|  | - input stack { a b } output b if internal, a if external | 
|  | : ifinternal | 
|  | "" swap 1 internalmode maybecatstr | 
|  | swap | 
|  | "" swap 0 internalmode maybecatstr | 
|  | catstr | 
|  | ; | 
|  |  | 
|  | - Put note in output string, regardless of internal mode. | 
|  | : COMMENT | 
|  | skip_past_newline | 
|  | get_stuff_in_command | 
|  | translatecomments | 
|  | catstr | 
|  | ; | 
|  |  | 
|  | - SENUM    enum-type-name | 
|  | - ENUM     enum-name | 
|  | - ENUMX    addl-enum-name | 
|  | - ENUMDOC  doc for preceding enums | 
|  | - ENDSENUM max-enum-name | 
|  |  | 
|  | : make_enum_header | 
|  | dup | 
|  | "enum " swap catstr | 
|  | " {\n" catstr | 
|  | swap "  _dummy_first_" swap catstr catstr | 
|  | ",\n" catstr | 
|  | ; | 
|  | : make_string_table_header | 
|  | dup | 
|  | "#ifdef _BFD_MAKE_TABLE_" swap catstr swap | 
|  | "\n\nstatic const char *const " swap catstr catstr | 
|  | "_names[] = { \"@@uninitialized@@\",\n" catstr | 
|  | ; | 
|  | : SENUM | 
|  | skip_past_newline | 
|  | copy_past_newline | 
|  | remchar | 
|  | dup | 
|  | make_enum_header | 
|  | swap | 
|  | make_string_table_header | 
|  | ifinternal | 
|  | catstr | 
|  | get_stuff_in_command catstr | 
|  | translatecomments ; | 
|  | : ENDSENUM | 
|  | skip_past_newline | 
|  | copy_past_newline strip_trailing_newlines | 
|  | dup | 
|  | "  " swap catstr " };\n" catstr	swap | 
|  | " \"@@overflow: " swap catstr "@@\",\n};\n#endif\n\n" catstr | 
|  | ifinternal | 
|  | catstr | 
|  | ; | 
|  | : make_enumerator | 
|  | "  " swap catstr | 
|  | ",\n" catstr | 
|  | ; | 
|  | : make_enumerator_string | 
|  | "  \"" swap catstr | 
|  | "\",\n" catstr | 
|  | ; | 
|  | : ENUM | 
|  | skip_past_newline | 
|  | copy_past_newline | 
|  | remchar | 
|  | dup | 
|  | make_enumerator | 
|  | swap | 
|  | make_enumerator_string | 
|  | ifinternal | 
|  | ; | 
|  | : ENUMX ENUM catstr ; | 
|  | : ENUMEQ | 
|  | skip_past_newline | 
|  | "#define " | 
|  | copy_past_newline remchar | 
|  | catstr | 
|  | " " | 
|  | catstr | 
|  | copy_past_newline | 
|  | catstr | 
|  | "" swap 0 internalmode maybecatstr | 
|  | ; | 
|  | : ENUMEQX ENUMEQ catstr ; | 
|  | : ENUMDOC | 
|  | skip_past_newline | 
|  | get_stuff_in_command | 
|  | strip_trailing_newlines | 
|  | "\n{* " swap catstr "  *}\n" catstr | 
|  | translatecomments | 
|  | - discard it if we're doing internal mode | 
|  | "" swap 0 internalmode maybecatstr | 
|  | swap | 
|  | catstr catstr | 
|  | ; | 
|  | : ENDDD external ; | 
|  | : SECTION ignore ; | 
|  | : SUBSECTION ignore ; | 
|  | : SUBSUBSECTION ignore ; | 
|  | : INTERNAL_DEFINITION internal ; | 
|  | : DESCRIPTION ignore ; | 
|  | : FUNCTION external ; | 
|  | : RETURNS ignore ; | 
|  | : TYPEDEF external ; | 
|  | : INTERNAL_FUNCTION internal ; | 
|  | : INTERNAL internal ; | 
|  | : INODE ignore ; |