diff options
author | Roland Reichwein <mail@reichwein.it> | 2020-11-09 16:55:10 +0100 |
---|---|---|
committer | Roland Reichwein <mail@reichwein.it> | 2020-11-09 16:55:10 +0100 |
commit | 8f2e3e7af0360cca7f8918ae41cc573f8cd88d7f (patch) | |
tree | d75230f12d1c25105aa68f96ce5759b8a547a2a2 | |
parent | fe063834e53e856823b9a42ad3a5e04153446849 (diff) |
Support empty translation unit
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | grammer.cpp | 3 | ||||
-rw-r--r-- | tests/test-cpp.cpp | 4 |
3 files changed, 4 insertions, 5 deletions
@@ -91,7 +91,7 @@ TESTSRC=\ SRC=$(PROGSRC) mcc.cpp all: test-$(PROJECTNAME) mcc - ./test-$(PROJECTNAME) --gtest_filter='CppTest.compile_2_times' + ./test-$(PROJECTNAME) #--gtest_filter='CppTest.compile_2_times' # testsuite ---------------------------------------------- test-$(PROJECTNAME): $(TESTSRC:.cpp=.o) diff --git a/grammer.cpp b/grammer.cpp index 31a4bbf..3f3a0f1 100644 --- a/grammer.cpp +++ b/grammer.cpp @@ -392,9 +392,6 @@ std::vector<TreeNode> Compiler::compile(std::vector<Token> p_tokens) clear(); tokens = p_tokens; - if (tokens.size() == 0) - throw std::runtime_error("No tokens"); - // // top-down algorithm: // diff --git a/tests/test-cpp.cpp b/tests/test-cpp.cpp index 0a0276e..e80f2d6 100644 --- a/tests/test-cpp.cpp +++ b/tests/test-cpp.cpp @@ -57,7 +57,9 @@ TEST_F(CppTest, preprocessing_tokenize_empty) { auto nodes = cpp.analysis(tokens); - ASSERT_EQ(nodes.size(), 0); + ASSERT_EQ(nodes.size(), 1); + + ASSERT_EQ(nodes[0].type, "translation-unit"); } TEST_F(CppTest, preprocessing_tokenize_compile_error) { |