| 88 |
struct parser_result *res; |
struct parser_result *res; |
| 89 |
struct parser_res *entry; |
struct parser_res *entry; |
| 90 |
const struct parser_keywords *kwp; |
const struct parser_keywords *kwp; |
| 91 |
char ch, *cp, *t, *tp, *buf, *buf_base; |
char *cp, *t, *tp, *buf, *buf_base; |
| 92 |
size_t len, n; |
size_t len, n; |
| 93 |
struct stat sb; |
struct stat sb; |
| 94 |
char *entry_multi; |
char *entry_multi; |
| 151 |
while (*t != '\n') |
while (*t != '\n') |
| 152 |
++t; |
++t; |
| 153 |
t = str_nsave(buf, t - buf + /* NL */ 1); |
t = str_nsave(buf, t - buf + /* NL */ 1); |
|
loop_addline: |
|
| 154 |
if (cp != NULL) { |
if (cp != NULL) { |
| 155 |
if (*(tp = cp + strlen(cp) - 2) == '\\') |
if (*(tp = cp + strlen(cp) - 2) == '\\') |
| 156 |
*tp = '\0'; |
*tp = '\0'; |
| 205 |
++zp; |
++zp; |
| 206 |
if (zp == np) |
if (zp == np) |
| 207 |
errx(1, "syntax error: iterator expected"); |
errx(1, "syntax error: iterator expected"); |
| 208 |
if (*zp != kwp->kwtype == KWT_ITERATED ? '\0' : '_') |
if (*zp != (char)(kwp->kwtype == KWT_ITERATED ? |
| 209 |
|
'\0' : '_')) |
| 210 |
errx(1, "syntax error: %s expected," |
errx(1, "syntax error: %s expected," |
| 211 |
" got 0x%02X", kwp->kwtype == KWT_ITERATED ? |
" got 0x%02X", kwp->kwtype == KWT_ITERATED ? |
| 212 |
"tab" : "underscore", *zp); |
"tab" : "underscore", *zp); |
| 255 |
} |
} |
| 256 |
|
|
| 257 |
void |
void |
| 258 |
nfo_parser_dump(struct parser_res *entry, const struct parser_keywords *kws) |
parser_dump(struct parser_res *entry, const struct parser_keywords *kws) |
| 259 |
{ |
{ |
| 260 |
const struct parser_keywords *kwp; |
const struct parser_keywords *kwp; |
| 261 |
|
|
| 262 |
|
kwp = parser_getkwbynum(entry->keyword, kws); |
| 263 |
printf("keyword %s (type %s)", |
printf("keyword %s (type %s)", |
| 264 |
(kwp = parser_getkwbynum(entry->keyword, kws)) == NULL ? |
kwp == NULL ? "<unknown>" : kwp->kwprefix, |
|
"<unknown>" : kwp->kwprefix, |
|
| 265 |
kwp == NULL ? "invalid" : |
kwp == NULL ? "invalid" : |
| 266 |
kwp->kwtype == KWT_NORMAL ? "normal" : |
kwp->kwtype == KWT_NORMAL ? "normal" : |
| 267 |
kwp->kwtype == KWT_MULTI ? "multi" : |
kwp->kwtype == KWT_MULTI ? "multi" : |