summaryrefslogtreecommitdiffhomepage
path: root/test-lexer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test-lexer.cpp')
-rw-r--r--test-lexer.cpp31
1 files changed, 29 insertions, 2 deletions
diff --git a/test-lexer.cpp b/test-lexer.cpp
index 05633d0..c2bc824 100644
--- a/test-lexer.cpp
+++ b/test-lexer.cpp
@@ -61,7 +61,7 @@ TEST_F(Test, BNF) {
// implicit?
//std::set<std::string> Terminals{"identifier", "=", ";"};
- std::string Code{"a = bc ; c = 123 ; esd = Ff ; 1 = XYZ "};
+ std::string Code{"a = bc ; c = 123 ; esd = Ff ; 1 = XYZ ; "};
std::vector<Token> tokens_reference{
{"identifier", "a", { 1, 1} },
{"preprocessing-op-or-punc", "=", { 1, 3}},
@@ -78,7 +78,7 @@ TEST_F(Test, BNF) {
{"pp-number", "1", { 1, 31}},
{"preprocessing-op-or-punc", "=", { 1, 33}},
{"identifier", "XYZ", { 1, 35}},
- //{"preprocessing-op-or-punc", ";", { 1, 39}},
+ {"preprocessing-op-or-punc", ";", { 1, 39}},
};
Lex::Lexer lexer(LexBNF, LexTop);
@@ -97,6 +97,33 @@ TEST_F(Test, BNF) {
auto Tree = compiler.compile(tokens);
compiler.DumpTree();
+
+ //----------------------------------------------------------------
+
+ std::string Code2{"a = bc ; c = 123 ; esd = Ff ; 1 = XYZ "};
+ std::vector<Token> tokens_reference2{
+ {"identifier", "a", { 1, 1} },
+ {"preprocessing-op-or-punc", "=", { 1, 3}},
+ {"identifier", "bc", { 1, 5}},
+ {"preprocessing-op-or-punc", ";", { 1, 8}},
+ {"identifier", "c", { 1, 10}},
+ {"preprocessing-op-or-punc", "=", { 1, 12}},
+ {"pp-number", "123", { 1, 14}},
+ {"preprocessing-op-or-punc", ";", { 1, 18}},
+ {"identifier", "esd", { 1, 20}},
+ {"preprocessing-op-or-punc", "=", { 1, 24}},
+ {"identifier", "Ff", { 1, 26}},
+ {"preprocessing-op-or-punc", ";", { 1, 29}},
+ {"pp-number", "1", { 1, 31}},
+ {"preprocessing-op-or-punc", "=", { 1, 33}},
+ {"identifier", "XYZ", { 1, 35}},
+ //{"preprocessing-op-or-punc", ";", { 1, 39}},
+ };
+
+ tokens = lexer.Lex(Code2);
+ ASSERT_EQ(tokens, tokens_reference2);
+ CPP::PreprocessorTokensToTokens(tokens);
+ Tree = compiler.compile(tokens);
}
int main(int argc, char* argv[]) {