summaryrefslogtreecommitdiffhomepage
path: root/cpp.cpp
diff options
context:
space:
mode:
authorRoland Reichwein <mail@reichwein.it>2020-02-16 16:52:09 +0100
committerRoland Reichwein <mail@reichwein.it>2020-02-16 16:52:09 +0100
commit6340b97a4fc435d838262ed25cee9566fea7da4c (patch)
tree296e968e1545c9f51c0b4d14044a257fe588241f /cpp.cpp
parent2f4118526972f7f3d5147342bc65909fcc82b6c7 (diff)
Add translation phases stubs
Diffstat (limited to 'cpp.cpp')
-rw-r--r--cpp.cpp71
1 files changed, 71 insertions, 0 deletions
diff --git a/cpp.cpp b/cpp.cpp
index d9f2efb..54dd0d2 100644
--- a/cpp.cpp
+++ b/cpp.cpp
@@ -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();
+}