diff --git a/src/language/PugsParser.cpp b/src/language/PugsParser.cpp
index efddefd1a2081ee30fe26cb77cb16e95eb33c8d1..a82570a8254efeb165f0c1cd27c7526983281e16 100644
--- a/src/language/PugsParser.cpp
+++ b/src/language/PugsParser.cpp
@@ -37,7 +37,11 @@ parser(const std::string& filename)
 {
   const size_t grammar_issues = analyze<language::grammar>();
 
-  std::cout << rang::fgB::yellow << "grammar_issues=" << rang::fg::reset << grammar_issues << '\n';
+  if (grammar_issues != 0) {
+    std::ostringstream os;
+    os << "invalid grammar: " << rang::fgB::yellow << grammar_issues << rang::fg::reset << " were detected!";
+    throw UnexpectedError(os.str());
+  }
 
   std::cout << rang::style::bold << "Parsing file " << rang::style::reset << rang::style::underline << filename
             << rang::style::reset << " ...\n";