Revert "Use char instead of int for FSA rule input"

This reverts commit eb22abfb1b6dbdf6dc702e3d9d99314cbbb22d7b.
This commit is contained in:
Camden Dixie O'Brien 2024-10-27 13:55:12 +00:00
parent d5b40f9324
commit d4b7a0a25c
2 changed files with 10 additions and 4 deletions

View File

@ -47,10 +47,11 @@ int fsa_add_state(fsa_t *fsa)
return fsa->count++;
}
void fsa_add_rule(fsa_t *fsa, int from, int to, char input)
void fsa_add_rule(fsa_t *fsa, int from, int to, int input)
{
assert(fsa->count > from);
assert(fsa->count > to);
assert(input < ALPHABET_SIZE);
fsa_state_t *state = &fsa->states[from];
if (state->count >= state->capacity) {

View File

@ -8,9 +8,14 @@
#include <stdbool.h>
#define CHAR_COUNT 256
#define ALPHABET_SIZE (CHAR_COUNT + 1)
// Use one more than any valid char to represent empty string
#define EPSILON CHAR_COUNT
typedef struct {
int next;
char input;
int input, next;
} fsa_rule_t;
typedef struct {
@ -28,6 +33,6 @@ void fsa_init(fsa_t *fsa);
void fsa_free(const fsa_t *fsa);
int fsa_add_state(fsa_t *fsa);
void fsa_add_rule(fsa_t *fsa, int from, int to, char input);
void fsa_add_rule(fsa_t *fsa, int from, int to, int input);
#endif