Diffstat (limited to 'include/sitecing/sitecing_parser.h') (more/less context) (show whitespace changes)
-rw-r--r-- | include/sitecing/sitecing_parser.h | 8 |
1 files changed, 8 insertions, 0 deletions
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 @@ -198,129 +198,137 @@ class sitecing_parser : public sitecing_parserFlexLexer { /** * The processing flags. */ int flags; /** * Output being built. */ string output; /** * The type for compound modes. */ string _type; /** * The last id encountered. */ string _lastid; /** * The name for compound modes. */ string _name; /** * The argument declaration. Obviously for member functions. */ string _args; /** * @param flags. * @see flags */ modus_operandi(int f = 0) : modus(modus_code), flags(f) { } /** * Change the processing mode. */ void modify(modus_t m); /** * See if we're eating up whitespaces. */ bool devour_whitespace() { return flags&flag_devour_whitespace; } /** * See if we're eating up the comments. */ bool devour_comments() { return flags&flag_devour_comments; } }; /** * The modes stack type. */ typedef list<modus_operandi> modi_operandi; /** * The modes stack. */ modi_operandi modi; /** * Input file name. */ string input_file; /** * Base class name. */ string base_class; /** * Base class header. */ string base_header; /** * Component's basename. * @todo TODO: wish I could remember the details -- document me. */ string component_basename; /** * The skeleton file name. */ string skeleton; /** * The component class name. */ string class_name; /** * Output basename. * @todo TODO: wish I could remember the details -- document me. */ string output_basename; /** * Verbatim declaration part. */ string decl; /** * Verbatim implementation part. */ string impl; /** * The reference to the component factory object. */ component_factory& factory; + /** + * Pragma map type. + */ + typedef map<string,string> pragmas_t; + /** + * Pragma's found in the component. + */ + pragmas_t pragmas; /** * @param f the component factory. */ sitecing_parser(component_factory& f); /** * Preprocess file. * @param in input file name. */ void preprocess(const string& in); virtual void LexerOutput(const char *buf,int size); virtual int yylex(); /** * Retrieve reference to the to of the modes stack. * @return the reference in question. */ modus_operandi& M() { return modi.front(); } /** * Anchor the output with the #line, if we're not in the text output mode. */ void soft_anchor(); /** * Anchor the output with the #line directive, changing to the appropriate output mode if needed. */ void anchor(); }; #endif /* __SITECING_SITECING_PARSER_H */ |