- struct mdoc_node *n;
-
- if (SEC_PROLOGUE == mdoc->sec_lastn)
- return(mdoc_err(mdoc, tok, ppos, ERR_SEC_PROLOGUE));
-
- assert(1 == ppos);
-
- /* Token pre-processing. */
-
- switch (tok) {
- case (MDOC_D1):
- /* FALLTHROUGH */
- case (MDOC_Dl):
- /* These can't be nested in a display block. */
- assert(mdoc->last);
- for (n = mdoc->last->parent ; n; n = n->parent)
- if (MDOC_BLOCK != n->type)
- continue;
- else if (MDOC_Bd == n->data.block.tok)
- break;
- if (NULL == n)
- break;
- return(mdoc_err(mdoc, tok, ppos, ERR_SCOPE_NONEST));
- default:
- break;
- }
-
- /*
- * All line-scoped macros have a HEAD and optionally a BODY
- * section. We open our scope here; when we exit this function,
- * we'll rewind our scope appropriately.
- */
-
- mdoc_block_alloc(mdoc, ppos, tok, 0, NULL);
- mdoc_head_alloc(mdoc, ppos, tok, 0, NULL);