summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRoland Reichwein <mail@reichwein.it>2020-11-09 16:55:10 +0100
committerRoland Reichwein <mail@reichwein.it>2020-11-09 16:55:10 +0100
commit8f2e3e7af0360cca7f8918ae41cc573f8cd88d7f (patch)
treed75230f12d1c25105aa68f96ce5759b8a547a2a2
parentfe063834e53e856823b9a42ad3a5e04153446849 (diff)
Support empty translation unit
-rw-r--r--Makefile2
-rw-r--r--grammer.cpp3
-rw-r--r--tests/test-cpp.cpp4
3 files changed, 4 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index 8cc8c0f..be048c4 100644
--- a/Makefile
+++ b/Makefile
@@ -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) {