From 2ae1fd90afe236f8815921362c5d45a201dd4476 Mon Sep 17 00:00:00 2001 From: Roland Reichwein Date: Sat, 15 Feb 2020 22:12:14 +0100 Subject: Tests --- test-lexer.cpp | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) (limited to 'test-lexer.cpp') 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 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 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 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[]) { -- cgit v1.2.3