=================================================================== RCS file: /cvs/docbook2mdoc/Attic/rules.c,v retrieving revision 1.1 retrieving revision 1.14 diff -u -p -r1.1 -r1.14 --- docbook2mdoc/Attic/rules.c 2014/03/30 11:48:10 1.1 +++ docbook2mdoc/Attic/rules.c 2014/04/02 10:06:14 1.14 @@ -8,12 +8,26 @@ isattrkey(enum nodeid node, enum attrkey key) switch (key) { case (ATTRKEY_CHOICE): - return(node == NODE_ARG); + switch (node) { + case (NODE_ARG): + case (NODE_GROUP): + return(1); + default: + break; + } + return(0); case (ATTRKEY_ID): /* Common to all. */ return(1); case (ATTRKEY_REP): - return(node == NODE_ARG); + switch (node) { + case (NODE_ARG): + case (NODE_GROUP): + return(1); + default: + break; + } + return(0); default: break; } @@ -52,10 +66,54 @@ 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_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_APPLICATION): + switch (parent) { + case (NODE_EMPHASIS): + case (NODE_ENTRY): + case (NODE_FUNCSYNOPSISINFO): + case (NODE_LINK): + case (NODE_PARA): + case (NODE_PROGRAMLISTING): + 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; @@ -64,16 +122,20 @@ isparent(enum nodeid node, enum nodeid parent) 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_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; @@ -81,9 +143,13 @@ isparent(enum nodeid node, enum nodeid parent) return(0); case (NODE_CMDSYNOPSIS): switch (parent) { + case (NODE_ENTRY): + 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); @@ -94,16 +160,21 @@ isparent(enum nodeid node, enum nodeid parent) 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_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; @@ -113,48 +184,131 @@ isparent(enum nodeid node, enum nodeid parent) 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_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_ENTRY): + 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_ENTRY): 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_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_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_ENTRY): + 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_ENTRY): + 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); @@ -168,24 +322,124 @@ isparent(enum nodeid node, enum nodeid parent) 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_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_ENTRY): + 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_APPLICATION): + case (NODE_ARG): + case (NODE_CODE): + case (NODE_COMMAND): + case (NODE_EMPHASIS): + case (NODE_ENTRY): + 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): + case (NODE_VARNAME): + return(1); + default: + break; + } + return(0); case (NODE_LISTITEM): - return(NODE_VARLISTENTRY == parent); + 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_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): @@ -199,25 +453,51 @@ isparent(enum nodeid node, enum nodeid parent) 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_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_ENTRY): + 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_ENTRY): + case (NODE_ITEMIZEDLIST): case (NODE_LISTITEM): + case (NODE_ORDEREDLIST): case (NODE_REFSECT1): + case (NODE_REFSECT2): case (NODE_REFSYNOPSISDIV): case (NODE_VARIABLELIST): return(1); @@ -230,7 +510,9 @@ isparent(enum nodeid node, enum nodeid parent) case (NODE_PARAMETER): switch (parent) { case (NODE_CODE): + case (NODE_ENTRY): case (NODE_FUNCSYNOPSISINFO): + case (NODE_LINK): case (NODE_PARA): case (NODE_PARAMDEF): case (NODE_PROGRAMLISTING): @@ -238,9 +520,12 @@ isparent(enum nodeid node, enum nodeid parent) 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; @@ -248,21 +533,51 @@ isparent(enum nodeid node, enum nodeid parent) return(0); case (NODE_PROGRAMLISTING): switch (parent) { + case (NODE_ENTRY): + 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_ENTRY): + 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): @@ -283,36 +598,94 @@ isparent(enum nodeid node, enum nodeid parent) 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_APPLICATION): case (NODE_ARG): case (NODE_CODE): case (NODE_COMMAND): 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_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): + case (NODE_VARNAME): 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_ENTRY): + 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): @@ -335,18 +708,50 @@ isparent(enum nodeid node, enum nodeid parent) return(0); case (NODE_SYNOPSIS): switch (parent) { + case (NODE_ENTRY): + 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_TABLE): + switch (parent) { + case (NODE_ENTRY): + case (NODE_ITEMIZEDLIST): + case (NODE_LISTITEM): + case (NODE_ORDEREDLIST): + case (NODE_PARA): + case (NODE_REFSECT1): + case (NODE_REFSYNOPSISDIV): + case (NODE_VARIABLELIST): + return(1); + default: + break; + } + return(0); + case (NODE_TBODY): + return(NODE_TGROUP == parent); + case (NODE_TFOOT): + return(NODE_TGROUP == parent); + case (NODE_TGROUP): + return(NODE_TABLE == parent); + case (NODE_THEAD): + return(NODE_TGROUP == parent); 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_TABLE): case (NODE_VARIABLELIST): return(1); default: @@ -357,12 +762,62 @@ isparent(enum nodeid node, enum nodeid parent) return(NODE_VARLISTENTRY == parent); case (NODE_TEXT): return(1); + 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_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_ENTRY): + 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_VARNAME): + switch (parent) { + case (NODE_CODE): + case (NODE_EMPHASIS): + case (NODE_ENTRY): + 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;