=================================================================== RCS file: /cvs/docbook2mdoc/Attic/rules.c,v retrieving revision 1.11 retrieving revision 1.26 diff -u -p -r1.11 -r1.26 --- docbook2mdoc/Attic/rules.c 2014/03/30 18:15:55 1.11 +++ docbook2mdoc/Attic/rules.c 2019/03/22 15:38:09 1.26 @@ -16,6 +16,9 @@ isattrkey(enum nodeid node, enum attrkey key) break; } return(0); + case (ATTRKEY_OPEN): + case (ATTRKEY_CLOSE): + return(node == NODE_MML_MFENCED); case (ATTRKEY_ID): /* Common to all. */ return(1); @@ -53,671 +56,3 @@ isattrval(enum attrkey key, enum attrval val) 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_FUNCSYNOPSISINFO): - case (NODE_PROGRAMLISTING): - 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_ARG): - switch (parent) { - case (NODE_ARG): - case (NODE_CMDSYNOPSIS): - case (NODE_GROUP): - return(1); - default: - break; - } - return(0); - case (NODE_CITEREFENTRY): - switch (parent) { - case (NODE_EMPHASIS): - case (NODE_FUNCSYNOPSISINFO): - case (NODE_LINK): - case (NODE_PARA): - case (NODE_PROGRAMLISTING): - 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_ITEMIZEDLIST): - case (NODE_LISTITEM): - case (NODE_ORDEREDLIST): - case (NODE_PARA): - case (NODE_REFSECT1): - case (NODE_REFSECT2): - case (NODE_REFSYNOPSISDIV): - case (NODE_VARIABLELIST): - return(1); - default: - break; - } - return(0); - case (NODE_CODE): - switch (parent) { - case (NODE_EMPHASIS): - case (NODE_FUNCSYNOPSISINFO): - case (NODE_LINK): - case (NODE_PARA): - case (NODE_PROGRAMLISTING): - 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_COMMAND): - switch (parent) { - case (NODE_CMDSYNOPSIS): - case (NODE_EMPHASIS): - case (NODE_FUNCSYNOPSISINFO): - case (NODE_LINK): - case (NODE_PARA): - case (NODE_PROGRAMLISTING): - 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_DATE): - switch (parent) { - case (NODE_EMPHASIS): - case (NODE_FUNCSYNOPSISINFO): - case (NODE_LINK): - case (NODE_PARA): - case (NODE_PROGRAMLISTING): - 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_FUNCSYNOPSISINFO): - case (NODE_LINK): - case (NODE_PARA): - case (NODE_PROGRAMLISTING): - 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_ENVAR): - switch (parent) { - case (NODE_EMPHASIS): - case (NODE_FUNCSYNOPSISINFO): - case (NODE_LINK): - case (NODE_PARA): - case (NODE_PROGRAMLISTING): - 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_FILENAME): - switch (parent) { - case (NODE_EMPHASIS): - case (NODE_FUNCSYNOPSISINFO): - case (NODE_LINK): - case (NODE_PARA): - case (NODE_PROGRAMLISTING): - 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_ITEMIZEDLIST): - case (NODE_LISTITEM): - case (NODE_ORDEREDLIST): - case (NODE_PARA): - case (NODE_REFSECT1): - case (NODE_REFSECT2): - case (NODE_REFSYNOPSISDIV): - case (NODE_VARIABLELIST): - 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_FUNCDEF): - case (NODE_FUNCSYNOPSISINFO): - case (NODE_LINK): - case (NODE_PARA): - case (NODE_PROGRAMLISTING): - 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_ITEMIZEDLIST): - switch (parent) { - case (NODE_ITEMIZEDLIST): - case (NODE_LISTITEM): - case (NODE_ORDEREDLIST): - case (NODE_REFSECT1): - case (NODE_REFSECT2): - case (NODE_REFSYNOPSISDIV): - case (NODE_VARIABLELIST): - 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_LINK): - case (NODE_ULINK): /* Synonyms. */ - switch (parent) { - case (NODE_ACRONYM): - case (NODE_ARG): - case (NODE_CODE): - case (NODE_COMMAND): - case (NODE_EMPHASIS): - case (NODE_ENVAR): - case (NODE_FILENAME): - case (NODE_FUNCDEF): - case (NODE_FUNCSYNOPSISINFO): - case (NODE_FUNCTION): - case (NODE_LINK): - case (NODE_LITERAL): - case (NODE_MANVOLNUM): - case (NODE_OPTION): - case (NODE_PARA): - case (NODE_PARAMDEF): - case (NODE_PARAMETER): - case (NODE_PROGRAMLISTING): - case (NODE_PROMPT): - 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_ULINK): - case (NODE_USERINPUT): - 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_FUNCSYNOPSISINFO): - case (NODE_LINK): - case (NODE_PARA): - case (NODE_PROGRAMLISTING): - 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_OPTION): - switch (parent) { - case (NODE_ARG): - case (NODE_EMPHASIS): - case (NODE_FUNCSYNOPSISINFO): - case (NODE_GROUP): - case (NODE_LINK): - case (NODE_PARA): - case (NODE_PROGRAMLISTING): - 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_ITEMIZEDLIST): - case (NODE_LISTITEM): - case (NODE_ORDEREDLIST): - case (NODE_PARA): - case (NODE_REFSECT1): - case (NODE_REFSECT2): - case (NODE_REFSYNOPSISDIV): - case (NODE_VARIABLELIST): - return(1); - default: - break; - } - return(0); - case (NODE_PARA): - switch (parent) { - case (NODE_ITEMIZEDLIST): - case (NODE_LISTITEM): - case (NODE_ORDEREDLIST): - case (NODE_REFSECT1): - case (NODE_REFSECT2): - case (NODE_REFSYNOPSISDIV): - case (NODE_VARIABLELIST): - return(1); - default: - break; - } - return(0); - case (NODE_PARAMDEF): - return(NODE_FUNCPROTOTYPE == parent); - case (NODE_PARAMETER): - switch (parent) { - case (NODE_CODE): - case (NODE_FUNCSYNOPSISINFO): - case (NODE_LINK): - case (NODE_PARA): - case (NODE_PARAMDEF): - case (NODE_PROGRAMLISTING): - 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_ITEMIZEDLIST): - case (NODE_LISTITEM): - case (NODE_ORDEREDLIST): - case (NODE_PARA): - case (NODE_REFSECT1): - case (NODE_REFSECT2): - case (NODE_REFSYNOPSISDIV): - case (NODE_VARIABLELIST): - return(1); - default: - break; - } - return(0); - case (NODE_PROMPT): - switch (parent) { - case (NODE_EMPHASIS): - case (NODE_FUNCSYNOPSISINFO): - case (NODE_LINK): - case (NODE_PARA): - case (NODE_PROGRAMLISTING): - 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_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_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_REFSYNOPSISDIV): - return(parent == NODE_REFENTRY); - case (NODE_REPLACEABLE): - switch (parent) { - case (NODE_ACRONYM): - case (NODE_ARG): - case (NODE_CODE): - case (NODE_COMMAND): - case (NODE_EMPHASIS): - case (NODE_ENVAR): - case (NODE_FILENAME): - case (NODE_FUNCDEF): - case (NODE_FUNCSYNOPSISINFO): - case (NODE_FUNCTION): - case (NODE_GROUP): - case (NODE_LINK): - case (NODE_LITERAL): - case (NODE_MANVOLNUM): - case (NODE_OPTION): - case (NODE_PARA): - case (NODE_PARAMDEF): - case (NODE_PARAMETER): - case (NODE_PROGRAMLISTING): - case (NODE_PROMPT): - case (NODE_REFDESCRIPTOR): - case (NODE_REFENTRYTITLE): - case (NODE_REFMISCINFO): - case (NODE_REFNAME): - case (NODE_REFPURPOSE): - case (NODE_REPLACEABLE): - case (NODE_SCREEN): - case (NODE_SYNOPSIS): - case (NODE_TERM): - case (NODE_TITLE): - case (NODE_ULINK): - case (NODE_USERINPUT): - default: - return(1); - } - 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_ITEMIZEDLIST): - case (NODE_LISTITEM): - case (NODE_ORDEREDLIST): - case (NODE_PARA): - case (NODE_REFSECT1): - case (NODE_REFSECT2): - case (NODE_REFSYNOPSISDIV): - case (NODE_VARIABLELIST): - 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_ITEMIZEDLIST): - case (NODE_LISTITEM): - case (NODE_ORDEREDLIST): - case (NODE_REFSYNOPSISDIV): - case (NODE_REFSECT1): - case (NODE_REFSECT2): - return(1); - default: - break; - } - return(0); - case (NODE_TITLE): - switch (parent) { - case (NODE_ITEMIZEDLIST): - case (NODE_ORDEREDLIST): - case (NODE_REFENTRYINFO): - case (NODE_REFSECT1): - case (NODE_REFSECT2): - case (NODE_REFSYNOPSISDIV): - case (NODE_VARIABLELIST): - return(1); - default: - break; - } - return(0); - case (NODE_TERM): - return(NODE_VARLISTENTRY == parent); - case (NODE_TEXT): - return(1); - case (NODE_USERINPUT): - switch (parent) { - case (NODE_EMPHASIS): - case (NODE_FUNCSYNOPSISINFO): - case (NODE_LINK): - case (NODE_PARA): - case (NODE_PROGRAMLISTING): - 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_ITEMIZEDLIST): - case (NODE_ORDEREDLIST): - case (NODE_PARA): - case (NODE_REFSECT1): - case (NODE_REFSECT2): - case (NODE_REFSYNOPSISDIV): - case (NODE_VARIABLELIST): - return(1); - default: - break; - } - return(0); - case (NODE_VARLISTENTRY): - return (NODE_VARIABLELIST == parent); - case (NODE__MAX): - break; - } - - abort(); - return(0); -} -