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