#include #include #include #include #include #include #include "hashmap.h" #include "uthash.h" #include "utarray.h" #define INIT_SIZE 100 // Initial size of the dynamic array holding the input typedef struct terminal { int state; int trigger_idx; size_t symbol_len; char * symbol; } terminal; typedef struct trigger { char * id; int dest; char * term; size_t term_len; } trigger; typedef struct state { int state_name; // Integer State name int trigger_len; // Number of triggers associated with this state trigger *ptr; // Pointer to beginning of the list of triggers } state; typedef struct { size_t used; size_t size; size_t inputlen; terminal *start; } Array; int init_state; int curr_state; int final_state; state *create_pda(char *); Array *gen_input(state *, Array *); void print_repr(Array *, char *); void initArray(Array *, size_t); void insertArray(Array *, int, char *, size_t, int);