diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2009-03-03 10:41:20 +0100 |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2009-03-03 10:41:20 +0100 |
commit | 454438e47d42a88552872e4794ef53909af27730 (patch) | |
tree | 2c5a8cca29acefc0c7eeb80c25e050dd8a1fa02d /src/libs/cplusplus/pp-macro-expander.h | |
parent | ae04679373510e76eb7ee470dbe7801873705bf6 (diff) | |
download | qt-creator-454438e47d42a88552872e4794ef53909af27730.tar.gz |
More cleanup.
Diffstat (limited to 'src/libs/cplusplus/pp-macro-expander.h')
-rw-r--r-- | src/libs/cplusplus/pp-macro-expander.h | 93 |
1 files changed, 45 insertions, 48 deletions
diff --git a/src/libs/cplusplus/pp-macro-expander.h b/src/libs/cplusplus/pp-macro-expander.h index 25d22aef7b..c1c9f24d71 100644 --- a/src/libs/cplusplus/pp-macro-expander.h +++ b/src/libs/cplusplus/pp-macro-expander.h @@ -49,56 +49,53 @@ #ifndef PP_MACRO_EXPANDER_H #define PP_MACRO_EXPANDER_H +#include "pp-scanner.h" +#include <QVector> +#include <QByteArray> + namespace CPlusPlus { - struct pp_frame - { - Macro *expanding_macro; - const QVector<QByteArray> actuals; - - pp_frame (Macro *expanding_macro, const QVector<QByteArray> &actuals) - : expanding_macro (expanding_macro), - actuals (actuals) - { } - }; - - class MacroExpander - { - Environment &env; - pp_frame *frame; - - pp_skip_number skip_number; - pp_skip_identifier skip_identifier; - pp_skip_string_literal skip_string_literal; - pp_skip_char_literal skip_char_literal; - pp_skip_argument skip_argument; - pp_skip_comment_or_divop skip_comment_or_divop; - pp_skip_blanks skip_blanks; - pp_skip_whitespaces skip_whitespaces; - - const QByteArray *resolve_formal (const QByteArray &name); - - public: - MacroExpander (Environment &env, pp_frame *frame = 0); - - const char *operator () (const char *first, const char *last, - QByteArray *result); - - const char *operator () (const QByteArray &source, - QByteArray *result) - { return operator()(source.constBegin(), source.constEnd(), result); } - - const char *expand(const char *first, const char *last, - QByteArray *result); - - const char *skip_argument_variadics (const QVector<QByteArray> &actuals, - Macro *macro, - const char *first, const char *last); - - public: // attributes - int lines; - int generated_lines; - }; +class Environment; + +struct pp_frame; + +class MacroExpander +{ + Environment *env; + pp_frame *frame; + + pp_skip_number skip_number; + pp_skip_identifier skip_identifier; + pp_skip_string_literal skip_string_literal; + pp_skip_char_literal skip_char_literal; + pp_skip_argument skip_argument; + pp_skip_comment_or_divop skip_comment_or_divop; + pp_skip_blanks skip_blanks; + pp_skip_whitespaces skip_whitespaces; + + const QByteArray *resolve_formal(const QByteArray &name); + +public: + MacroExpander(Environment *env, pp_frame *frame = 0); + + const char *operator()(const char *first, const char *last, + QByteArray *result); + + const char *operator()(const QByteArray &source, + QByteArray *result) + { return operator()(source.constBegin(), source.constEnd(), result); } + + const char *expand(const char *first, const char *last, + QByteArray *result); + + const char *skip_argument_variadics(const QVector<QByteArray> &actuals, + Macro *macro, + const char *first, const char *last); + +public: // attributes + int lines; + int generated_lines; +}; } // namespace CPlusPlus |