lmi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi-commits] [lmi] master 00c737d 1/6: Ensure that parser issues a diag


From: Greg Chicares
Subject: [lmi-commits] [lmi] master 00c737d 1/6: Ensure that parser issues a diagnostic when insanity detected
Date: Tue, 28 Feb 2017 22:02:58 -0500 (EST)

branch: master
commit 00c737de694836769d465ccada7750b523b2048a
Author: Gregory W. Chicares <address@hidden>
Commit: Gregory W. Chicares <address@hidden>

    Ensure that parser issues a diagnostic when insanity detected
    
    Formerly, the last statement in span() began
      if(!current_interval_.insane)
    which raised the question "else what?". The answer was that presumably
    a diagnostic had been issued. Now, if there had been no diagnostic, one
    is issued anyway. All diagnostics are treated as errors, so in effect
    this ensures that any insanity detected here is trapped.
---
 input_sequence_parser.cpp | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/input_sequence_parser.cpp b/input_sequence_parser.cpp
index 9300a1a..e0b82f2 100644
--- a/input_sequence_parser.cpp
+++ b/input_sequence_parser.cpp
@@ -489,7 +489,15 @@ void SequenceParser::span()
             mark_diagnostic_context();
             }
         }
-    if(!current_interval_.insane)
+    if(current_interval_.insane)
+        {
+        if(diagnostics_.str().empty())
+            {
+            diagnostics_ << "Internal parser error. ";
+            mark_diagnostic_context();
+            }
+        }
+    else
         {
         intervals_.push_back(current_interval_);
         }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]