Add success result to desugar_regex()

This commit is contained in:
2024-10-26 17:37:14 +01:00
parent ac4e9911d8
commit 07fc46ce38
3 changed files with 73 additions and 24 deletions

View File

@@ -19,7 +19,9 @@ static void a_is_unchanged(void)
alternatives[0].contents = terms;
parse_tree_t t = { .count = 1, .capacity = 1, .contents = alternatives };
desugar_regex(&t);
const bool success = desugar_regex(&t);
ASSERT_TRUE(success);
ASSERT_EQ(1, t.count);
ASSERT_NOT_NULL(t.contents);
ASSERT_EQ(1, t.contents[0].count);
@@ -45,7 +47,9 @@ static void abc_is_unchanged(void)
alternatives[0].contents = terms;
parse_tree_t t = { .count = 1, .capacity = 1, .contents = alternatives };
desugar_regex(&t);
const bool success = desugar_regex(&t);
ASSERT_TRUE(success);
ASSERT_EQ(1, t.count);
ASSERT_NOT_NULL(t.contents);
ASSERT_EQ(3, t.contents[0].count);
@@ -73,7 +77,9 @@ static void a_star_is_unchanged(void)
alternatives[0].contents = terms;
parse_tree_t t = { .count = 1, .capacity = 1, .contents = alternatives };
desugar_regex(&t);
const bool success = desugar_regex(&t);
ASSERT_TRUE(success);
ASSERT_EQ(1, t.count);
ASSERT_NOT_NULL(t.contents);
ASSERT_EQ(1, t.contents[0].count);
@@ -100,7 +106,9 @@ static void a_or_b_or_c_is_unchanged(void)
}
parse_tree_t t = { .count = 3, .capacity = 3, .contents = alternatives };
desugar_regex(&t);
const bool success = desugar_regex(&t);
ASSERT_TRUE(success);
ASSERT_EQ(3, t.count);
ASSERT_NOT_NULL(t.contents);
for (int i = 0; i < 3; ++i) {
@@ -135,7 +143,8 @@ static void subexpr_a_is_unchanged(void)
alternatives[0].contents = terms;
parse_tree_t t = { .count = 1, .capacity = 1, .contents = alternatives };
desugar_regex(&t);
const bool success = desugar_regex(&t);
ASSERT_TRUE(success);
parse_free_tree_children(&t);
}
@@ -151,7 +160,9 @@ static void a_plus_becomes_subexpr_aa_star(void)
alternatives[0].contents = terms;
parse_tree_t t = { .count = 1, .capacity = 1, .contents = alternatives };
desugar_regex(&t);
const bool success = desugar_regex(&t);
ASSERT_TRUE(success);
ASSERT_EQ(1, t.count);
ASSERT_NOT_NULL(t.contents);
ASSERT_EQ(1, t.contents[0].count);
@@ -187,7 +198,9 @@ static void a_qmark_becomes_subexpr_empty_or_a(void)
alternatives[0].contents = terms;
parse_tree_t t = { .count = 1, .capacity = 1, .contents = alternatives };
desugar_regex(&t);
const bool success = desugar_regex(&t);
ASSERT_TRUE(success);
ASSERT_EQ(1, t.count);
ASSERT_NOT_NULL(t.contents);
ASSERT_EQ(1, t.contents[0].count);