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