Annotation of docbook2mdoc/rules.c, Revision 1.16
1.1 kristaps 1: #include <stdlib.h>
2:
3: #include "extern.h"
4:
5: int
6: isattrkey(enum nodeid node, enum attrkey key)
7: {
8:
9: switch (key) {
10: case (ATTRKEY_CHOICE):
1.11 kristaps 11: switch (node) {
12: case (NODE_ARG):
13: case (NODE_GROUP):
14: return(1);
15: default:
16: break;
17: }
18: return(0);
1.1 kristaps 19: case (ATTRKEY_ID):
20: /* Common to all. */
21: return(1);
22: case (ATTRKEY_REP):
1.11 kristaps 23: switch (node) {
24: case (NODE_ARG):
25: case (NODE_GROUP):
26: return(1);
27: default:
28: break;
29: }
30: return(0);
1.1 kristaps 31: default:
32: break;
33: }
34: abort();
35: return(0);
36: }
37:
38: int
39: isattrval(enum attrkey key, enum attrval val)
40: {
41:
42: switch (val) {
43: case (ATTRVAL_OPT):
44: case (ATTRVAL_PLAIN):
45: case (ATTRVAL_REQ):
46: return(key == ATTRKEY_CHOICE);
47: case (ATTRVAL_REPEAT):
48: case (ATTRVAL_NOREPEAT):
49: return(key == ATTRKEY_REP);
50: default:
51: break;
52: }
53: abort();
54: return(0);
55: }
56:
57: /*
58: * Look up whether "parent" is a valid parent for "node".
59: * This is sucked directly from the DocBook specification: look at the
60: * "children" and "parent" sections of each node.
61: */
62: int
63: isparent(enum nodeid node, enum nodeid parent)
64: {
65:
66: switch (node) {
67: case (NODE_ROOT):
68: return(0);
1.8 kristaps 69: case (NODE_ACRONYM):
70: switch (parent) {
71: case (NODE_EMPHASIS):
1.12 kristaps 72: case (NODE_ENTRY):
1.8 kristaps 73: case (NODE_FUNCSYNOPSISINFO):
1.12 kristaps 74: case (NODE_PARA):
1.8 kristaps 75: case (NODE_PROGRAMLISTING):
1.15 kristaps 76: case (NODE_QUOTE):
1.8 kristaps 77: case (NODE_REFDESCRIPTOR):
78: case (NODE_REFENTRYTITLE):
79: case (NODE_REFNAME):
80: case (NODE_REFPURPOSE):
1.9 kristaps 81: case (NODE_SCREEN):
1.8 kristaps 82: case (NODE_SYNOPSIS):
83: case (NODE_TERM):
84: case (NODE_TITLE):
85: return(1);
86: default:
87: break;
88: }
89: return(0);
1.14 kristaps 90: case (NODE_APPLICATION):
91: switch (parent) {
92: case (NODE_EMPHASIS):
93: case (NODE_ENTRY):
94: case (NODE_FUNCSYNOPSISINFO):
95: case (NODE_LINK):
96: case (NODE_PARA):
97: case (NODE_PROGRAMLISTING):
1.15 kristaps 98: case (NODE_QUOTE):
1.14 kristaps 99: case (NODE_REFCLASS):
100: case (NODE_REFDESCRIPTOR):
101: case (NODE_REFENTRYTITLE):
102: case (NODE_REFNAME):
103: case (NODE_REFPURPOSE):
104: case (NODE_SCREEN):
105: case (NODE_SYNOPSIS):
106: case (NODE_TERM):
107: case (NODE_TITLE):
108: case (NODE_ULINK):
109: return(1);
110: default:
111: break;
112: }
113: return(0);
1.1 kristaps 114: case (NODE_ARG):
115: switch (parent) {
116: case (NODE_ARG):
117: case (NODE_CMDSYNOPSIS):
1.11 kristaps 118: case (NODE_GROUP):
1.1 kristaps 119: return(1);
120: default:
121: break;
122: }
123: return(0);
1.16 ! kristaps 124: case (NODE_CAUTION):
! 125: switch (parent) {
! 126: case (NODE_CAUTION):
! 127: case (NODE_ENTRY):
! 128: case (NODE_ITEMIZEDLIST):
! 129: case (NODE_LISTITEM):
! 130: case (NODE_NOTE):
! 131: case (NODE_ORDEREDLIST):
! 132: case (NODE_PARA):
! 133: case (NODE_REFSECT1):
! 134: case (NODE_REFSECT2):
! 135: case (NODE_REFSECT3):
! 136: case (NODE_REFSECTION):
! 137: case (NODE_REFSYNOPSISDIV):
! 138: case (NODE_TIP):
! 139: case (NODE_VARIABLELIST):
! 140: case (NODE_WARNING):
! 141: return(1);
! 142: default:
! 143: break;
! 144: }
! 145: return(0);
1.1 kristaps 146: case (NODE_CITEREFENTRY):
147: switch (parent) {
148: case (NODE_EMPHASIS):
1.12 kristaps 149: case (NODE_ENTRY):
1.1 kristaps 150: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 151: case (NODE_LINK):
1.1 kristaps 152: case (NODE_PARA):
153: case (NODE_PROGRAMLISTING):
1.15 kristaps 154: case (NODE_QUOTE):
1.1 kristaps 155: case (NODE_REFDESCRIPTOR):
156: case (NODE_REFENTRYTITLE):
157: case (NODE_REFNAME):
158: case (NODE_REFPURPOSE):
1.9 kristaps 159: case (NODE_SCREEN):
1.1 kristaps 160: case (NODE_SYNOPSIS):
161: case (NODE_TERM):
162: case (NODE_TITLE):
1.2 kristaps 163: case (NODE_ULINK):
1.1 kristaps 164: return(1);
165: default:
166: break;
167: }
168: return(0);
169: case (NODE_CMDSYNOPSIS):
170: switch (parent) {
1.16 ! kristaps 171: case (NODE_CAUTION):
1.12 kristaps 172: case (NODE_ENTRY):
1.4 kristaps 173: case (NODE_ITEMIZEDLIST):
1.1 kristaps 174: case (NODE_LISTITEM):
1.8 kristaps 175: case (NODE_ORDEREDLIST):
1.16 ! kristaps 176: case (NODE_NOTE):
1.1 kristaps 177: case (NODE_PARA):
178: case (NODE_REFSECT1):
1.7 kristaps 179: case (NODE_REFSECT2):
1.16 ! kristaps 180: case (NODE_REFSECT3):
! 181: case (NODE_REFSECTION):
1.1 kristaps 182: case (NODE_REFSYNOPSISDIV):
1.16 ! kristaps 183: case (NODE_TIP):
1.1 kristaps 184: case (NODE_VARIABLELIST):
1.16 ! kristaps 185: case (NODE_WARNING):
1.1 kristaps 186: return(1);
187: default:
188: break;
189: }
190: return(0);
191: case (NODE_CODE):
192: switch (parent) {
193: case (NODE_EMPHASIS):
1.12 kristaps 194: case (NODE_ENTRY):
1.1 kristaps 195: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 196: case (NODE_LINK):
1.1 kristaps 197: case (NODE_PARA):
198: case (NODE_PROGRAMLISTING):
1.15 kristaps 199: case (NODE_QUOTE):
1.1 kristaps 200: case (NODE_REFDESCRIPTOR):
201: case (NODE_REFENTRYTITLE):
202: case (NODE_REFNAME):
203: case (NODE_REFPURPOSE):
1.9 kristaps 204: case (NODE_SCREEN):
1.1 kristaps 205: case (NODE_SYNOPSIS):
206: case (NODE_TERM):
207: case (NODE_TITLE):
1.2 kristaps 208: case (NODE_ULINK):
1.10 kristaps 209: case (NODE_USERINPUT):
1.1 kristaps 210: return(1);
211: default:
212: break;
213: }
214: return(0);
215: case (NODE_COMMAND):
216: switch (parent) {
217: case (NODE_CMDSYNOPSIS):
218: case (NODE_EMPHASIS):
1.12 kristaps 219: case (NODE_ENTRY):
1.1 kristaps 220: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 221: case (NODE_LINK):
1.1 kristaps 222: case (NODE_PARA):
223: case (NODE_PROGRAMLISTING):
1.15 kristaps 224: case (NODE_QUOTE):
1.1 kristaps 225: case (NODE_REFDESCRIPTOR):
226: case (NODE_REFENTRYTITLE):
227: case (NODE_REFNAME):
228: case (NODE_REFPURPOSE):
1.9 kristaps 229: case (NODE_SCREEN):
1.1 kristaps 230: case (NODE_SYNOPSIS):
231: case (NODE_TERM):
232: case (NODE_TITLE):
1.2 kristaps 233: case (NODE_ULINK):
1.10 kristaps 234: case (NODE_USERINPUT):
1.1 kristaps 235: return(1);
236: default:
237: break;
238: }
239: return(0);
1.3 kristaps 240: case (NODE_DATE):
241: switch (parent) {
242: case (NODE_EMPHASIS):
1.12 kristaps 243: case (NODE_ENTRY):
1.3 kristaps 244: case (NODE_FUNCSYNOPSISINFO):
245: case (NODE_LINK):
246: case (NODE_PARA):
247: case (NODE_PROGRAMLISTING):
1.15 kristaps 248: case (NODE_QUOTE):
1.3 kristaps 249: case (NODE_REFDESCRIPTOR):
250: case (NODE_REFENTRYINFO):
251: case (NODE_REFENTRYTITLE):
252: case (NODE_REFNAME):
253: case (NODE_REFPURPOSE):
1.9 kristaps 254: case (NODE_SCREEN):
1.3 kristaps 255: case (NODE_SYNOPSIS):
256: case (NODE_TITLE):
257: case (NODE_ULINK):
258: return(1);
259: default:
260: break;
261: }
262: return(0);
1.1 kristaps 263: case (NODE_EMPHASIS):
264: switch (parent) {
265: case (NODE_EMPHASIS):
1.12 kristaps 266: case (NODE_ENTRY):
1.1 kristaps 267: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 268: case (NODE_LINK):
1.1 kristaps 269: case (NODE_PARA):
270: case (NODE_PROGRAMLISTING):
1.15 kristaps 271: case (NODE_QUOTE):
1.1 kristaps 272: case (NODE_REFDESCRIPTOR):
273: case (NODE_REFENTRYTITLE):
274: case (NODE_REFNAME):
275: case (NODE_REFPURPOSE):
1.9 kristaps 276: case (NODE_SCREEN):
1.1 kristaps 277: case (NODE_SYNOPSIS):
278: case (NODE_TERM):
279: case (NODE_TITLE):
1.2 kristaps 280: case (NODE_ULINK):
1.1 kristaps 281: return(1);
282: default:
283: break;
284: }
285: return(0);
1.12 kristaps 286: case (NODE_ENTRY):
287: return(NODE_ROW == parent);
1.8 kristaps 288: case (NODE_ENVAR):
289: switch (parent) {
290: case (NODE_EMPHASIS):
1.12 kristaps 291: case (NODE_ENTRY):
1.8 kristaps 292: case (NODE_FUNCSYNOPSISINFO):
293: case (NODE_LINK):
294: case (NODE_PARA):
295: case (NODE_PROGRAMLISTING):
1.15 kristaps 296: case (NODE_QUOTE):
1.8 kristaps 297: case (NODE_REFDESCRIPTOR):
298: case (NODE_REFENTRYTITLE):
299: case (NODE_REFNAME):
300: case (NODE_REFPURPOSE):
1.9 kristaps 301: case (NODE_SCREEN):
1.8 kristaps 302: case (NODE_SYNOPSIS):
303: case (NODE_TERM):
304: case (NODE_TITLE):
305: case (NODE_ULINK):
1.10 kristaps 306: case (NODE_USERINPUT):
1.8 kristaps 307: return(1);
308: default:
309: break;
310: }
311: return(0);
1.5 kristaps 312: case (NODE_FILENAME):
313: switch (parent) {
314: case (NODE_EMPHASIS):
1.12 kristaps 315: case (NODE_ENTRY):
1.5 kristaps 316: case (NODE_FUNCSYNOPSISINFO):
317: case (NODE_LINK):
318: case (NODE_PARA):
319: case (NODE_PROGRAMLISTING):
1.15 kristaps 320: case (NODE_QUOTE):
1.5 kristaps 321: case (NODE_REFDESCRIPTOR):
322: case (NODE_REFENTRYTITLE):
323: case (NODE_REFNAME):
324: case (NODE_REFPURPOSE):
1.9 kristaps 325: case (NODE_SCREEN):
1.5 kristaps 326: case (NODE_SYNOPSIS):
327: case (NODE_TERM):
328: case (NODE_TITLE):
329: case (NODE_ULINK):
1.10 kristaps 330: case (NODE_USERINPUT):
1.5 kristaps 331: return(1);
332: default:
333: break;
334: }
335: return(0);
1.1 kristaps 336: case (NODE_FUNCDEF):
337: return(NODE_FUNCPROTOTYPE == parent);
338: case (NODE_FUNCPROTOTYPE):
339: return(NODE_FUNCSYNOPSIS == parent);
340: case (NODE_FUNCSYNOPSIS):
341: switch (parent) {
1.16 ! kristaps 342: case (NODE_CAUTION):
1.12 kristaps 343: case (NODE_ENTRY):
1.4 kristaps 344: case (NODE_ITEMIZEDLIST):
1.1 kristaps 345: case (NODE_LISTITEM):
1.8 kristaps 346: case (NODE_ORDEREDLIST):
1.16 ! kristaps 347: case (NODE_NOTE):
1.1 kristaps 348: case (NODE_PARA):
349: case (NODE_REFSECT1):
1.7 kristaps 350: case (NODE_REFSECT2):
1.16 ! kristaps 351: case (NODE_REFSECT3):
! 352: case (NODE_REFSECTION):
1.1 kristaps 353: case (NODE_REFSYNOPSISDIV):
1.16 ! kristaps 354: case (NODE_TIP):
1.1 kristaps 355: case (NODE_VARIABLELIST):
1.16 ! kristaps 356: case (NODE_WARNING):
1.1 kristaps 357: return(1);
358: default:
359: break;
360: }
361: return(0);
362: case (NODE_FUNCSYNOPSISINFO):
363: return(NODE_FUNCSYNOPSIS == parent);
364: case (NODE_FUNCTION):
365: switch (parent) {
366: case (NODE_CODE):
367: case (NODE_EMPHASIS):
1.12 kristaps 368: case (NODE_ENTRY):
1.1 kristaps 369: case (NODE_FUNCDEF):
370: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 371: case (NODE_LINK):
1.1 kristaps 372: case (NODE_PARA):
373: case (NODE_PROGRAMLISTING):
1.15 kristaps 374: case (NODE_QUOTE):
1.1 kristaps 375: case (NODE_REFDESCRIPTOR):
376: case (NODE_REFENTRYTITLE):
377: case (NODE_REFNAME):
378: case (NODE_REFPURPOSE):
1.9 kristaps 379: case (NODE_SCREEN):
1.1 kristaps 380: case (NODE_SYNOPSIS):
381: case (NODE_TERM):
382: case (NODE_TITLE):
1.2 kristaps 383: case (NODE_ULINK):
384: return(1);
385: default:
386: break;
387: }
388: return(0);
1.4 kristaps 389: case (NODE_ITEMIZEDLIST):
390: switch (parent) {
1.16 ! kristaps 391: case (NODE_CAUTION):
1.12 kristaps 392: case (NODE_ENTRY):
1.4 kristaps 393: case (NODE_ITEMIZEDLIST):
394: case (NODE_LISTITEM):
1.16 ! kristaps 395: case (NODE_NOTE):
1.8 kristaps 396: case (NODE_ORDEREDLIST):
1.16 ! kristaps 397: case (NODE_PARA):
1.4 kristaps 398: case (NODE_REFSECT1):
1.7 kristaps 399: case (NODE_REFSECT2):
1.16 ! kristaps 400: case (NODE_REFSECT3):
! 401: case (NODE_REFSECTION):
1.4 kristaps 402: case (NODE_REFSYNOPSISDIV):
1.16 ! kristaps 403: case (NODE_TIP):
1.4 kristaps 404: case (NODE_VARIABLELIST):
1.16 ! kristaps 405: case (NODE_WARNING):
1.4 kristaps 406: return(1);
407: default:
408: break;
409: }
410: return(0);
1.11 kristaps 411: case (NODE_GROUP):
412: switch (parent) {
413: case (NODE_ARG):
414: case (NODE_CMDSYNOPSIS):
415: case (NODE_GROUP):
416: return(1);
417: default:
418: break;
419: }
420: return(0);
1.2 kristaps 421: case (NODE_LINK):
1.4 kristaps 422: case (NODE_ULINK): /* Synonyms. */
1.2 kristaps 423: switch (parent) {
1.8 kristaps 424: case (NODE_ACRONYM):
1.14 kristaps 425: case (NODE_APPLICATION):
1.2 kristaps 426: case (NODE_ARG):
427: case (NODE_CODE):
428: case (NODE_COMMAND):
429: case (NODE_EMPHASIS):
1.12 kristaps 430: case (NODE_ENTRY):
1.8 kristaps 431: case (NODE_ENVAR):
1.5 kristaps 432: case (NODE_FILENAME):
1.2 kristaps 433: case (NODE_FUNCDEF):
434: case (NODE_FUNCSYNOPSISINFO):
435: case (NODE_FUNCTION):
436: case (NODE_LINK):
1.6 kristaps 437: case (NODE_LITERAL):
1.2 kristaps 438: case (NODE_MANVOLNUM):
439: case (NODE_OPTION):
440: case (NODE_PARA):
441: case (NODE_PARAMDEF):
442: case (NODE_PARAMETER):
443: case (NODE_PROGRAMLISTING):
1.9 kristaps 444: case (NODE_PROMPT):
1.15 kristaps 445: case (NODE_QUOTE):
1.2 kristaps 446: case (NODE_REFDESCRIPTOR):
447: case (NODE_REFENTRYTITLE):
448: case (NODE_REFMISCINFO):
449: case (NODE_REFNAME):
450: case (NODE_REPLACEABLE):
1.9 kristaps 451: case (NODE_SCREEN):
1.2 kristaps 452: case (NODE_SYNOPSIS):
453: case (NODE_TERM):
454: case (NODE_ULINK):
1.10 kristaps 455: case (NODE_USERINPUT):
1.13 kristaps 456: case (NODE_VARNAME):
1.1 kristaps 457: return(1);
458: default:
459: break;
460: }
461: return(0);
462: case (NODE_LISTITEM):
1.4 kristaps 463: switch (parent) {
464: case (NODE_ITEMIZEDLIST):
1.8 kristaps 465: case (NODE_ORDEREDLIST):
1.4 kristaps 466: case (NODE_VARLISTENTRY):
467: return(1);
468: default:
469: break;
470: }
471: return(0);
1.6 kristaps 472: case (NODE_LITERAL):
473: switch (parent) {
474: case (NODE_EMPHASIS):
1.12 kristaps 475: case (NODE_ENTRY):
1.6 kristaps 476: case (NODE_FUNCSYNOPSISINFO):
477: case (NODE_LINK):
478: case (NODE_PARA):
479: case (NODE_PROGRAMLISTING):
1.15 kristaps 480: case (NODE_QUOTE):
1.6 kristaps 481: case (NODE_REFDESCRIPTOR):
482: case (NODE_REFENTRYTITLE):
483: case (NODE_REFNAME):
484: case (NODE_REFPURPOSE):
1.9 kristaps 485: case (NODE_SCREEN):
1.6 kristaps 486: case (NODE_SYNOPSIS):
487: case (NODE_TERM):
488: case (NODE_TITLE):
489: case (NODE_ULINK):
1.10 kristaps 490: case (NODE_USERINPUT):
1.6 kristaps 491: return(1);
492: default:
493: break;
494: }
495: return(0);
1.1 kristaps 496: case (NODE_MANVOLNUM):
497: switch (parent) {
498: case (NODE_CITEREFENTRY):
499: case (NODE_REFMETA):
500: return(1);
501: default:
502: break;
503: }
504: return(0);
1.16 ! kristaps 505: case (NODE_NOTE):
! 506: switch (parent) {
! 507: case (NODE_CAUTION):
! 508: case (NODE_ENTRY):
! 509: case (NODE_ITEMIZEDLIST):
! 510: case (NODE_LISTITEM):
! 511: case (NODE_NOTE):
! 512: case (NODE_ORDEREDLIST):
! 513: case (NODE_PARA):
! 514: case (NODE_REFSECT1):
! 515: case (NODE_REFSECT2):
! 516: case (NODE_REFSECT3):
! 517: case (NODE_REFSECTION):
! 518: case (NODE_REFSYNOPSISDIV):
! 519: case (NODE_TIP):
! 520: case (NODE_VARIABLELIST):
! 521: case (NODE_WARNING):
! 522: return(1);
! 523: default:
! 524: break;
! 525: }
! 526: return(0);
1.1 kristaps 527: case (NODE_OPTION):
528: switch (parent) {
529: case (NODE_ARG):
530: case (NODE_EMPHASIS):
1.12 kristaps 531: case (NODE_ENTRY):
1.1 kristaps 532: case (NODE_FUNCSYNOPSISINFO):
1.11 kristaps 533: case (NODE_GROUP):
1.2 kristaps 534: case (NODE_LINK):
1.1 kristaps 535: case (NODE_PARA):
536: case (NODE_PROGRAMLISTING):
1.15 kristaps 537: case (NODE_QUOTE):
1.1 kristaps 538: case (NODE_REFDESCRIPTOR):
539: case (NODE_REFENTRYTITLE):
540: case (NODE_REFNAME):
541: case (NODE_REFPURPOSE):
1.9 kristaps 542: case (NODE_SCREEN):
1.1 kristaps 543: case (NODE_SYNOPSIS):
544: case (NODE_TERM):
545: case (NODE_TITLE):
1.2 kristaps 546: case (NODE_ULINK):
1.10 kristaps 547: case (NODE_USERINPUT):
1.1 kristaps 548: return(1);
549: default:
550: break;
551: }
552: return(0);
1.8 kristaps 553: case (NODE_ORDEREDLIST):
554: switch (parent) {
1.16 ! kristaps 555: case (NODE_CAUTION):
1.12 kristaps 556: case (NODE_ENTRY):
1.8 kristaps 557: case (NODE_ITEMIZEDLIST):
558: case (NODE_LISTITEM):
559: case (NODE_ORDEREDLIST):
1.16 ! kristaps 560: case (NODE_NOTE):
1.8 kristaps 561: case (NODE_PARA):
562: case (NODE_REFSECT1):
563: case (NODE_REFSECT2):
1.16 ! kristaps 564: case (NODE_REFSECT3):
! 565: case (NODE_REFSECTION):
1.8 kristaps 566: case (NODE_REFSYNOPSISDIV):
1.16 ! kristaps 567: case (NODE_TIP):
1.8 kristaps 568: case (NODE_VARIABLELIST):
1.16 ! kristaps 569: case (NODE_WARNING):
1.8 kristaps 570: return(1);
571: default:
572: break;
573: }
574: return(0);
1.1 kristaps 575: case (NODE_PARA):
576: switch (parent) {
1.16 ! kristaps 577: case (NODE_CAUTION):
1.12 kristaps 578: case (NODE_ENTRY):
1.4 kristaps 579: case (NODE_ITEMIZEDLIST):
1.1 kristaps 580: case (NODE_LISTITEM):
1.16 ! kristaps 581: case (NODE_NOTE):
1.8 kristaps 582: case (NODE_ORDEREDLIST):
1.1 kristaps 583: case (NODE_REFSECT1):
1.7 kristaps 584: case (NODE_REFSECT2):
1.16 ! kristaps 585: case (NODE_REFSECT3):
! 586: case (NODE_REFSECTION):
1.1 kristaps 587: case (NODE_REFSYNOPSISDIV):
1.16 ! kristaps 588: case (NODE_TIP):
1.1 kristaps 589: case (NODE_VARIABLELIST):
1.16 ! kristaps 590: case (NODE_WARNING):
1.1 kristaps 591: return(1);
592: default:
593: break;
594: }
595: return(0);
596: case (NODE_PARAMDEF):
597: return(NODE_FUNCPROTOTYPE == parent);
598: case (NODE_PARAMETER):
599: switch (parent) {
600: case (NODE_CODE):
1.12 kristaps 601: case (NODE_ENTRY):
1.1 kristaps 602: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 603: case (NODE_LINK):
1.1 kristaps 604: case (NODE_PARA):
605: case (NODE_PARAMDEF):
606: case (NODE_PROGRAMLISTING):
1.15 kristaps 607: case (NODE_QUOTE):
1.1 kristaps 608: case (NODE_REFDESCRIPTOR):
609: case (NODE_REFENTRYTITLE):
610: case (NODE_REFNAME):
611: case (NODE_REFPURPOSE):
1.9 kristaps 612: case (NODE_SCREEN):
1.1 kristaps 613: case (NODE_SYNOPSIS):
614: case (NODE_TERM):
615: case (NODE_TITLE):
1.2 kristaps 616: case (NODE_ULINK):
1.10 kristaps 617: case (NODE_USERINPUT):
1.1 kristaps 618: return(1);
619: default:
620: break;
621: }
622: return(0);
623: case (NODE_PROGRAMLISTING):
624: switch (parent) {
1.16 ! kristaps 625: case (NODE_CAUTION):
1.12 kristaps 626: case (NODE_ENTRY):
1.4 kristaps 627: case (NODE_ITEMIZEDLIST):
1.1 kristaps 628: case (NODE_LISTITEM):
1.8 kristaps 629: case (NODE_ORDEREDLIST):
1.16 ! kristaps 630: case (NODE_NOTE):
1.1 kristaps 631: case (NODE_PARA):
632: case (NODE_REFSECT1):
1.7 kristaps 633: case (NODE_REFSECT2):
1.16 ! kristaps 634: case (NODE_REFSECT3):
! 635: case (NODE_REFSECTION):
1.1 kristaps 636: case (NODE_REFSYNOPSISDIV):
1.16 ! kristaps 637: case (NODE_TIP):
1.9 kristaps 638: case (NODE_VARIABLELIST):
1.16 ! kristaps 639: case (NODE_WARNING):
1.9 kristaps 640: return(1);
641: default:
642: break;
643: }
644: return(0);
645: case (NODE_PROMPT):
646: switch (parent) {
647: case (NODE_EMPHASIS):
1.12 kristaps 648: case (NODE_ENTRY):
1.9 kristaps 649: case (NODE_FUNCSYNOPSISINFO):
650: case (NODE_LINK):
651: case (NODE_PARA):
652: case (NODE_PROGRAMLISTING):
1.15 kristaps 653: case (NODE_QUOTE):
1.9 kristaps 654: case (NODE_REFDESCRIPTOR):
655: case (NODE_REFENTRYTITLE):
656: case (NODE_REFNAME):
657: case (NODE_REFPURPOSE):
658: case (NODE_SCREEN):
659: case (NODE_SYNOPSIS):
660: case (NODE_TERM):
661: case (NODE_TITLE):
662: case (NODE_ULINK):
1.10 kristaps 663: case (NODE_USERINPUT):
1.1 kristaps 664: return(1);
665: default:
666: break;
667: }
668: return(0);
1.15 kristaps 669: case (NODE_QUOTE):
670: switch (parent) {
671: case (NODE_EMPHASIS):
672: case (NODE_ENTRY):
673: case (NODE_FUNCSYNOPSISINFO):
674: case (NODE_LINK):
675: case (NODE_PARA):
676: case (NODE_PROGRAMLISTING):
677: case (NODE_QUOTE):
678: case (NODE_REFDESCRIPTOR):
679: case (NODE_REFENTRYTITLE):
680: case (NODE_REFNAME):
681: case (NODE_REFPURPOSE):
682: case (NODE_SCREEN):
683: case (NODE_SYNOPSIS):
684: case (NODE_TERM):
685: case (NODE_TITLE):
686: case (NODE_ULINK):
687: return(1);
688: default:
689: break;
690: }
691: return(0);
692:
1.1 kristaps 693: case (NODE_REFCLASS):
694: return(parent == NODE_REFNAMEDIV);
695: case (NODE_REFDESCRIPTOR):
696: return(parent == NODE_REFNAMEDIV);
697: case (NODE_REFENTRY):
698: return(parent == NODE_ROOT);
1.3 kristaps 699: case (NODE_REFENTRYINFO):
700: return(parent == NODE_REFENTRY);
1.1 kristaps 701: case (NODE_REFENTRYTITLE):
702: switch (parent) {
703: case (NODE_CITEREFENTRY):
704: case (NODE_REFMETA):
705: return(1);
706: default:
707: break;
708: }
709: case (NODE_REFMETA):
710: return(parent == NODE_REFENTRY);
711: case (NODE_REFMISCINFO):
712: return(parent == NODE_REFMETA);
713: case (NODE_REFNAME):
714: return(parent == NODE_REFNAMEDIV);
715: case (NODE_REFNAMEDIV):
716: return(parent == NODE_REFENTRY);
717: case (NODE_REFPURPOSE):
718: return(parent == NODE_REFNAMEDIV);
719: case (NODE_REFSECT1):
720: return(parent == NODE_REFENTRY);
1.7 kristaps 721: case (NODE_REFSECT2):
722: switch (parent) {
723: case (NODE_REFSYNOPSISDIV):
724: case (NODE_REFSECT1):
725: return(1);
726: default:
727: break;
728: }
729: return(0);
1.16 ! kristaps 730: case (NODE_REFSECT3):
! 731: return(parent == NODE_REFSECT2);
! 732: case (NODE_REFSECTION):
! 733: switch (parent) {
! 734: case (NODE_REFENTRY):
! 735: case (NODE_REFSECTION):
! 736: case (NODE_REFSYNOPSISDIV):
! 737: return(1);
! 738: default:
! 739: break;
! 740: }
! 741: return(0);
1.1 kristaps 742: case (NODE_REFSYNOPSISDIV):
743: return(parent == NODE_REFENTRY);
744: case (NODE_REPLACEABLE):
745: switch (parent) {
1.8 kristaps 746: case (NODE_ACRONYM):
1.14 kristaps 747: case (NODE_APPLICATION):
1.1 kristaps 748: case (NODE_ARG):
749: case (NODE_CODE):
750: case (NODE_COMMAND):
751: case (NODE_EMPHASIS):
1.12 kristaps 752: case (NODE_ENTRY):
1.8 kristaps 753: case (NODE_ENVAR):
1.5 kristaps 754: case (NODE_FILENAME):
1.1 kristaps 755: case (NODE_FUNCDEF):
756: case (NODE_FUNCSYNOPSISINFO):
757: case (NODE_FUNCTION):
1.11 kristaps 758: case (NODE_GROUP):
1.2 kristaps 759: case (NODE_LINK):
1.6 kristaps 760: case (NODE_LITERAL):
1.1 kristaps 761: case (NODE_MANVOLNUM):
762: case (NODE_OPTION):
763: case (NODE_PARA):
764: case (NODE_PARAMDEF):
765: case (NODE_PARAMETER):
766: case (NODE_PROGRAMLISTING):
1.9 kristaps 767: case (NODE_PROMPT):
1.15 kristaps 768: case (NODE_QUOTE):
1.1 kristaps 769: case (NODE_REFDESCRIPTOR):
770: case (NODE_REFENTRYTITLE):
771: case (NODE_REFMISCINFO):
772: case (NODE_REFNAME):
773: case (NODE_REFPURPOSE):
774: case (NODE_REPLACEABLE):
1.9 kristaps 775: case (NODE_SCREEN):
1.1 kristaps 776: case (NODE_SYNOPSIS):
777: case (NODE_TERM):
778: case (NODE_TITLE):
1.2 kristaps 779: case (NODE_ULINK):
1.10 kristaps 780: case (NODE_USERINPUT):
1.13 kristaps 781: case (NODE_VARNAME):
1.1 kristaps 782: default:
783: return(1);
1.6 kristaps 784: }
785: return(0);
1.12 kristaps 786: case (NODE_ROW):
787: switch (parent) {
788: case (NODE_TBODY):
789: case (NODE_TFOOT):
790: case (NODE_THEAD):
791: return(1);
792: default:
793: break;
794: }
795: return(0);
1.6 kristaps 796: case (NODE_SBR):
797: switch (parent) {
798: case (NODE_ARG):
799: case (NODE_CMDSYNOPSIS):
1.11 kristaps 800: case (NODE_GROUP):
1.9 kristaps 801: return(1);
802: default:
803: break;
804: }
805: return(0);
806: case (NODE_SCREEN):
807: switch (parent) {
1.16 ! kristaps 808: case (NODE_CAUTION):
1.12 kristaps 809: case (NODE_ENTRY):
1.9 kristaps 810: case (NODE_ITEMIZEDLIST):
811: case (NODE_LISTITEM):
812: case (NODE_ORDEREDLIST):
1.16 ! kristaps 813: case (NODE_NOTE):
1.9 kristaps 814: case (NODE_PARA):
815: case (NODE_REFSECT1):
816: case (NODE_REFSECT2):
1.16 ! kristaps 817: case (NODE_REFSECT3):
! 818: case (NODE_REFSECTION):
1.9 kristaps 819: case (NODE_REFSYNOPSISDIV):
1.16 ! kristaps 820: case (NODE_TIP):
1.9 kristaps 821: case (NODE_VARIABLELIST):
1.16 ! kristaps 822: case (NODE_WARNING):
1.6 kristaps 823: return(1);
824: default:
825: break;
1.1 kristaps 826: }
827: return(0);
828: case (NODE_STRUCTNAME):
829: switch (parent) {
830: case (NODE_CODE):
831: case (NODE_FUNCSYNOPSISINFO):
832: case (NODE_FUNCTION):
833: case (NODE_OPTION):
834: case (NODE_PARA):
835: case (NODE_PARAMETER):
836: case (NODE_PROGRAMLISTING):
837: case (NODE_REFDESCRIPTOR):
838: case (NODE_REFENTRYTITLE):
839: case (NODE_REFNAME):
840: case (NODE_REFPURPOSE):
841: case (NODE_SYNOPSIS):
842: case (NODE_TITLE):
843: return(1);
844: default:
845: break;
846: }
847: return(0);
848: case (NODE_SYNOPSIS):
849: switch (parent) {
1.16 ! kristaps 850: case (NODE_CAUTION):
1.12 kristaps 851: case (NODE_ENTRY):
1.4 kristaps 852: case (NODE_ITEMIZEDLIST):
1.1 kristaps 853: case (NODE_LISTITEM):
1.8 kristaps 854: case (NODE_ORDEREDLIST):
1.16 ! kristaps 855: case (NODE_NOTE):
! 856: case (NODE_PARA):
1.1 kristaps 857: case (NODE_REFSYNOPSISDIV):
858: case (NODE_REFSECT1):
1.7 kristaps 859: case (NODE_REFSECT2):
1.16 ! kristaps 860: case (NODE_REFSECT3):
! 861: case (NODE_REFSECTION):
! 862: case (NODE_TIP):
! 863: case (NODE_WARNING):
1.1 kristaps 864: return(1);
865: default:
866: break;
867: }
868: return(0);
1.12 kristaps 869: case (NODE_TABLE):
870: switch (parent) {
1.16 ! kristaps 871: case (NODE_CAUTION):
1.12 kristaps 872: case (NODE_ENTRY):
873: case (NODE_ITEMIZEDLIST):
874: case (NODE_LISTITEM):
875: case (NODE_ORDEREDLIST):
1.16 ! kristaps 876: case (NODE_NOTE):
1.12 kristaps 877: case (NODE_PARA):
878: case (NODE_REFSECT1):
1.16 ! kristaps 879: case (NODE_REFSECT2):
! 880: case (NODE_REFSECT3):
! 881: case (NODE_REFSECTION):
1.12 kristaps 882: case (NODE_REFSYNOPSISDIV):
1.16 ! kristaps 883: case (NODE_TIP):
1.12 kristaps 884: case (NODE_VARIABLELIST):
1.16 ! kristaps 885: case (NODE_WARNING):
1.12 kristaps 886: return(1);
887: default:
888: break;
889: }
890: return(0);
891: case (NODE_TBODY):
892: return(NODE_TGROUP == parent);
893: case (NODE_TFOOT):
894: return(NODE_TGROUP == parent);
895: case (NODE_TGROUP):
896: return(NODE_TABLE == parent);
897: case (NODE_THEAD):
898: return(NODE_TGROUP == parent);
1.1 kristaps 899: case (NODE_TITLE):
900: switch (parent) {
1.4 kristaps 901: case (NODE_ITEMIZEDLIST):
1.8 kristaps 902: case (NODE_ORDEREDLIST):
1.3 kristaps 903: case (NODE_REFENTRYINFO):
1.1 kristaps 904: case (NODE_REFSECT1):
1.7 kristaps 905: case (NODE_REFSECT2):
1.16 ! kristaps 906: case (NODE_REFSECT3):
! 907: case (NODE_REFSECTION):
1.1 kristaps 908: case (NODE_REFSYNOPSISDIV):
1.12 kristaps 909: case (NODE_TABLE):
1.1 kristaps 910: case (NODE_VARIABLELIST):
911: return(1);
912: default:
913: break;
914: }
915: return(0);
916: case (NODE_TERM):
917: return(NODE_VARLISTENTRY == parent);
918: case (NODE_TEXT):
919: return(1);
1.16 ! kristaps 920: case (NODE_TIP):
! 921: switch (parent) {
! 922: case (NODE_CAUTION):
! 923: case (NODE_ENTRY):
! 924: case (NODE_ITEMIZEDLIST):
! 925: case (NODE_LISTITEM):
! 926: case (NODE_NOTE):
! 927: case (NODE_ORDEREDLIST):
! 928: case (NODE_PARA):
! 929: case (NODE_REFSECT1):
! 930: case (NODE_REFSECT2):
! 931: case (NODE_REFSECT3):
! 932: case (NODE_REFSECTION):
! 933: case (NODE_REFSYNOPSISDIV):
! 934: case (NODE_TIP):
! 935: case (NODE_VARIABLELIST):
! 936: case (NODE_WARNING):
! 937: return(1);
! 938: default:
! 939: break;
! 940: }
! 941: return(0);
1.10 kristaps 942: case (NODE_USERINPUT):
943: switch (parent) {
944: case (NODE_EMPHASIS):
1.12 kristaps 945: case (NODE_ENTRY):
1.10 kristaps 946: case (NODE_FUNCSYNOPSISINFO):
947: case (NODE_LINK):
948: case (NODE_PARA):
949: case (NODE_PROGRAMLISTING):
1.15 kristaps 950: case (NODE_QUOTE):
1.10 kristaps 951: case (NODE_REFDESCRIPTOR):
952: case (NODE_REFENTRYTITLE):
953: case (NODE_REFNAME):
954: case (NODE_REFPURPOSE):
955: case (NODE_SCREEN):
956: case (NODE_SYNOPSIS):
957: case (NODE_TERM):
958: case (NODE_TITLE):
959: case (NODE_ULINK):
960: case (NODE_USERINPUT):
961: return(1);
962: default:
963: break;
964: }
965: return(0);
1.1 kristaps 966: case (NODE_VARIABLELIST):
967: switch (parent) {
1.16 ! kristaps 968: case (NODE_CAUTION):
1.12 kristaps 969: case (NODE_ENTRY):
1.4 kristaps 970: case (NODE_ITEMIZEDLIST):
1.8 kristaps 971: case (NODE_ORDEREDLIST):
1.16 ! kristaps 972: case (NODE_NOTE):
1.1 kristaps 973: case (NODE_PARA):
974: case (NODE_REFSECT1):
1.7 kristaps 975: case (NODE_REFSECT2):
1.16 ! kristaps 976: case (NODE_REFSECT3):
! 977: case (NODE_REFSECTION):
1.1 kristaps 978: case (NODE_REFSYNOPSISDIV):
1.16 ! kristaps 979: case (NODE_TIP):
1.1 kristaps 980: case (NODE_VARIABLELIST):
1.16 ! kristaps 981: case (NODE_WARNING):
1.13 kristaps 982: return(1);
983: default:
984: break;
985: }
986: return(0);
987: case (NODE_VARNAME):
988: switch (parent) {
989: case (NODE_CODE):
990: case (NODE_EMPHASIS):
991: case (NODE_ENTRY):
992: case (NODE_FUNCSYNOPSISINFO):
993: case (NODE_LINK):
994: case (NODE_PARA):
995: case (NODE_PROGRAMLISTING):
1.15 kristaps 996: case (NODE_QUOTE):
1.13 kristaps 997: case (NODE_REFDESCRIPTOR):
998: case (NODE_REFENTRYTITLE):
999: case (NODE_REFNAME):
1000: case (NODE_REFPURPOSE):
1001: case (NODE_SCREEN):
1002: case (NODE_SYNOPSIS):
1003: case (NODE_TERM):
1004: case (NODE_TITLE):
1005: case (NODE_ULINK):
1.1 kristaps 1006: return(1);
1007: default:
1008: break;
1009: }
1010: return(0);
1011: case (NODE_VARLISTENTRY):
1012: return (NODE_VARIABLELIST == parent);
1.16 ! kristaps 1013: case (NODE_WARNING):
! 1014: switch (parent) {
! 1015: case (NODE_CAUTION):
! 1016: case (NODE_ENTRY):
! 1017: case (NODE_ITEMIZEDLIST):
! 1018: case (NODE_LISTITEM):
! 1019: case (NODE_NOTE):
! 1020: case (NODE_ORDEREDLIST):
! 1021: case (NODE_PARA):
! 1022: case (NODE_REFSECT1):
! 1023: case (NODE_REFSECT2):
! 1024: case (NODE_REFSECT3):
! 1025: case (NODE_REFSECTION):
! 1026: case (NODE_REFSYNOPSISDIV):
! 1027: case (NODE_TIP):
! 1028: case (NODE_VARIABLELIST):
! 1029: case (NODE_WARNING):
! 1030: return(1);
! 1031: default:
! 1032: break;
! 1033: }
! 1034: return(0);
1.1 kristaps 1035: case (NODE__MAX):
1036: break;
1037: }
1038:
1039: abort();
1040: return(0);
1041: }
1042:
CVSweb