* docbook2mdoc: Delete the isparent() validation function.
@ 2019-03-22 15:38 schwarze
0 siblings, 0 replies; only message in thread
From: schwarze @ 2019-03-22 15:38 UTC (permalink / raw)
To: source
Log Message:
-----------
Delete the isparent() validation function.
The DocBook language is totally ill-designed, a gigantic accretion
of arbitrary elements without any kind of discernible design or
cohesion, with an absurdly large number of arbitrary and pointless
rules of what is allowed to nest inside which other elements.
So attempting to validate DocBook input against the totally crazy
specification makes no sense whatsoever, and even less so because
we are certainly not encouraging anybody to write new or maintain
existing DocBook documents. The whole point of having a DocBook
parser is to be able to parse legacy documents and convert them to
a sane language, so it is utterly irrelevant whether the input is
considered valid or invalid by some idiotic standard.
This deletion allows substantial simplification of the code
and will massively speed up development in the future.
Kristaps@ says that i can move forward with development without
asking for individual OKs.
Modified Files:
--------------
docbook2mdoc:
README
docbook2mdoc.c
extern.h
rules.c
Revision Data
-------------
Index: docbook2mdoc.c
===================================================================
RCS file: /home/cvs/mdocml/docbook2mdoc/docbook2mdoc.c,v
retrieving revision 1.47
retrieving revision 1.48
diff -Ldocbook2mdoc.c -Ldocbook2mdoc.c -u -p -r1.47 -r1.48
--- docbook2mdoc.c
+++ docbook2mdoc.c
@@ -327,20 +327,8 @@ xml_elem_start(void *arg, const XML_Char
XML_GetCurrentColumnNumber(ps->xml));
ps->stop = 1;
return;
- } else if (NODE_ROOT == ps->node && NODE_REFENTRY != node) {
+ } else if (NODE_ROOT == ps->node && NODE_REFENTRY != node)
return;
- } else if ( ! isparent(node, ps->node)) {
- fprintf(stderr, "%s:%zu:%zu: bad parent \"%s\" "
- "of node \"%s\"\n",
- ps->fname, XML_GetCurrentLineNumber(ps->xml),
- XML_GetCurrentColumnNumber(ps->xml),
- NULL == nodes[ps->node].name ?
- "(none)" : nodes[ps->node].name,
- NULL == nodes[node].name ?
- "(none)" : nodes[node].name);
- ps->stop = 1;
- return;
- }
if (NODE_INLINEEQUATION == node)
ps->flags |= PARSE_EQN;
Index: rules.c
===================================================================
RCS file: /home/cvs/mdocml/docbook2mdoc/rules.c,v
retrieving revision 1.25
retrieving revision 1.26
diff -Lrules.c -Lrules.c -u -p -r1.25 -r1.26
--- rules.c
+++ rules.c
@@ -56,1334 +56,3 @@ isattrval(enum attrkey key, enum attrval
abort();
return(0);
}
-
-/*
- * Look up whether "parent" is a valid parent for "node".
- * This is sucked directly from the DocBook specification: look at the
- * "children" and "parent" sections of each node.
- */
-int
-isparent(enum nodeid node, enum nodeid parent)
-{
-
- switch (node) {
- case (NODE_ROOT):
- return(0);
- case (NODE_ACRONYM):
- switch (parent) {
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_ANCHOR):
- /* We'll ignore this. */
- return(1);
- case (NODE_APPLICATION):
- switch (parent) {
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_LINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFCLASS):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- case (NODE_ULINK):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_ARG):
- switch (parent) {
- case (NODE_ARG):
- case (NODE_CMDSYNOPSIS):
- case (NODE_GROUP):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_CAUTION):
- switch (parent) {
- case (NODE_CAUTION):
- case (NODE_ENTRY):
- case (NODE_ITEMIZEDLIST):
- case (NODE_LISTITEM):
- case (NODE_NOTE):
- case (NODE_ORDEREDLIST):
- case (NODE_PARA):
- case (NODE_REFSECT1):
- case (NODE_REFSECT2):
- case (NODE_REFSECT3):
- case (NODE_REFSECTION):
- case (NODE_REFSYNOPSISDIV):
- case (NODE_TIP):
- case (NODE_VARIABLELIST):
- case (NODE_WARNING):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_CITEREFENTRY):
- switch (parent) {
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_LINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- case (NODE_ULINK):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_CMDSYNOPSIS):
- switch (parent) {
- case (NODE_CAUTION):
- case (NODE_ENTRY):
- case (NODE_ITEMIZEDLIST):
- case (NODE_LISTITEM):
- case (NODE_ORDEREDLIST):
- case (NODE_NOTE):
- case (NODE_PARA):
- case (NODE_REFSECT1):
- case (NODE_REFSECT2):
- case (NODE_REFSECT3):
- case (NODE_REFSECTION):
- case (NODE_REFSYNOPSISDIV):
- case (NODE_TIP):
- case (NODE_VARIABLELIST):
- case (NODE_WARNING):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_CODE):
- switch (parent) {
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_LINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- case (NODE_ULINK):
- case (NODE_USERINPUT):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_COLSPEC):
- switch (parent) {
- case (NODE_TFOOT):
- case (NODE_THEAD):
- case (NODE_TGROUP):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_COMMAND):
- switch (parent) {
- case (NODE_CMDSYNOPSIS):
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_LINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- case (NODE_ULINK):
- case (NODE_USERINPUT):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_CONSTANT):
- switch (parent) {
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_LINK):
- case (NODE_ULINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- case (NODE_USERINPUT):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_COPYRIGHT):
- switch (parent) {
- case (NODE_INFO):
- case (NODE_REFENTRYINFO):
- case (NODE_REFMETAINFO):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_DATE):
- switch (parent) {
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_INFO):
- case (NODE_LINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYINFO):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TITLE):
- case (NODE_ULINK):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_EMPHASIS):
- switch (parent) {
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_LINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- case (NODE_ULINK):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_ENTRY):
- return(NODE_ROW == parent);
- case (NODE_ENVAR):
- switch (parent) {
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_LINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- case (NODE_ULINK):
- case (NODE_USERINPUT):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_FIELDSYNOPSIS):
- switch (parent) {
- case (NODE_CAUTION):
- case (NODE_ENTRY):
- case (NODE_ITEMIZEDLIST):
- case (NODE_LISTITEM):
- case (NODE_NOTE):
- case (NODE_ORDEREDLIST):
- case (NODE_PARA):
- case (NODE_REFSECT1):
- case (NODE_REFSECT2):
- case (NODE_REFSECT3):
- case (NODE_REFSECTION):
- case (NODE_REFSYNOPSISDIV):
- case (NODE_TIP):
- case (NODE_VARIABLELIST):
- case (NODE_WARNING):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_FILENAME):
- switch (parent) {
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_LINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- case (NODE_ULINK):
- case (NODE_USERINPUT):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_FUNCDEF):
- return(NODE_FUNCPROTOTYPE == parent);
- case (NODE_FUNCPROTOTYPE):
- return(NODE_FUNCSYNOPSIS == parent);
- case (NODE_FUNCSYNOPSIS):
- switch (parent) {
- case (NODE_CAUTION):
- case (NODE_ENTRY):
- case (NODE_ITEMIZEDLIST):
- case (NODE_LISTITEM):
- case (NODE_ORDEREDLIST):
- case (NODE_NOTE):
- case (NODE_PARA):
- case (NODE_REFSECT1):
- case (NODE_REFSECT2):
- case (NODE_REFSECT3):
- case (NODE_REFSECTION):
- case (NODE_REFSYNOPSISDIV):
- case (NODE_TIP):
- case (NODE_VARIABLELIST):
- case (NODE_WARNING):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_FUNCSYNOPSISINFO):
- return(NODE_FUNCSYNOPSIS == parent);
- case (NODE_FUNCTION):
- switch (parent) {
- case (NODE_CODE):
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FUNCDEF):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_LINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- case (NODE_ULINK):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_GROUP):
- switch (parent) {
- case (NODE_ARG):
- case (NODE_CMDSYNOPSIS):
- case (NODE_GROUP):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_HOLDER):
- switch (parent) {
- case (NODE_COPYRIGHT):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_INFO):
- switch (parent) {
- case (NODE_CAUTION):
- case (NODE_CMDSYNOPSIS):
- case (NODE_FUNCSYNOPSIS):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_INFORMALTABLE):
- case (NODE_ITEMIZEDLIST):
- case (NODE_NOTE):
- case (NODE_ORDEREDLIST):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_REFENTRY):
- case (NODE_REFSECT1):
- case (NODE_REFSECT2):
- case (NODE_REFSECT3):
- case (NODE_REFSECTION):
- case (NODE_REFSYNOPSISDIV):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TABLE):
- case (NODE_VARIABLELIST):
- case (NODE_WARNING):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_INFORMALEQUATION):
- switch (parent) {
- case (NODE_CAUTION):
- case (NODE_ENTRY):
- case (NODE_ITEMIZEDLIST):
- case (NODE_LISTITEM):
- case (NODE_NOTE):
- case (NODE_ORDEREDLIST):
- case (NODE_PARA):
- case (NODE_REFSECT1):
- case (NODE_REFSECT2):
- case (NODE_REFSECT3):
- case (NODE_REFSECTION):
- case (NODE_REFSYNOPSISDIV):
- case (NODE_VARIABLELIST):
- case (NODE_WARNING):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_INLINEEQUATION):
- switch (parent) {
- case (NODE_APPLICATION):
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_LINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFENTRYTITLE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- case (NODE_ULINK):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_ITEMIZEDLIST):
- switch (parent) {
- case (NODE_CAUTION):
- case (NODE_ENTRY):
- case (NODE_ITEMIZEDLIST):
- case (NODE_LISTITEM):
- case (NODE_NOTE):
- case (NODE_ORDEREDLIST):
- case (NODE_PARA):
- case (NODE_REFSECT1):
- case (NODE_REFSECT2):
- case (NODE_REFSECT3):
- case (NODE_REFSECTION):
- case (NODE_REFSYNOPSISDIV):
- case (NODE_TIP):
- case (NODE_VARIABLELIST):
- case (NODE_WARNING):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_LINK):
- case (NODE_ULINK): /* Synonyms. */
- switch (parent) {
- case (NODE_ACRONYM):
- case (NODE_APPLICATION):
- case (NODE_ARG):
- case (NODE_CODE):
- case (NODE_COMMAND):
- case (NODE_CONSTANT):
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_ENVAR):
- case (NODE_FILENAME):
- case (NODE_FUNCDEF):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_FUNCTION):
- case (NODE_HOLDER):
- case (NODE_LINK):
- case (NODE_LITERAL):
- case (NODE_MANVOLNUM):
- case (NODE_MODIFIER):
- case (NODE_OPTION):
- case (NODE_PARA):
- case (NODE_PARAMDEF):
- case (NODE_PARAMETER):
- case (NODE_PROGRAMLISTING):
- case (NODE_PROMPT):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFMISCINFO):
- case (NODE_REFNAME):
- case (NODE_REPLACEABLE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TRADEMARK):
- case (NODE_TYPE):
- case (NODE_ULINK):
- case (NODE_USERINPUT):
- case (NODE_VARNAME):
- case (NODE_WORDASWORD):
- case (NODE_YEAR):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_LISTITEM):
- switch (parent) {
- case (NODE_ITEMIZEDLIST):
- case (NODE_ORDEREDLIST):
- case (NODE_VARLISTENTRY):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_LITERAL):
- switch (parent) {
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_LINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- case (NODE_ULINK):
- case (NODE_USERINPUT):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_MANVOLNUM):
- switch (parent) {
- case (NODE_CITEREFENTRY):
- case (NODE_REFMETA):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_MML_MATH):
- switch (parent) {
- case (NODE_INFORMALEQUATION):
- case (NODE_INLINEEQUATION):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_MML_MFENCED):
- case (NODE_MML_MFRAC):
- case (NODE_MML_MI):
- case (NODE_MML_MN):
- case (NODE_MML_MO):
- case (NODE_MML_MROW):
- case (NODE_MML_MSUB):
- case (NODE_MML_MSUP):
- switch (parent) {
- case (NODE_MML_MATH):
- case (NODE_MML_MFENCED):
- case (NODE_MML_MFRAC):
- case (NODE_MML_MI):
- case (NODE_MML_MN):
- case (NODE_MML_MO):
- case (NODE_MML_MROW):
- case (NODE_MML_MSUB):
- case (NODE_MML_MSUP):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_MODIFIER):
- switch (parent) {
- case (NODE_CODE):
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FIELDSYNOPSIS):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_LINK):
- case (NODE_ULINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_NOTE):
- switch (parent) {
- case (NODE_CAUTION):
- case (NODE_ENTRY):
- case (NODE_ITEMIZEDLIST):
- case (NODE_LISTITEM):
- case (NODE_NOTE):
- case (NODE_ORDEREDLIST):
- case (NODE_PARA):
- case (NODE_REFSECT1):
- case (NODE_REFSECT2):
- case (NODE_REFSECT3):
- case (NODE_REFSECTION):
- case (NODE_REFSYNOPSISDIV):
- case (NODE_TIP):
- case (NODE_VARIABLELIST):
- case (NODE_WARNING):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_OPTION):
- switch (parent) {
- case (NODE_ARG):
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_GROUP):
- case (NODE_LINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- case (NODE_ULINK):
- case (NODE_USERINPUT):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_ORDEREDLIST):
- switch (parent) {
- case (NODE_CAUTION):
- case (NODE_ENTRY):
- case (NODE_ITEMIZEDLIST):
- case (NODE_LISTITEM):
- case (NODE_ORDEREDLIST):
- case (NODE_NOTE):
- case (NODE_PARA):
- case (NODE_REFSECT1):
- case (NODE_REFSECT2):
- case (NODE_REFSECT3):
- case (NODE_REFSECTION):
- case (NODE_REFSYNOPSISDIV):
- case (NODE_TIP):
- case (NODE_VARIABLELIST):
- case (NODE_WARNING):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_PARA):
- switch (parent) {
- case (NODE_CAUTION):
- case (NODE_ENTRY):
- case (NODE_ITEMIZEDLIST):
- case (NODE_LISTITEM):
- case (NODE_NOTE):
- case (NODE_ORDEREDLIST):
- case (NODE_REFSECT1):
- case (NODE_REFSECT2):
- case (NODE_REFSECT3):
- case (NODE_REFSECTION):
- case (NODE_REFSYNOPSISDIV):
- case (NODE_TIP):
- case (NODE_VARIABLELIST):
- case (NODE_WARNING):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_PARAMDEF):
- return(NODE_FUNCPROTOTYPE == parent);
- case (NODE_PARAMETER):
- switch (parent) {
- case (NODE_CODE):
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_LINK):
- case (NODE_PARA):
- case (NODE_PARAMDEF):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- case (NODE_ULINK):
- case (NODE_USERINPUT):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_PROGRAMLISTING):
- switch (parent) {
- case (NODE_CAUTION):
- case (NODE_ENTRY):
- case (NODE_ITEMIZEDLIST):
- case (NODE_LISTITEM):
- case (NODE_ORDEREDLIST):
- case (NODE_NOTE):
- case (NODE_PARA):
- case (NODE_REFSECT1):
- case (NODE_REFSECT2):
- case (NODE_REFSECT3):
- case (NODE_REFSECTION):
- case (NODE_REFSYNOPSISDIV):
- case (NODE_TIP):
- case (NODE_VARIABLELIST):
- case (NODE_WARNING):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_PROMPT):
- switch (parent) {
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_LINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- case (NODE_ULINK):
- case (NODE_USERINPUT):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_QUOTE):
- switch (parent) {
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_LINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- case (NODE_ULINK):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_REFCLASS):
- return(parent == NODE_REFNAMEDIV);
- case (NODE_REFDESCRIPTOR):
- return(parent == NODE_REFNAMEDIV);
- case (NODE_REFENTRY):
- return(parent == NODE_ROOT);
- case (NODE_REFENTRYINFO):
- return(parent == NODE_REFENTRY);
- case (NODE_REFENTRYTITLE):
- switch (parent) {
- case (NODE_CITEREFENTRY):
- case (NODE_REFMETA):
- return(1);
- default:
- break;
- }
- case (NODE_REFMETA):
- return(parent == NODE_REFENTRY);
- case (NODE_REFMETAINFO):
- return(parent == NODE_REFMETA);
- case (NODE_REFMISCINFO):
- return(parent == NODE_REFMETA);
- case (NODE_REFNAME):
- return(parent == NODE_REFNAMEDIV);
- case (NODE_REFNAMEDIV):
- return(parent == NODE_REFENTRY);
- case (NODE_REFPURPOSE):
- return(parent == NODE_REFNAMEDIV);
- case (NODE_REFSECT1):
- return(parent == NODE_REFENTRY);
- case (NODE_REFSECT2):
- switch (parent) {
- case (NODE_REFSYNOPSISDIV):
- case (NODE_REFSECT1):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_REFSECT3):
- return(parent == NODE_REFSECT2);
- case (NODE_REFSECTION):
- switch (parent) {
- case (NODE_REFENTRY):
- case (NODE_REFSECTION):
- case (NODE_REFSYNOPSISDIV):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_REFSYNOPSISDIV):
- return(parent == NODE_REFENTRY);
- case (NODE_REPLACEABLE):
- switch (parent) {
- case (NODE_ACRONYM):
- case (NODE_APPLICATION):
- case (NODE_ARG):
- case (NODE_CODE):
- case (NODE_COMMAND):
- case (NODE_CONSTANT):
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_ENVAR):
- case (NODE_FILENAME):
- case (NODE_FUNCDEF):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_FUNCTION):
- case (NODE_GROUP):
- case (NODE_HOLDER):
- case (NODE_LINK):
- case (NODE_LITERAL):
- case (NODE_MANVOLNUM):
- case (NODE_MODIFIER):
- case (NODE_OPTION):
- case (NODE_PARA):
- case (NODE_PARAMDEF):
- case (NODE_PARAMETER):
- case (NODE_PROGRAMLISTING):
- case (NODE_PROMPT):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFMISCINFO):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_REPLACEABLE):
- case (NODE_SCREEN):
- case (NODE_SGMLTAG):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- case (NODE_TRADEMARK):
- case (NODE_TYPE):
- case (NODE_ULINK):
- case (NODE_USERINPUT):
- case (NODE_VARNAME):
- case (NODE_WORDASWORD):
- case (NODE_YEAR):
- default:
- return(1);
- }
- return(0);
- case (NODE_ROW):
- switch (parent) {
- case (NODE_TBODY):
- case (NODE_TFOOT):
- case (NODE_THEAD):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_SBR):
- switch (parent) {
- case (NODE_ARG):
- case (NODE_CMDSYNOPSIS):
- case (NODE_GROUP):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_SCREEN):
- switch (parent) {
- case (NODE_CAUTION):
- case (NODE_ENTRY):
- case (NODE_ITEMIZEDLIST):
- case (NODE_LISTITEM):
- case (NODE_ORDEREDLIST):
- case (NODE_NOTE):
- case (NODE_PARA):
- case (NODE_REFSECT1):
- case (NODE_REFSECT2):
- case (NODE_REFSECT3):
- case (NODE_REFSECTION):
- case (NODE_REFSYNOPSISDIV):
- case (NODE_TIP):
- case (NODE_VARIABLELIST):
- case (NODE_WARNING):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_SGMLTAG):
- switch (parent) {
- case (NODE_APPLICATION):
- case (NODE_CODE):
- case (NODE_COMMAND):
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FILENAME):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_FUNCTION):
- case (NODE_LINK):
- case (NODE_LITERAL):
- case (NODE_OPTION):
- case (NODE_PARA):
- case (NODE_PARAMETER):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- case (NODE_USERINPUT):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_STRUCTNAME):
- switch (parent) {
- case (NODE_CODE):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_FUNCTION):
- case (NODE_OPTION):
- case (NODE_PARA):
- case (NODE_PARAMETER):
- case (NODE_PROGRAMLISTING):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SYNOPSIS):
- case (NODE_TITLE):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_SYNOPSIS):
- switch (parent) {
- case (NODE_CAUTION):
- case (NODE_ENTRY):
- case (NODE_ITEMIZEDLIST):
- case (NODE_LISTITEM):
- case (NODE_ORDEREDLIST):
- case (NODE_NOTE):
- case (NODE_PARA):
- case (NODE_REFSYNOPSISDIV):
- case (NODE_REFSECT1):
- case (NODE_REFSECT2):
- case (NODE_REFSECT3):
- case (NODE_REFSECTION):
- case (NODE_TIP):
- case (NODE_WARNING):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_INFORMALTABLE):
- /* FALLTHROUGH */
- case (NODE_TABLE):
- switch (parent) {
- case (NODE_CAUTION):
- case (NODE_ENTRY):
- case (NODE_ITEMIZEDLIST):
- case (NODE_LISTITEM):
- case (NODE_ORDEREDLIST):
- case (NODE_NOTE):
- case (NODE_PARA):
- case (NODE_REFSECT1):
- case (NODE_REFSECT2):
- case (NODE_REFSECT3):
- case (NODE_REFSECTION):
- case (NODE_REFSYNOPSISDIV):
- case (NODE_TIP):
- case (NODE_VARIABLELIST):
- case (NODE_WARNING):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_TBODY):
- return(NODE_TGROUP == parent);
- case (NODE_TFOOT):
- return(NODE_TGROUP == parent);
- case (NODE_TGROUP):
- switch (parent) {
- case (NODE_INFORMALTABLE):
- case (NODE_TABLE):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_THEAD):
- return(NODE_TGROUP == parent);
- case (NODE_TITLE):
- switch (parent) {
- case (NODE_INFO):
- case (NODE_INFORMALTABLE):
- case (NODE_ITEMIZEDLIST):
- case (NODE_ORDEREDLIST):
- case (NODE_REFENTRYINFO):
- case (NODE_REFSECT1):
- case (NODE_REFSECT2):
- case (NODE_REFSECT3):
- case (NODE_REFSECTION):
- case (NODE_REFSYNOPSISDIV):
- case (NODE_TABLE):
- case (NODE_VARIABLELIST):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_TERM):
- return(NODE_VARLISTENTRY == parent);
- case (NODE_TEXT):
- return(1);
- case (NODE_TIP):
- switch (parent) {
- case (NODE_CAUTION):
- case (NODE_ENTRY):
- case (NODE_ITEMIZEDLIST):
- case (NODE_LISTITEM):
- case (NODE_NOTE):
- case (NODE_ORDEREDLIST):
- case (NODE_PARA):
- case (NODE_REFSECT1):
- case (NODE_REFSECT2):
- case (NODE_REFSECT3):
- case (NODE_REFSECTION):
- case (NODE_REFSYNOPSISDIV):
- case (NODE_TIP):
- case (NODE_VARIABLELIST):
- case (NODE_WARNING):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_TRADEMARK):
- switch (parent) {
- case (NODE_ACRONYM):
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_LINK):
- case (NODE_ULINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_TYPE):
- switch (parent) {
- case (NODE_CODE):
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FIELDSYNOPSIS):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_LINK):
- case (NODE_ULINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_USERINPUT):
- switch (parent) {
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_LINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- case (NODE_ULINK):
- case (NODE_USERINPUT):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_VARIABLELIST):
- switch (parent) {
- case (NODE_CAUTION):
- case (NODE_ENTRY):
- case (NODE_ITEMIZEDLIST):
- case (NODE_ORDEREDLIST):
- case (NODE_NOTE):
- case (NODE_PARA):
- case (NODE_REFSECT1):
- case (NODE_REFSECT2):
- case (NODE_REFSECT3):
- case (NODE_REFSECTION):
- case (NODE_REFSYNOPSISDIV):
- case (NODE_TIP):
- case (NODE_VARIABLELIST):
- case (NODE_WARNING):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_VARNAME):
- switch (parent) {
- case (NODE_CODE):
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FIELDSYNOPSIS):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_LINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- case (NODE_ULINK):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_VARLISTENTRY):
- return (NODE_VARIABLELIST == parent);
- case (NODE_WARNING):
- switch (parent) {
- case (NODE_CAUTION):
- case (NODE_ENTRY):
- case (NODE_ITEMIZEDLIST):
- case (NODE_LISTITEM):
- case (NODE_NOTE):
- case (NODE_ORDEREDLIST):
- case (NODE_PARA):
- case (NODE_REFSECT1):
- case (NODE_REFSECT2):
- case (NODE_REFSECT3):
- case (NODE_REFSECTION):
- case (NODE_REFSYNOPSISDIV):
- case (NODE_TIP):
- case (NODE_VARIABLELIST):
- case (NODE_WARNING):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_WORDASWORD):
- switch (parent) {
- case (NODE_EMPHASIS):
- case (NODE_ENTRY):
- case (NODE_FUNCSYNOPSISINFO):
- case (NODE_LINK):
- case (NODE_PARA):
- case (NODE_PROGRAMLISTING):
- case (NODE_QUOTE):
- case (NODE_REFDESCRIPTOR):
- case (NODE_REFENTRYTITLE):
- case (NODE_REFNAME):
- case (NODE_REFPURPOSE):
- case (NODE_SCREEN):
- case (NODE_SYNOPSIS):
- case (NODE_TERM):
- case (NODE_TITLE):
- case (NODE_ULINK):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE_YEAR):
- switch (parent) {
- case (NODE_COPYRIGHT):
- return(1);
- default:
- break;
- }
- return(0);
- case (NODE__MAX):
- break;
- }
-
- abort();
- return(0);
-}
-
Index: README
===================================================================
RCS file: /home/cvs/mdocml/docbook2mdoc/README,v
retrieving revision 1.2
retrieving revision 1.3
diff -LREADME -LREADME -u -p -r1.2 -r1.3
--- README
+++ README
@@ -14,25 +14,6 @@ For these, you will have to look at 4.5
Add the alpha-ordered node (NODE_FOO) to extern.h.
-Next, add rules.c isparent() rule. This is the hard part. First,
-create a top-level switch statement for NODE_FOO. Create a white-list
-of switch cases beneath that corresponding to each "These elements
-contain foo":
-
- switch (parent) {
- case (NODE_BAR):
- case (NODE_BAZ):
- return(1);
- default:
- break;
- }
- return(0);
-
-Next, go through the "The following elements occur in foo" and add a
-"case (NODE_FOO)" to each of those elements' switches.
-
-Now the hard work is finished!
-
Next, add the name and whether it admits text to docbook2mdoc.c's
"nodes" structure array.
Index: extern.h
===================================================================
RCS file: /home/cvs/mdocml/docbook2mdoc/extern.h,v
retrieving revision 1.25
retrieving revision 1.26
diff -Lextern.h -Lextern.h -u -p -r1.25 -r1.26
--- extern.h
+++ extern.h
@@ -136,7 +136,6 @@ __BEGIN_DECLS
int isattrkey(enum nodeid node, enum attrkey key);
int isattrval(enum attrkey key, enum attrval val);
-int isparent(enum nodeid node, enum nodeid parent);
__END_DECLS
--
To unsubscribe send an email to source+unsubscribe@mandoc.bsd.lv
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2019-03-22 15:38 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-22 15:38 docbook2mdoc: Delete the isparent() validation function schwarze
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).