From 454438e47d42a88552872e4794ef53909af27730 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Tue, 3 Mar 2009 10:41:20 +0100 Subject: More cleanup. --- src/libs/cplusplus/pp-macro-expander.h | 93 ++++++++++++++++------------------ 1 file changed, 45 insertions(+), 48 deletions(-) (limited to 'src/libs/cplusplus/pp-macro-expander.h') 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 +#include + namespace CPlusPlus { - struct pp_frame - { - Macro *expanding_macro; - const QVector actuals; - - pp_frame (Macro *expanding_macro, const QVector &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 &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 &actuals, + Macro *macro, + const char *first, const char *last); + +public: // attributes + int lines; + int generated_lines; +}; } // namespace CPlusPlus -- cgit v1.2.1