[vala/staging] parser: Deal with certain missing delimiters and let the parser continue



commit 5464767cfa5a8dbbc5f46293693ca627b8fcc46d
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Sat Jan 18 20:03:37 2020 +0100

    parser: Deal with certain missing delimiters and let the parser continue

 vala/valaparser.vala | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)
---
diff --git a/vala/valaparser.vala b/vala/valaparser.vala
index 2edfcce31..d399d9dd6 100644
--- a/vala/valaparser.vala
+++ b/vala/valaparser.vala
@@ -126,7 +126,20 @@ public class Vala.Parser : CodeVisitor {
                        return true;
                }
 
-               throw new ParseError.SYNTAX ("expected %s", type.to_string ());
+               switch (type) {
+               case TokenType.CLOSE_BRACE:
+                       prev ();
+                       report_parse_error (new ParseError.SYNTAX ("following block delimiter %s missing", 
type.to_string ()));
+                       return true;
+               case TokenType.CLOSE_BRACKET:
+               case TokenType.CLOSE_PARENS:
+               case TokenType.SEMICOLON:
+                       prev ();
+                       report_parse_error (new ParseError.SYNTAX ("following expression/statement delimiter 
%s missing", type.to_string ()));
+                       return true;
+               default:
+                       throw new ParseError.SYNTAX ("expected %s", type.to_string ());
+               }
        }
 
        inline SourceLocation get_location () {


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