]> git.cameronkatri.com Git - mandoc.git/blobdiff - mdocml.c
*** empty log message ***
[mandoc.git] / mdocml.c
index 57932a935c74ca126fc135a1ae61150d48c77f5c..5fd519907a6ebd6992ab0f2b650430936ea0726a 100644 (file)
--- a/mdocml.c
+++ b/mdocml.c
@@ -1,4 +1,4 @@
-/* $Id: mdocml.c,v 1.31 2009/01/01 20:40:16 kristaps Exp $ */
+/* $Id: mdocml.c,v 1.35 2009/01/05 17:57:08 kristaps Exp $ */
 /*
  * Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
  *
 /*
  * Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -206,8 +206,11 @@ print_node(const struct mdoc_node *n, int indent)
                p = mdoc_macronames[n->data.head.tok];
                t = "block-head";
                break;
                p = mdoc_macronames[n->data.head.tok];
                t = "block-head";
                break;
+       case (MDOC_TAIL):
+               p = mdoc_macronames[n->data.tail.tok];
+               t = "block-tail";
+               break;
        case (MDOC_ELEM):
        case (MDOC_ELEM):
-               assert(NULL == n->child);
                p = mdoc_macronames[n->data.elem.tok];
                t = "element";
                argv = n->data.elem.argv;
                p = mdoc_macronames[n->data.elem.tok];
                t = "element";
                argv = n->data.elem.argv;
@@ -325,6 +328,9 @@ msg_err(void *arg, int tok, int col, enum mdoc_err type)
        fmt = lit = NULL;
 
        switch (type) {
        fmt = lit = NULL;
 
        switch (type) {
+       case (ERR_SYNTAX_NOTEXT):
+               lit = "syntax: context-free text disallowed";
+               break;
        case (ERR_SYNTAX_QUOTE):
                lit = "syntax: disallowed argument quotation";
                break;
        case (ERR_SYNTAX_QUOTE):
                lit = "syntax: disallowed argument quotation";
                break;
@@ -354,7 +360,7 @@ msg_err(void *arg, int tok, int col, enum mdoc_err type)
                fmt = "scope: macro `%s' may not be nested in the current context";
                break;
        case (ERR_MACRO_NOTSUP):
                fmt = "scope: macro `%s' may not be nested in the current context";
                break;
        case (ERR_MACRO_NOTSUP):
-               fmt = "macro `%s' not supported";
+               lit = "macro not supported";
                break;
        case (ERR_MACRO_NOTCALL):
                fmt = "macro `%s' not callable";
                break;
        case (ERR_MACRO_NOTCALL):
                fmt = "macro `%s' not callable";
@@ -398,8 +404,17 @@ 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_ARGMANY):
                lit = "syntax: too many values for macro argument";
                break;
-       case (ERR_CHILD_HEAD):
-               lit = "scope context expects block-header child";
+       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();
                break;
        default:
                abort();
@@ -489,6 +504,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_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;
        case (WARN_SEC_OO):
                lit = "section is out of conventional order";
                break;