summaryrefslogtreecommitdiffabout
path: root/include/sitecing
Unidiff
Diffstat (limited to 'include/sitecing') (more/less context) (show whitespace changes)
-rw-r--r--include/sitecing/sitecing_enflesher.h9
-rw-r--r--include/sitecing/sitecing_parser.h8
2 files changed, 17 insertions, 0 deletions
diff --git a/include/sitecing/sitecing_enflesher.h b/include/sitecing/sitecing_enflesher.h
index 8bc43a0..db15bc3 100644
--- a/include/sitecing/sitecing_enflesher.h
+++ b/include/sitecing/sitecing_enflesher.h
@@ -27,53 +27,62 @@ class sitecing_enflesher : public sitecing_enflesherFlexLexer {
27 public: 27 public:
28 /** 28 /**
29 * It is time to anchor output with the #line directive. 29 * It is time to anchor output with the #line directive.
30 */ 30 */
31 bool anchor_time; 31 bool anchor_time;
32 /** 32 /**
33 * The file currently being written is supposed to have #line 33 * The file currently being written is supposed to have #line
34 * directives all around the place. 34 * directives all around the place.
35 */ 35 */
36 bool anchoraged; 36 bool anchoraged;
37 /** 37 /**
38 * The reference to the parser object containg the parsed source. 38 * The reference to the parser object containg the parsed source.
39 */ 39 */
40 sitecing_parser& parser; 40 sitecing_parser& parser;
41 /** 41 /**
42 * The output stream. 42 * The output stream.
43 */ 43 */
44 ofstream outs; 44 ofstream outs;
45 /** 45 /**
46 * the outs stream destination file. 46 * the outs stream destination file.
47 * @see outs 47 * @see outs
48 */ 48 */
49 string outs_filename; 49 string outs_filename;
50 50
51 /** 51 /**
52 * @param p The parser object containing preparsed data. 52 * @param p The parser object containing preparsed data.
53 */ 53 */
54 sitecing_enflesher(sitecing_parser& p) 54 sitecing_enflesher(sitecing_parser& p)
55 : parser(p), anchor_time(true) { } 55 : parser(p), anchor_time(true) { }
56 56
57 /** 57 /**
58 * Do the job. 58 * Do the job.
59 */ 59 */
60 void enflesh(); 60 void enflesh();
61 61
62 virtual void LexerOutput(const char *buf,int size); 62 virtual void LexerOutput(const char *buf,int size);
63 virtual int yylex(); 63 virtual int yylex();
64 64
65 /** 65 /**
66 * Put a #line anchor into output. 66 * Put a #line anchor into output.
67 */ 67 */
68 void anchor(); 68 void anchor();
69 69
70 /** 70 /**
71 * Close previously opened output stream, rename to the 'correct' 71 * Close previously opened output stream, rename to the 'correct'
72 * destination filename, if needed, and open new file. 72 * destination filename, if needed, and open new file.
73 * @see outs 73 * @see outs
74 * @see outs_filename 74 * @see outs_filename
75 * @see outs_close
75 */ 76 */
76 void outs_open(const string& nfile); 77 void outs_open(const string& nfile);
78 /**
79 * Close previously opened output stream, and rename to the 'correct'
80 * destination filename, if needed.
81 * @see outs_open
82 * @see outs
83 * @see outs_filename
84 */
85 void outs_close();
77}; 86};
78 87
79#endif /* __SITECING_SITECING_ENFLESHER_H */ 88#endif /* __SITECING_SITECING_ENFLESHER_H */
diff --git a/include/sitecing/sitecing_parser.h b/include/sitecing/sitecing_parser.h
index 22d716f..a8474f3 100644
--- a/include/sitecing/sitecing_parser.h
+++ b/include/sitecing/sitecing_parser.h
@@ -246,81 +246,89 @@ class sitecing_parser : public sitecing_parserFlexLexer {
246 */ 246 */
247 typedef list<modus_operandi> modi_operandi; 247 typedef list<modus_operandi> modi_operandi;
248 /** 248 /**
249 * The modes stack. 249 * The modes stack.
250 */ 250 */
251 modi_operandi modi; 251 modi_operandi modi;
252 /** 252 /**
253 * Input file name. 253 * Input file name.
254 */ 254 */
255 string input_file; 255 string input_file;
256 /** 256 /**
257 * Base class name. 257 * Base class name.
258 */ 258 */
259 string base_class; 259 string base_class;
260 /** 260 /**
261 * Base class header. 261 * Base class header.
262 */ 262 */
263 string base_header; 263 string base_header;
264 /** 264 /**
265 * Component's basename. 265 * Component's basename.
266 * @todo TODO: wish I could remember the details -- document me. 266 * @todo TODO: wish I could remember the details -- document me.
267 */ 267 */
268 string component_basename; 268 string component_basename;
269 /** 269 /**
270 * The skeleton file name. 270 * The skeleton file name.
271 */ 271 */
272 string skeleton; 272 string skeleton;
273 /** 273 /**
274 * The component class name. 274 * The component class name.
275 */ 275 */
276 string class_name; 276 string class_name;
277 /** 277 /**
278 * Output basename. 278 * Output basename.
279 * @todo TODO: wish I could remember the details -- document me. 279 * @todo TODO: wish I could remember the details -- document me.
280 */ 280 */
281 string output_basename; 281 string output_basename;
282 /** 282 /**
283 * Verbatim declaration part. 283 * Verbatim declaration part.
284 */ 284 */
285 string decl; 285 string decl;
286 /** 286 /**
287 * Verbatim implementation part. 287 * Verbatim implementation part.
288 */ 288 */
289 string impl; 289 string impl;
290 /** 290 /**
291 * The reference to the component factory object. 291 * The reference to the component factory object.
292 */ 292 */
293 component_factory& factory; 293 component_factory& factory;
294 /**
295 * Pragma map type.
296 */
297 typedef map<string,string> pragmas_t;
298 /**
299 * Pragma's found in the component.
300 */
301 pragmas_t pragmas;
294 302
295 /** 303 /**
296 * @param f the component factory. 304 * @param f the component factory.
297 */ 305 */
298 sitecing_parser(component_factory& f); 306 sitecing_parser(component_factory& f);
299 307
300 /** 308 /**
301 * Preprocess file. 309 * Preprocess file.
302 * @param in input file name. 310 * @param in input file name.
303 */ 311 */
304 void preprocess(const string& in); 312 void preprocess(const string& in);
305 313
306 virtual void LexerOutput(const char *buf,int size); 314 virtual void LexerOutput(const char *buf,int size);
307 virtual int yylex(); 315 virtual int yylex();
308 316
309 /** 317 /**
310 * Retrieve reference to the to of the modes stack. 318 * Retrieve reference to the to of the modes stack.
311 * @return the reference in question. 319 * @return the reference in question.
312 */ 320 */
313 modus_operandi& M() { 321 modus_operandi& M() {
314 return modi.front(); 322 return modi.front();
315 } 323 }
316 /** 324 /**
317 * Anchor the output with the #line, if we're not in the text output mode. 325 * Anchor the output with the #line, if we're not in the text output mode.
318 */ 326 */
319 void soft_anchor(); 327 void soft_anchor();
320 /** 328 /**
321 * Anchor the output with the #line directive, changing to the appropriate output mode if needed. 329 * Anchor the output with the #line directive, changing to the appropriate output mode if needed.
322 */ 330 */
323 void anchor(); 331 void anchor();
324}; 332};
325 333
326#endif /* __SITECING_SITECING_PARSER_H */ 334#endif /* __SITECING_SITECING_PARSER_H */