aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--driver/parser.go4
-rw-r--r--driver/semantic_action_test.go4
2 files changed, 7 insertions, 1 deletions
diff --git a/driver/parser.go b/driver/parser.go
index 522362e..3099d73 100644
--- a/driver/parser.go
+++ b/driver/parser.go
@@ -136,6 +136,10 @@ ACTION_LOOP:
return err
}
if tok.EOF {
+ if p.semAct != nil {
+ p.semAct.MissError()
+ }
+
return nil
}
diff --git a/driver/semantic_action_test.go b/driver/semantic_action_test.go
index ef92d92..c3f8943 100644
--- a/driver/semantic_action_test.go
+++ b/driver/semantic_action_test.go
@@ -147,12 +147,14 @@ char: "[a-z]";
},
},
{
- caption: "the driver doesn't call `Accept` when a syntax error is trapped, but the input doesn't meet the error production",
+ caption: "when the input doesn't meet the error production, the driver calls `MissError`.",
specSrc: specSrcWithErrorProd,
src: `a !`,
actLog: []string{
"shift/char",
"trap/1/shift/error",
+
+ "miss",
},
},
{