X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fgrammar.git;a=blobdiff_plain;f=bnf.c;fp=bnf.c;h=4ee724168a0adf5de061a2ed854386f5629bee2e;hp=8d960f88e9cc49c5c47f1eadf6981470359d3e52;hb=0032416ad5a69d4d040121e4f3c34aded139abe6;hpb=fde465e3b93784a060bb9c5dd754d348d7599439 diff --git a/bnf.c b/bnf.c index 8d960f8..4ee7241 100644 --- a/bnf.c +++ b/bnf.c @@ -6,7 +6,16 @@ #include #include -static gint scanner_next (scanner_t* scanner, GString** val) +typedef enum + { + NONE = 0, + EQUAL = 1, + ID = 2, + STRING = 3, + EOL = 4 + } token_t; + +static gint bnf_scanner_next (scanner_t* scanner, GString** val) { int state; @@ -249,7 +258,7 @@ Grammar* grammar_load (char* filename) scanner = scanner_new (read, fd); - parser = rdp_new (scanner_next, scanner, BNF_GRAMMAR); + parser = rdp_new (bnf_scanner_next, scanner, BNF_GRAMMAR); grammar = (Grammar*) parser; rule = grammar_rule_new (grammar, symbol_new (FALSE, BNF_GRAMMAR));