From 31c460780f791019879ccbfddbfdc4ce22b81c68 Mon Sep 17 00:00:00 2001
From: "Sven M. Hallberg" <pesco@khjk.org>
Date: Wed, 16 Sep 2015 18:23:32 +0200
Subject: [PATCH] add regression test for unhandled charset left-hand-side case
 in LALR compile

---
 src/t_regression.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/t_regression.c b/src/t_regression.c
index 1eeaf8c2..05f44dad 100644
--- a/src/t_regression.c
+++ b/src/t_regression.c
@@ -118,9 +118,23 @@ static void test_llk_zero_end(void) {
     g_check_parse_failed(aze, be, "a", 1);
 }
 
+static void test_lalr_charset_lhs(void) {
+    HParserBackend be = PB_LALR;
+
+    HParser *p = h_choice(h_ch('A'), h_uint8(), NULL);
+
+    // the above would fail to compile because of an unhandled case in trying
+    // to resolve a conflict where an item's left-hand-side was an HCF_CHARSET.
+
+    g_check_parse_match(p, be, "A",1, "u0x41");
+    g_check_parse_match(p, be, "B",1, "u0x42");
+}
+
 void register_regression_tests(void) {
   g_test_add_func("/core/regression/bug118", test_bug118);
   g_test_add_func("/core/regression/seq_index_path", test_seq_index_path);
   g_test_add_func("/core/regression/read_bits_48", test_read_bits_48);
   g_test_add_func("/core/regression/llk_zero_end", test_llk_zero_end);
+  g_test_add_func("/core/regression/lalr_charset_lhs", test_lalr_charset_lhs);
+
 }
-- 
GitLab