diff options
-rw-r--r-- | cpp.cpp | 71 | ||||
-rw-r--r-- | cpp.h | 14 |
2 files changed, 85 insertions, 0 deletions
@@ -1,5 +1,8 @@ #include "cpp.h" +#include <gtest/gtest.h> +#include <gmock/gmock.h> + void CPP::PreprocessorTokensToTokens(std::vector<Token>& tokens) { for (auto& i : tokens) { @@ -8,3 +11,71 @@ void CPP::PreprocessorTokensToTokens(std::vector<Token>& tokens) } } +// Phase 1: Map physical character set to basic source character set +void CPP::source_charset_map() +{ + // TODO +} + +// Phase 2: Escape backslashed line endings +void CPP::backslash_escape() +{ + // TODO +} + +// Phase 3: Parse preprocessing tokens +void CPP::preprocessing_tokenize() +{ + // TODO +} + +// Phase 4: Preprocessing +void CPP::preprocess() +{ + // TODO +} + +// Phase 5: Map chars and strings to execution charset +void CPP::execution_charset_map() +{ + // TODO +} + +// Phase 6: Concatenate adjacent string literals +void CPP::concatenate_strings() +{ + // TODO +} + +// Phase 7: Create tokens from preprocessing tokens +void CPP::tokens_from_pptokens() +{ +} + +// Phase 8: Instantiate objects +void CPP::instantiate() +{ +} + +// Phase 9: Link libraries +void CPP::link() +{ +} + +// phases of translation, according to standard +void CPP::translate() +{ + source_charset_map(); + backslash_escape(); + preprocessing_tokenize(); + preprocess(); + execution_charset_map(); + concatenate_strings(); + tokens_from_pptokens(); + instantiate(); + link(); +} + +TEST(Cpp, translate) { + CPP::translate(); +} @@ -8,4 +8,18 @@ namespace CPP { void PreprocessorTokensToTokens(std::vector<Token>& tokens); +// phases of translation, according to standard +void source_charset_map(); // phase 1 +void backslash_escape(); // phase 2 +void preprocessing_tokenize(); // phase 3 +void preprocess(); // phase 4 +void execution_charset_map(); // phase 5 +void concatenate_strings(); // phase 6 +void tokens_from_pptokens(); // phase 7 +void instantiate(); // phase 8 +void link(); // phase 9 + +// all phases of translation +void translate(); + } |