version 1.37, 2009/01/08 14:55:59 |
version 1.39, 2009/01/12 10:31:53 |
Line 222 print_node(const struct mdoc_node *n, int indent) |
|
Line 222 print_node(const struct mdoc_node *n, int indent) |
|
argv = n->data.block.argv; |
argv = n->data.block.argv; |
argc = n->data.block.argc; |
argc = n->data.block.argc; |
break; |
break; |
|
case (MDOC_ROOT): |
|
p = "root"; |
|
t = "root"; |
|
break; |
default: |
default: |
abort(); |
abort(); |
/* NOTREACHED */ |
/* NOTREACHED */ |
Line 240 print_node(const struct mdoc_node *n, int indent) |
|
Line 244 print_node(const struct mdoc_node *n, int indent) |
|
for (i = 0; i < (int)sz; i++) |
for (i = 0; i < (int)sz; i++) |
(void)printf(" \"%s\"", params[i]); |
(void)printf(" \"%s\"", params[i]); |
|
|
(void)printf("\n"); |
(void)printf(" %d:%d\n", n->line, n->pos); |
|
|
if (n->child) |
if (n->child) |
print_node(n->child, indent + 1); |
print_node(n->child, indent + 1); |
Line 262 parse_leave(struct md_parse *p, int code) |
|
Line 266 parse_leave(struct md_parse *p, int code) |
|
if ((n = mdoc_result(p->mdoc))) |
if ((n = mdoc_result(p->mdoc))) |
print_node(n, 0); |
print_node(n, 0); |
|
|
|
mdoc_free(p->mdoc); |
|
|
return(code); |
return(code); |
} |
} |
|
|
Line 322 msg_err(void *arg, int line, int col, enum mdoc_err ty |
|
Line 328 msg_err(void *arg, int line, int col, enum mdoc_err ty |
|
{ |
{ |
char *lit; |
char *lit; |
struct md_parse *p; |
struct md_parse *p; |
int i; |
|
|
|
p = (struct md_parse *)arg; |
p = (struct md_parse *)arg; |
|
|
Line 403 msg_err(void *arg, int line, int col, enum mdoc_err ty |
|
Line 408 msg_err(void *arg, int line, int col, enum mdoc_err ty |
|
lit = "syntax: expected value for macro argument"; |
lit = "syntax: expected value for macro argument"; |
break; |
break; |
case (ERR_SYNTAX_ARGBAD): |
case (ERR_SYNTAX_ARGBAD): |
lit = "syntax: invalid value for macro argument"; |
lit = "syntax: invalid value(s) for macro argument"; |
break; |
break; |
|
case (ERR_SYNTAX_ARGMISS): |
|
lit = "syntax: missing required argument(s) for macro"; |
|
break; |
case (ERR_SYNTAX_ARGMANY): |
case (ERR_SYNTAX_ARGMANY): |
lit = "syntax: too many values for macro argument"; |
lit = "syntax: too many values for macro argument"; |
break; |
break; |
|
case (ERR_SYNTAX_CHILDBAD): |
|
lit = "syntax: invalid child for parent macro"; |
|
break; |
case (ERR_SYNTAX_CHILDHEAD): |
case (ERR_SYNTAX_CHILDHEAD): |
lit = "syntax: expected only block-header section"; |
lit = "syntax: expected only block-header section"; |
break; |
break; |
Line 425 msg_err(void *arg, int line, int col, enum mdoc_err ty |
|
Line 436 msg_err(void *arg, int line, int col, enum mdoc_err ty |
|
/* NOTREACHED */ |
/* NOTREACHED */ |
} |
} |
|
|
(void)fprintf(stderr, "%s:%d: error: %s", p->name, p->lnn, lit); |
(void)fprintf(stderr, "%s:%d: error: %s (column %d)\n", |
|
p->name, line, lit, col); |
if (p->dbg < 1) { |
|
(void)fprintf(stderr, " (column %d)\n", col); |
|
return(0); |
|
} |
|
|
|
(void)fprintf(stderr, "\nFrom: %s\n ", p->line); |
|
for (i = 0; i < col; i++) |
|
(void)fprintf(stderr, " "); |
|
(void)fprintf(stderr, "^\n"); |
|
|
|
return(0); |
return(0); |
} |
} |
|
|
|
|
msg_msg(void *arg, int line, int col, const char *msg) |
msg_msg(void *arg, int line, int col, const char *msg) |
{ |
{ |
struct md_parse *p; |
struct md_parse *p; |
int i; |
|
|
|
p = (struct md_parse *)arg; |
p = (struct md_parse *)arg; |
|
|
if (p->dbg < 2) |
if (p->dbg < 2) |
return; |
return; |
|
|
(void)printf("%s:%d: %s", p->name, line, msg); |
(void)printf("%s:%d: %s (column %d)\n", |
|
p->name, line, msg, col); |
if (p->dbg < 3) { |
|
(void)printf(" (column %d)\n", col); |
|
return; |
|
} |
|
|
|
(void)printf("\nFrom: %s\n ", p->line); |
|
for (i = 0; i < col; i++) |
|
(void)printf(" "); |
|
(void)printf("^\n"); |
|
} |
} |
|
|
|
|
Line 471 msg_warn(void *arg, int line, int col, enum mdoc_warn |
|
Line 462 msg_warn(void *arg, int line, int col, enum mdoc_warn |
|
{ |
{ |
char *lit; |
char *lit; |
struct md_parse *p; |
struct md_parse *p; |
int i; |
|
extern char *__progname; |
extern char *__progname; |
|
|
p = (struct md_parse *)arg; |
p = (struct md_parse *)arg; |
Line 500 msg_warn(void *arg, int line, int col, enum mdoc_warn |
|
Line 490 msg_warn(void *arg, int line, int col, enum mdoc_warn |
|
case (WARN_SEC_OO): |
case (WARN_SEC_OO): |
lit = "section is out of conventional order"; |
lit = "section is out of conventional order"; |
break; |
break; |
|
case (WARN_SEC_REP): |
|
lit = "section repeated"; |
|
break; |
case (WARN_ARGS_GE1): |
case (WARN_ARGS_GE1): |
lit = "macro suggests one or more arguments"; |
lit = "macro suggests one or more arguments"; |
break; |
break; |
Line 524 msg_warn(void *arg, int line, int col, enum mdoc_warn |
|
Line 517 msg_warn(void *arg, int line, int col, enum mdoc_warn |
|
} |
} |
|
|
|
|
(void)fprintf(stderr, "%s:%d: warning: %s", p->name, line, lit); |
(void)fprintf(stderr, "%s:%d: warning: %s (column %d)\n", |
|
p->name, line, lit, col); |
if (p->dbg >= 1) { |
|
(void)fprintf(stderr, "\nFrom: %s\n ", p->line); |
|
for (i = 0; i < col; i++) |
|
(void)fprintf(stderr, " "); |
|
(void)fprintf(stderr, "^\n"); |
|
} else |
|
(void)fprintf(stderr, " (column %d)\n", col); |
|
|
|
if (p->warn & MD_WARN_ERR) { |
if (p->warn & MD_WARN_ERR) { |
(void)fprintf(stderr, "%s: considering warnings as " |
(void)fprintf(stderr, "%s: considering warnings as " |