Mercurial > dnsbl
diff src/tokenizer.cpp @ 75:1142e46be550
start coding on new config syntax
author | carl |
---|---|
date | Wed, 13 Jul 2005 23:04:14 -0700 |
parents | b7449114ebb0 |
children | 91c27c00048f |
line wrap: on
line diff
--- a/src/tokenizer.cpp Sun Jul 10 14:19:00 2005 -0700 +++ b/src/tokenizer.cpp Wed Jul 13 23:04:14 2005 -0700 @@ -71,11 +71,11 @@ { s_single, s_term, s_string, s_single, s_eol, }, // 0x28 ( { s_single, s_term, s_string, s_single, s_eol, }, // 0x29 ) { s_single, s_term, s_string, s_single, s_eol, }, // 0x2A * - { s_single, s_term, s_string, s_single, s_eol, }, // 0x2B + + { s_single, s_token, s_string, s_single, s_eol, }, // 0x2B + { s_single, s_term, s_string, s_single, s_eol, }, // 0x2C , { s_single, s_token, s_string, s_single, s_eol, }, // 0x2D - { s_single, s_token, s_string, s_single, s_eol, }, // 0x2E . - { s_slash, s_term, s_string, s_slash, s_eol, }, // 0x2F / + { s_slash, s_token, s_string, s_slash, s_eol, }, // 0x2F / { s_token, s_token, s_string, s_token, s_eol, }, // 0x30 0 { s_token, s_token, s_string, s_token, s_eol, }, // 0x31 1 { s_token, s_token, s_string, s_token, s_eol, }, // 0x32 2 @@ -89,7 +89,7 @@ { s_single, s_term, s_string, s_single, s_eol, }, // 0x3A : { s_single, s_term, s_string, s_single, s_eol, }, // 0x3B ; { s_single, s_term, s_string, s_single, s_eol, }, // 0x3C < - { s_single, s_term, s_string, s_single, s_eol, }, // 0x3D = + { s_single, s_token, s_string, s_single, s_eol, }, // 0x3D = { s_single, s_term, s_string, s_single, s_eol, }, // 0x3E > { s_single, s_term, s_string, s_single, s_eol, }, // 0x3F ? { s_single, s_token, s_string, s_single, s_eol, }, // 0x40 @ @@ -319,7 +319,7 @@ bool TOKEN::next_char(u_char &uc) { if (pushed) { - uc = pushed_char; + uc = (u_char)tolower((char)pushed_char); pushed = false; return true; } @@ -334,6 +334,7 @@ int &line = linenumbers.front(); line++; } + uc = (u_char)tolower((char)uc); return true; } @@ -500,13 +501,22 @@ } -void TOKEN::token_error(const char *token, const char *have) { +void TOKEN::token_error(const char *want, const char *have) { token_error(); - token_error("expecting %s, found %s \n", token, have); + token_error("expecting %s, found %s \n", want, have); } void TOKEN::token_error() { token_error("syntax error at line %d in file %s -- ", cur_line(), cur_fn()); + line_list::iterator j = linenumbers.begin(); + string_list::iterator i = filenames.begin(); + for (; i!=filenames.end(); i++,j++) { + if (i != filenames.begin()) { + char *fn = (*i); + int li = (*j); + token_error("\n included from line %d in file %s -- ", li, fn); + } + } }