Try to recover after each wrong statement.
authorMarek Safar <marek.safar@gmail.com>
Thu, 9 Sep 2010 14:58:13 +0000 (15:58 +0100)
committerMarek Safar <marek.safar@gmail.com>
Thu, 9 Sep 2010 14:58:13 +0000 (15:58 +0100)
mcs/errors/cs1056.cs [new file with mode: 0644]
mcs/errors/cs1525-18.cs [new file with mode: 0644]
mcs/mcs/cs-parser.jay
mcs/mcs/cs-tokenizer.cs

diff --git a/mcs/errors/cs1056.cs b/mcs/errors/cs1056.cs
new file mode 100644 (file)
index 0000000..71c14eb
--- /dev/null
@@ -0,0 +1,10 @@
+// CS1056: Unexpected character `$'
+// Line: 8
+
+public class C
+{
+       void Update ()
+       {
+               int a = $7;
+       }
+}
diff --git a/mcs/errors/cs1525-18.cs b/mcs/errors/cs1525-18.cs
new file mode 100644 (file)
index 0000000..c6ad28b
--- /dev/null
@@ -0,0 +1,15 @@
+// CS1525: Unexpected symbol `foreach', expecting `identifier'
+// Line: 11
+
+public partial class Log
+{
+       void Update (object[] h)
+       {
+               if (h == null)
+                       return;
+               
+               logstore.
+               foreach (var rev in h) {
+               }
+       }
+}
index 830c2c7228c2120548c8f2e1482793ccbbe22cf4..1369cb36da634ac2b5235db679a3db3688c9aef4 100644 (file)
@@ -3015,7 +3015,7 @@ primary_expression
        | checked_expression
        | unchecked_expression
        | pointer_member_access
-       | anonymous_method_expression   
+       | anonymous_method_expression
        ;
 
 primary_expression_or_type
@@ -4520,6 +4520,11 @@ statement
                current_block.AddStatement ((Statement) $1);
          }
        | labeled_statement
+       | error
+         {
+               Error_SyntaxError (yyToken);
+               $$ = null;
+         }
        ;
 
 //
@@ -4861,11 +4866,6 @@ statement_expression
 
                $$ = new StatementExpression (s);
          }
-       | error
-         {
-               Error_SyntaxError (yyToken);
-               $$ = null;
-         }
        ;
 
 interactive_statement_expression
index 4f6ad6bfd935cf0c720110493efa61e8a5ead8b2..6e5bcf74911f2ccc19f0993bbc3eea64af86ca75 100644 (file)
@@ -3213,8 +3213,7 @@ namespace Mono.CSharp
                                        return consume_identifier (c);
                                }
 
-                               error_details = ((char)c).ToString ();
-                               return Token.ERROR;
+                               Report.Error (1056, Location, "Unexpected character `{0}'", ((char) c).ToString ());
                        }
 
                        if (CompleteOnEOF){