summaryrefslogtreecommitdiffabout
path: root/include/sitecing
authorMichael Krelin <hacker@klever.net>2005-03-30 15:50:28 (UTC)
committer Michael Krelin <hacker@klever.net>2005-03-30 15:50:28 (UTC)
commit3ddbfeafde93d1aab16a710498d86eef4e787406 (patch) (unidiff)
treed53ef21cf3b2bddfeb957c98344d0be8759ed555 /include/sitecing
parent642dc685bd0a3f1526e22827a4539aa0e06aeff7 (diff)
downloadsitecing-3ddbfeafde93d1aab16a710498d86eef4e787406.zip
sitecing-3ddbfeafde93d1aab16a710498d86eef4e787406.tar.gz
sitecing-3ddbfeafde93d1aab16a710498d86eef4e787406.tar.bz2
1. preprocessor doesn't touch unchanged files anymore
2. doublechedk on whether file is up to date when making 3. changed the way preprocessor targets depend on the timestamp file 4. a bugfix in strip_suffix/strip_prefix
Diffstat (limited to 'include/sitecing') (more/less context) (ignore whitespace changes)
-rw-r--r--include/sitecing/sitecing_enflesher.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/sitecing/sitecing_enflesher.h b/include/sitecing/sitecing_enflesher.h
index 512a358..8bc43a0 100644
--- a/include/sitecing/sitecing_enflesher.h
+++ b/include/sitecing/sitecing_enflesher.h
@@ -21,46 +21,59 @@ using namespace std;
21class sitecing_parser; 21class sitecing_parser;
22/** 22/**
23 * The enfleshing of the skeleton file according to the in-memory parsed 23 * The enfleshing of the skeleton file according to the in-memory parsed
24 * component source. 24 * component source.
25 */ 25 */
26class sitecing_enflesher : public sitecing_enflesherFlexLexer { 26class 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 /**
46 * the outs stream destination file.
47 * @see outs
48 */
49 string outs_filename;
45 50
46 /** 51 /**
47 * @param p The parser object containing preparsed data. 52 * @param p The parser object containing preparsed data.
48 */ 53 */
49 sitecing_enflesher(sitecing_parser& p) 54 sitecing_enflesher(sitecing_parser& p)
50 : parser(p), anchor_time(true) { } 55 : parser(p), anchor_time(true) { }
51 56
52 /** 57 /**
53 * Do the job. 58 * Do the job.
54 */ 59 */
55 void enflesh(); 60 void enflesh();
56 61
57 virtual void LexerOutput(const char *buf,int size); 62 virtual void LexerOutput(const char *buf,int size);
58 virtual int yylex(); 63 virtual int yylex();
59 64
60 /** 65 /**
61 * Put a #line anchor into output. 66 * Put a #line anchor into output.
62 */ 67 */
63 void anchor(); 68 void anchor();
69
70 /**
71 * Close previously opened output stream, rename to the 'correct'
72 * destination filename, if needed, and open new file.
73 * @see outs
74 * @see outs_filename
75 */
76 void outs_open(const string& nfile);
64}; 77};
65 78
66#endif /* __SITECING_SITECING_ENFLESHER_H */ 79#endif /* __SITECING_SITECING_ENFLESHER_H */