diff -r 0a024b29b16d -r b12e78767248 src/lib/lex.c --- a/src/lib/lex.c Thu Oct 09 00:49:32 2008 +0300 +++ b/src/lib/lex.c Sat Oct 11 20:45:28 2008 +0300 @@ -39,7 +39,7 @@ do { if (*c) { // look up the next state - for (trans = lex->state_list[cur_state - 1].trans_list; trans->next_state > 0; trans++) { + for (trans = lex->state_list[cur_state - 1].trans_list; trans->next_state > 0 || trans->flags; trans++) { // accept defaults if (trans->flags & LEX_TRANS_DEFAULT) break; @@ -49,10 +49,10 @@ continue; // abort on invalids - if (trans->flags & LEX_TRANS_INVALID) + if (trans->flags & LEX_TRANS_INVALID) { goto error; - else { + } else { // accept it break; }