diff options
Diffstat (limited to 'cpp.h')
-rw-r--r-- | cpp.h | 22 |
1 files changed, 17 insertions, 5 deletions
@@ -1,25 +1,37 @@ #pragma once +#include "grammer.h" #include "minicc.h" #include <vector> -namespace CPP { +class CPP { -void PreprocessorTokensToTokens(std::vector<Token>& tokens); +public: + +CPP(); +~CPP(); + +std::string valueOfNode(index_t node_index, const std::vector<Gram::TreeNode>& Tree); +static void PreprocessorTokensToTokens(std::vector<Token>& tokens); // obsolete // phases of translation, according to standard void source_charset_map(); // phase 1 void backslash_escape(); // phase 2 -void preprocessing_tokenize(const std::string& s); // phase 3 +std::pair<index_t, std::vector<Gram::TreeNode>> preprocessing_tokenize(const std::string& s); // phase 3 void preprocess(); // phase 4 void execution_charset_map(); // phase 5 void concatenate_strings(); // phase 6 -void tokens_from_pptokens(); // phase 7 +std::vector<Token> tokens_from_pptokens(std::pair<index_t, std::vector<Gram::TreeNode>> Tree); // phase 7.a +std::pair<index_t, std::vector<Gram::TreeNode>> analysis(std::vector<Token>); // phase 7.b +void translate(); // phase 7.c void instantiate(); // phase 8 void link(); // phase 9 // all phases of translation void translate(const std::string& code); -} +private: + std::string m_code; + std::vector<Token> m_charTokens; +}; |