Home | History | Annotate | Download | only in doc
      1 
      2 : SYNOPSIS
      3 	skip_past_newline
      4 	get_stuff_in_command	
      5 	paramstuff
      6 	indent
      7 	maybecatstr
      8 ;
      9 
     10 : ignore
     11 	skip_past_newline 
     12 	get_stuff_in_command
     13 	outputdots
     14 	maybecatstr
     15 	;
     16 
     17 : CODE_FRAGMENT
     18 	ignore ;
     19 
     20 : external
     21 	0 internalmode ignore ;
     22 
     23 : internal 
     24 	1 internalmode ignore ;
     25 
     26 - input stack { a b } output b if internal, a if external
     27 : ifinternal
     28 	"" swap 1 internalmode maybecatstr
     29 	swap
     30 	"" swap 0 internalmode maybecatstr
     31 	catstr
     32 	;
     33 
     34 - Put note in output string, regardless of internal mode.
     35 : COMMENT
     36 	skip_past_newline
     37 	get_stuff_in_command
     38 	translatecomments
     39 	catstr
     40 	;
     41 
     42 - SENUM    enum-type-name
     43 - ENUM     enum-name
     44 - ENUMX    addl-enum-name
     45 - ENUMDOC  doc for preceding enums
     46 - ENDSENUM max-enum-name
     47 
     48 : make_enum_header
     49 	dup
     50 	"enum " swap catstr
     51 	" {\n" catstr
     52 	swap "  _dummy_first_" swap catstr catstr
     53 	",\n" catstr
     54 	;
     55 : make_string_table_header
     56 	dup
     57 	"#ifdef _BFD_MAKE_TABLE_" swap catstr swap
     58 	"\n\nstatic const char *const " swap catstr catstr
     59 	"_names[] = { \"@@uninitialized@@\",\n" catstr
     60 	;
     61 : SENUM
     62 	skip_past_newline
     63 	copy_past_newline
     64 	remchar
     65 	dup
     66 	make_enum_header
     67 	swap
     68 	make_string_table_header
     69 	ifinternal
     70 	catstr
     71 	get_stuff_in_command catstr
     72 	translatecomments ;
     73 : ENDSENUM
     74 	skip_past_newline
     75 	copy_past_newline strip_trailing_newlines
     76 	dup
     77 	"  " swap catstr " };\n" catstr	swap
     78 	" \"@@overflow: " swap catstr "@@\",\n};\n#endif\n\n" catstr
     79 	ifinternal
     80 	catstr
     81 	;
     82 : make_enumerator
     83 	"  " swap catstr
     84 	",\n" catstr
     85 	;
     86 : make_enumerator_string
     87 	"  \"" swap catstr
     88 	"\",\n" catstr
     89 	;
     90 : ENUM
     91 	skip_past_newline
     92 	copy_past_newline
     93 	remchar
     94 	dup
     95 	make_enumerator
     96 	swap
     97 	make_enumerator_string
     98 	ifinternal
     99 	;
    100 : ENUMX ENUM catstr ;
    101 : ENUMEQ
    102 	skip_past_newline
    103 	"#define "
    104 	copy_past_newline remchar
    105 	catstr
    106 	" "
    107 	catstr
    108 	copy_past_newline
    109 	catstr
    110 	"" swap 0 internalmode maybecatstr
    111 	;
    112 : ENUMEQX ENUMEQ catstr ;
    113 : ENUMDOC
    114 	skip_past_newline
    115 	get_stuff_in_command
    116 	strip_trailing_newlines
    117 	"\n{* " swap catstr "  *}\n" catstr
    118 	translatecomments
    119 	- discard it if we're doing internal mode
    120 	"" swap 0 internalmode maybecatstr
    121 	swap
    122 	catstr catstr
    123 	;
    124 : ENDDD external ;
    125 : SECTION ignore ;
    126 : SUBSECTION ignore ;
    127 : SUBSUBSECTION ignore ;
    128 : INTERNAL_DEFINITION internal ;
    129 : DESCRIPTION ignore ;
    130 : FUNCTION external ;
    131 : RETURNS ignore ;
    132 : TYPEDEF external ;
    133 : INTERNAL_FUNCTION internal ;
    134 : INTERNAL internal ;
    135 : INODE ignore ;
    136