diff options
author | Roland Reichwein <mail@reichwein.it> | 2020-10-24 16:32:18 +0200 |
---|---|---|
committer | Roland Reichwein <mail@reichwein.it> | 2020-10-24 16:32:18 +0200 |
commit | 1011655d2ef76a0c0aa29dbbff091dab139198e3 (patch) | |
tree | 63763828f259846f56285691805c187583ecb6bb /test-grammer.cpp | |
parent | 1349c00b782eca3ea841bfa388301cb6fc908cc7 (diff) |
Add FlowGraph
Diffstat (limited to 'test-grammer.cpp')
-rw-r--r-- | test-grammer.cpp | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/test-grammer.cpp b/test-grammer.cpp deleted file mode 100644 index 1734da2..0000000 --- a/test-grammer.cpp +++ /dev/null @@ -1,65 +0,0 @@ -#include "bnf.h" -#include "cpp.h" -#include "cppbnf.h" -#include "lexer.h" -#include "grammer.h" -#include "minicc.h" -#include "debug.h" - -#include <boost/algorithm/string.hpp> - -#include "gmock/gmock.h" -#include "gtest/gtest.h" - -#include <algorithm> -#include <cctype> -#include <deque> -#include <map> -#include <memory> -#include <string> -#include <utility> -#include <vector> - -using namespace std::string_literals; - -class GrammerTest: public ::testing::Test -{ -protected: - GrammerTest() { - //debug = true; - } - ~GrammerTest() { - } - - // Accessors for friend - size_t minimumSymbolsNeeded(Gram::Compiler& compiler, std::vector<std::string> list) { - return compiler.minimumSymbolsNeeded(list); - } - size_t minimumSymbolsNeeded(Gram::Compiler& compiler, std::string s) { - return compiler.minimumSymbolsNeeded(s); - } -}; - -TEST_F(GrammerTest, minimumSymbolsNeeded) { - auto bnf = SubBNF(CPPBNF::GetCppBNFGram(), "translation-unit"); - - Gram::Compiler compiler(bnf, "translation-unit"); - - EXPECT_EQ(minimumSymbolsNeeded(compiler, std::vector<std::string>{}), 0); - EXPECT_EQ(minimumSymbolsNeeded(compiler, "translation-unit"), 0); - EXPECT_EQ(minimumSymbolsNeeded(compiler, "logical-or-expression"), 1); - EXPECT_EQ(minimumSymbolsNeeded(compiler, "assignment-expression"), 1); - EXPECT_EQ(minimumSymbolsNeeded(compiler, "declaration"), 1); - EXPECT_EQ(minimumSymbolsNeeded(compiler, "block-declaration"), 3); - EXPECT_EQ(minimumSymbolsNeeded(compiler, "simple-declaration"), 2); - EXPECT_EQ(minimumSymbolsNeeded(compiler, "asm-declaration"), 5); - EXPECT_EQ(minimumSymbolsNeeded(compiler, "namespace-alias-definition"), 5); - EXPECT_EQ(minimumSymbolsNeeded(compiler, "using-declaration"), 4); - EXPECT_EQ(minimumSymbolsNeeded(compiler, "using-enum-declaration"), 4); - EXPECT_EQ(minimumSymbolsNeeded(compiler, "using-directive"), 4); - EXPECT_EQ(minimumSymbolsNeeded(compiler, "static_assert-declaration"), 5); - EXPECT_EQ(minimumSymbolsNeeded(compiler, "alias-declaration"), 7); - EXPECT_EQ(minimumSymbolsNeeded(compiler, "opaque-enum-declaration"), 3); - EXPECT_EQ(minimumSymbolsNeeded(compiler, "function-definition"), 4); -} - |