1 /*
2 * File automatically generated by
3 * gengen 1.4.2 by Lorenzo Bettini
4 * http://www.gnu.org/software/gengen
5 */
6
7 #include "option_arg.h"
8
9 void
generate_option_arg(ostream & stream,unsigned int indent)10 option_arg_gen_class::generate_option_arg(ostream &stream, unsigned int indent)
11 {
12 string indent_str (indent, ' ');
13 indent = 0;
14
15 if (long_long_arg)
16 {
17 stream << "#if defined(HAVE_LONG_LONG) || defined(HAVE_LONG_LONG_INT)";
18 stream << "\n";
19 stream << indent_str;
20 generate_string (type, stream, indent + indent_str.length ());
21 stream << " ";
22 generate_string (name, stream, indent + indent_str.length ());
23 stream << "_arg; /**< ";
24 stream << "@";
25 stream << "brief ";
26 generate_string (desc, stream, indent + indent_str.length ());
27 if (has_default)
28 {
29 stream << " (default=";
30 generate_string (default_value, stream, indent + indent_str.length ());
31 stream << ")";
32 }
33 stream << ". */";
34 stream << "\n";
35 stream << indent_str;
36 stream << "#else";
37 stream << "\n";
38 stream << indent_str;
39 generate_string (longtype, stream, indent + indent_str.length ());
40 stream << " ";
41 generate_string (name, stream, indent + indent_str.length ());
42 stream << "_arg; /**< ";
43 stream << "@";
44 stream << "brief ";
45 generate_string (desc, stream, indent + indent_str.length ());
46 if (has_default)
47 {
48 stream << " (default=";
49 generate_string (default_value, stream, indent + indent_str.length ());
50 stream << ")";
51 }
52 stream << ". */";
53 stream << "\n";
54 stream << indent_str;
55 stream << "#endif";
56 stream << "\n";
57 stream << indent_str;
58 generate_string (origtype, stream, indent + indent_str.length ());
59 stream << " ";
60 generate_string (name, stream, indent + indent_str.length ());
61 stream << "_orig; /**< ";
62 stream << "@";
63 stream << "brief ";
64 generate_string (desc, stream, indent + indent_str.length ());
65 stream << " original value given at command line. */";
66 stream << "\n";
67 stream << indent_str;
68 }
69 else
70 {
71 if (flag_arg)
72 {
73 generate_string (type, stream, indent + indent_str.length ());
74 stream << " ";
75 generate_string (name, stream, indent + indent_str.length ());
76 stream << "_flag; /**< ";
77 stream << "@";
78 stream << "brief ";
79 generate_string (desc, stream, indent + indent_str.length ());
80 stream << " (default=";
81 if (default_on)
82 {
83 stream << "on";
84 }
85 else
86 {
87 stream << "off";
88 }
89 stream << "). */";
90 stream << "\n";
91 stream << indent_str;
92 }
93 else
94 {
95 if (has_arg)
96 {
97 if (has_enum)
98 {
99 stream << "enum enum_";
100 generate_string (name, stream, indent + indent_str.length ());
101 stream << " ";
102 if (multiple)
103 {
104 stream << "*";
105 }
106 generate_string (name, stream, indent + indent_str.length ());
107 stream << "_arg; /**< ";
108 stream << "@";
109 stream << "brief ";
110 generate_string (desc, stream, indent + indent_str.length ());
111 if (has_default)
112 {
113 stream << " (default='";
114 generate_string (default_value, stream, indent + indent_str.length ());
115 stream << "')";
116 }
117 stream << ". */";
118 stream << "\n";
119 stream << indent_str;
120 }
121 else
122 {
123 generate_string (type, stream, indent + indent_str.length ());
124 stream << " ";
125 generate_string (name, stream, indent + indent_str.length ());
126 stream << "_arg; /**< ";
127 stream << "@";
128 stream << "brief ";
129 generate_string (desc, stream, indent + indent_str.length ());
130 if (has_default)
131 {
132 stream << " (default='";
133 generate_string (default_value, stream, indent + indent_str.length ());
134 stream << "')";
135 }
136 stream << ". */";
137 stream << "\n";
138 stream << indent_str;
139 }
140 generate_string (origtype, stream, indent + indent_str.length ());
141 stream << " ";
142 generate_string (name, stream, indent + indent_str.length ());
143 stream << "_orig; /**< ";
144 stream << "@";
145 stream << "brief ";
146 generate_string (desc, stream, indent + indent_str.length ());
147 stream << " original value given at command line. */";
148 stream << "\n";
149 stream << indent_str;
150 }
151 }
152 }
153 if (multiple)
154 {
155 stream << "unsigned int ";
156 generate_string (name, stream, indent + indent_str.length ());
157 stream << "_min; /**< ";
158 stream << "@";
159 stream << "brief ";
160 generate_string (desc, stream, indent + indent_str.length ());
161 stream << "'s minimum occurreces */";
162 stream << "\n";
163 stream << indent_str;
164 stream << "unsigned int ";
165 generate_string (name, stream, indent + indent_str.length ());
166 stream << "_max; /**< ";
167 stream << "@";
168 stream << "brief ";
169 generate_string (desc, stream, indent + indent_str.length ());
170 stream << "'s maximum occurreces */";
171 stream << "\n";
172 stream << indent_str;
173 }
174 stream << "const char *";
175 generate_string (name, stream, indent + indent_str.length ());
176 stream << "_help; /**< ";
177 stream << "@";
178 stream << "brief ";
179 generate_string (desc, stream, indent + indent_str.length ());
180 stream << " help description. */";
181 stream << "\n";
182 stream << indent_str;
183 }
184