No longer set state zero to be final in fsa_init()
This commit is contained in:
parent
d35fa4e9da
commit
730ec80220
@ -118,6 +118,7 @@ static void construct_base(fsa_t *out, int symbol)
|
||||
const int id = fsa_add_state(out);
|
||||
fsa_add_rule(out, id, out->initial, symbol);
|
||||
out->initial = id;
|
||||
out->states[0].final = true;
|
||||
}
|
||||
|
||||
static void construct_star(fsa_t *out)
|
||||
@ -186,6 +187,7 @@ static void construct_union(fsa_t *f, const fsa_t *o)
|
||||
memcpy(&g, f, sizeof(fsa_t));
|
||||
|
||||
fsa_init(f);
|
||||
f->states[0].final = true;
|
||||
f->initial = fsa_add_state(f);
|
||||
|
||||
int init, final;
|
||||
|
@ -19,7 +19,7 @@ void fsa_init(fsa_t *fsa)
|
||||
assert(NULL != fsa->states);
|
||||
|
||||
fsa->initial = fsa_add_state(fsa);
|
||||
fsa->states[fsa->initial].final = true;
|
||||
fsa->states[fsa->initial].final = false;
|
||||
}
|
||||
|
||||
void fsa_free(const fsa_t *fsa)
|
||||
|
@ -30,11 +30,11 @@ static void new_fsa_initial_state_has_no_rules(void)
|
||||
fsa_free(&fsa);
|
||||
}
|
||||
|
||||
static void new_fsa_initial_state_is_final(void)
|
||||
static void new_fsa_initial_state_is_not_final(void)
|
||||
{
|
||||
fsa_t fsa;
|
||||
fsa_init(&fsa);
|
||||
ASSERT_TRUE(fsa.states[fsa.initial].final);
|
||||
ASSERT_FALSE(fsa.states[fsa.initial].final);
|
||||
fsa_free(&fsa);
|
||||
}
|
||||
|
||||
@ -101,7 +101,7 @@ int main(void)
|
||||
new_fsa_has_single_state_with_no_rules();
|
||||
new_fsa_has_initial_state_zero();
|
||||
new_fsa_initial_state_has_no_rules();
|
||||
new_fsa_initial_state_is_final();
|
||||
new_fsa_initial_state_is_not_final();
|
||||
adding_state_increases_count();
|
||||
added_state_is_not_final();
|
||||
added_state_has_no_rules();
|
||||
|
Loading…
x
Reference in New Issue
Block a user