]> git.cameronkatri.com Git - mandoc.git/blobdiff - mdocml.c
Finished initial parse sequence.
[mandoc.git] / mdocml.c
index d872caa38e44a5d26e2f96bd530b5cec22da7f65..7ebd50a0149976835da02ec344c842fdd71d9c0f 100644 (file)
--- a/mdocml.c
+++ b/mdocml.c
@@ -1,4 +1,4 @@
-/* $Id: mdocml.c,v 1.26 2008/12/28 21:25:09 kristaps Exp $ */
+/* $Id: mdocml.c,v 1.34 2009/01/05 16:11:14 kristaps Exp $ */
 /*
  * Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -205,11 +205,12 @@ print_node(const struct mdoc_node *n, int indent)
        case (MDOC_HEAD):
                p = mdoc_macronames[n->data.head.tok];
                t = "block-head";
-               params = n->data.head.args;
-               sz = n->data.head.sz;
+               break;
+       case (MDOC_TAIL):
+               p = mdoc_macronames[n->data.tail.tok];
+               t = "block-tail";
                break;
        case (MDOC_ELEM):
-               assert(NULL == n->child);
                p = mdoc_macronames[n->data.elem.tok];
                t = "element";
                argv = n->data.elem.argv;
@@ -339,6 +340,9 @@ msg_err(void *arg, int tok, int col, enum mdoc_err type)
        case (ERR_SYNTAX_ARGFORM):
                fmt = "syntax: macro `%s' arguments malformed";
                break;
+       case (ERR_SYNTAX_NOPUNCT):
+               fmt = "syntax: macro `%s' doesn't understand punctuation";
+               break;
        case (ERR_SYNTAX_ARG):
                fmt = "syntax: unknown argument for macro `%s'";
                break;
@@ -364,9 +368,18 @@ msg_err(void *arg, int tok, int col, enum mdoc_err type)
        case (ERR_SEC_NPROLOGUE):
                fmt = "macro `%s' called outside of prologue";
                break;
+       case (ERR_ARGS_EQ0):
+               fmt = "macro `%s' expects zero arguments";
+               break;
+       case (ERR_ARGS_EQ1):
+               fmt = "macro `%s' expects one argument";
+               break;
        case (ERR_ARGS_GE1):
                fmt = "macro `%s' expects one or more arguments";
                break;
+       case (ERR_ARGS_LE2):
+               fmt = "macro `%s' expects two or fewer arguments";
+               break;
        case (ERR_ARGS_MANY):
                fmt = "macro `%s' has too many arguments";
                break;
@@ -388,6 +401,18 @@ msg_err(void *arg, int tok, int col, enum mdoc_err type)
        case (ERR_SYNTAX_ARGMANY):
                lit = "syntax: too many values for macro argument";
                break;
+       case (ERR_SYNTAX_CHILDHEAD):
+               lit = "syntax: expected only block-header section";
+               break;
+       case (ERR_SYNTAX_CHILDBODY):
+               lit = "syntax: expected only a block-body section";
+               break;
+       case (ERR_SYNTAX_EMPTYHEAD):
+               lit = "syntax: block-header section may not be empty";
+               break;
+       case (ERR_SYNTAX_EMPTYBODY):
+               lit = "syntax: block-body section may not be empty";
+               break;
        default:
                abort();
                /* NOTREACHED */
@@ -476,6 +501,9 @@ msg_warn(void *arg, int tok, int col, enum mdoc_warn type)
        case (WARN_SYNTAX_ARGLIKE):
                lit = "syntax: argument-like value";
                break;
+       case (WARN_SYNTAX_EMPTYBODY):
+               lit = "syntax: empty block-body section";
+               break;
        case (WARN_SEC_OO):
                lit = "section is out of conventional order";
                break;
@@ -488,9 +516,15 @@ msg_warn(void *arg, int tok, int col, enum mdoc_warn type)
        case (WARN_IGN_AFTER_BLK):
                fmt = "ignore: macro `%s' ignored after block macro";
                break;
+       case (WARN_IGN_OBSOLETE):
+               fmt = "ignore: macro `%s' is obsolete";
+               break;
        case (WARN_IGN_BEFORE_BLK):
                fmt = "ignore: macro before block macro `%s' ignored";
                break;
+       case (WARN_COMPAT_TROFF):
+               fmt = "compat: macro `%s' behaves differently in troff and nroff";
+               break;
        default:
                abort();
                /* NOTREACHED */