X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fgrammar.git;a=blobdiff_plain;f=bnf.c;h=92d385fd4729d3f2e4c6333bc6c5a5dddef4a096;hp=44cc72e1abc19ebee218c501344635187f5af1c8;hb=6cc79eec169468a13248d59f81c0bb463f296cdb;hpb=ccc2274465fa1d9c23dcb6fa8a85d5c99b949aa7 diff --git a/bnf.c b/bnf.c index 44cc72e..92d385f 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; @@ -250,7 +259,7 @@ grammar_t* grammar_load (char* filename) scanner = scanner_new (read, fd); grammar = grammar_new (); - parser = rdp_new (scanner_next, scanner, BNF_GRAMMAR, grammar); + parser = rdp_new (bnf_scanner_next, scanner, BNF_GRAMMAR, grammar); rule = grammar_rule_new (grammar, symbol_new (FALSE, BNF_GRAMMAR)); rule_append (rule, symbol_new (FALSE, BNF_RULES));