Annotation of docbook2mdoc/rules.c, Revision 1.18
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.17 kristaps 90: case (NODE_ANCHOR):
91: /* We'll ignore this. */
92: return(1);
1.14 kristaps 93: case (NODE_APPLICATION):
94: switch (parent) {
95: case (NODE_EMPHASIS):
96: case (NODE_ENTRY):
97: case (NODE_FUNCSYNOPSISINFO):
98: case (NODE_LINK):
99: case (NODE_PARA):
100: case (NODE_PROGRAMLISTING):
1.15 kristaps 101: case (NODE_QUOTE):
1.14 kristaps 102: case (NODE_REFCLASS):
103: case (NODE_REFDESCRIPTOR):
104: case (NODE_REFENTRYTITLE):
105: case (NODE_REFNAME):
106: case (NODE_REFPURPOSE):
107: case (NODE_SCREEN):
108: case (NODE_SYNOPSIS):
109: case (NODE_TERM):
110: case (NODE_TITLE):
111: case (NODE_ULINK):
112: return(1);
113: default:
114: break;
115: }
116: return(0);
1.1 kristaps 117: case (NODE_ARG):
118: switch (parent) {
119: case (NODE_ARG):
120: case (NODE_CMDSYNOPSIS):
1.11 kristaps 121: case (NODE_GROUP):
1.1 kristaps 122: return(1);
123: default:
124: break;
125: }
126: return(0);
1.16 kristaps 127: case (NODE_CAUTION):
128: switch (parent) {
129: case (NODE_CAUTION):
130: case (NODE_ENTRY):
131: case (NODE_ITEMIZEDLIST):
132: case (NODE_LISTITEM):
133: case (NODE_NOTE):
134: case (NODE_ORDEREDLIST):
135: case (NODE_PARA):
136: case (NODE_REFSECT1):
137: case (NODE_REFSECT2):
138: case (NODE_REFSECT3):
139: case (NODE_REFSECTION):
140: case (NODE_REFSYNOPSISDIV):
141: case (NODE_TIP):
142: case (NODE_VARIABLELIST):
143: case (NODE_WARNING):
144: return(1);
145: default:
146: break;
147: }
148: return(0);
1.1 kristaps 149: case (NODE_CITEREFENTRY):
150: switch (parent) {
151: case (NODE_EMPHASIS):
1.12 kristaps 152: case (NODE_ENTRY):
1.1 kristaps 153: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 154: case (NODE_LINK):
1.1 kristaps 155: case (NODE_PARA):
156: case (NODE_PROGRAMLISTING):
1.15 kristaps 157: case (NODE_QUOTE):
1.1 kristaps 158: case (NODE_REFDESCRIPTOR):
159: case (NODE_REFENTRYTITLE):
160: case (NODE_REFNAME):
161: case (NODE_REFPURPOSE):
1.9 kristaps 162: case (NODE_SCREEN):
1.1 kristaps 163: case (NODE_SYNOPSIS):
164: case (NODE_TERM):
165: case (NODE_TITLE):
1.2 kristaps 166: case (NODE_ULINK):
1.1 kristaps 167: return(1);
168: default:
169: break;
170: }
171: return(0);
172: case (NODE_CMDSYNOPSIS):
173: switch (parent) {
1.16 kristaps 174: case (NODE_CAUTION):
1.12 kristaps 175: case (NODE_ENTRY):
1.4 kristaps 176: case (NODE_ITEMIZEDLIST):
1.1 kristaps 177: case (NODE_LISTITEM):
1.8 kristaps 178: case (NODE_ORDEREDLIST):
1.16 kristaps 179: case (NODE_NOTE):
1.1 kristaps 180: case (NODE_PARA):
181: case (NODE_REFSECT1):
1.7 kristaps 182: case (NODE_REFSECT2):
1.16 kristaps 183: case (NODE_REFSECT3):
184: case (NODE_REFSECTION):
1.1 kristaps 185: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 186: case (NODE_TIP):
1.1 kristaps 187: case (NODE_VARIABLELIST):
1.16 kristaps 188: case (NODE_WARNING):
1.1 kristaps 189: return(1);
190: default:
191: break;
192: }
193: return(0);
194: case (NODE_CODE):
195: switch (parent) {
196: case (NODE_EMPHASIS):
1.12 kristaps 197: case (NODE_ENTRY):
1.1 kristaps 198: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 199: case (NODE_LINK):
1.1 kristaps 200: case (NODE_PARA):
201: case (NODE_PROGRAMLISTING):
1.15 kristaps 202: case (NODE_QUOTE):
1.1 kristaps 203: case (NODE_REFDESCRIPTOR):
204: case (NODE_REFENTRYTITLE):
205: case (NODE_REFNAME):
206: case (NODE_REFPURPOSE):
1.9 kristaps 207: case (NODE_SCREEN):
1.1 kristaps 208: case (NODE_SYNOPSIS):
209: case (NODE_TERM):
210: case (NODE_TITLE):
1.2 kristaps 211: case (NODE_ULINK):
1.10 kristaps 212: case (NODE_USERINPUT):
1.1 kristaps 213: return(1);
214: default:
215: break;
216: }
217: return(0);
218: case (NODE_COMMAND):
219: switch (parent) {
220: case (NODE_CMDSYNOPSIS):
221: case (NODE_EMPHASIS):
1.12 kristaps 222: case (NODE_ENTRY):
1.1 kristaps 223: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 224: case (NODE_LINK):
1.1 kristaps 225: case (NODE_PARA):
226: case (NODE_PROGRAMLISTING):
1.15 kristaps 227: case (NODE_QUOTE):
1.1 kristaps 228: case (NODE_REFDESCRIPTOR):
229: case (NODE_REFENTRYTITLE):
230: case (NODE_REFNAME):
231: case (NODE_REFPURPOSE):
1.9 kristaps 232: case (NODE_SCREEN):
1.1 kristaps 233: case (NODE_SYNOPSIS):
234: case (NODE_TERM):
235: case (NODE_TITLE):
1.2 kristaps 236: case (NODE_ULINK):
1.10 kristaps 237: case (NODE_USERINPUT):
1.1 kristaps 238: return(1);
239: default:
240: break;
241: }
242: return(0);
1.18 ! kristaps 243: case (NODE_CONSTANT):
! 244: switch (parent) {
! 245: case (NODE_EMPHASIS):
! 246: case (NODE_ENTRY):
! 247: case (NODE_FUNCSYNOPSISINFO):
! 248: case (NODE_LINK):
! 249: case (NODE_ULINK):
! 250: case (NODE_PARA):
! 251: case (NODE_PROGRAMLISTING):
! 252: case (NODE_QUOTE):
! 253: case (NODE_REFDESCRIPTOR):
! 254: case (NODE_REFENTRYTITLE):
! 255: case (NODE_REFNAME):
! 256: case (NODE_REFPURPOSE):
! 257: case (NODE_SCREEN):
! 258: case (NODE_SYNOPSIS):
! 259: case (NODE_TERM):
! 260: case (NODE_TITLE):
! 261: case (NODE_USERINPUT):
! 262: return(1);
! 263: default:
! 264: break;
! 265: }
! 266: return(0);
! 267: case (NODE_COPYRIGHT):
! 268: switch (parent) {
! 269: case (NODE_INFO):
! 270: return(1);
! 271: default:
! 272: break;
! 273: }
! 274: return(0);
1.3 kristaps 275: case (NODE_DATE):
276: switch (parent) {
277: case (NODE_EMPHASIS):
1.12 kristaps 278: case (NODE_ENTRY):
1.3 kristaps 279: case (NODE_FUNCSYNOPSISINFO):
1.18 ! kristaps 280: case (NODE_INFO):
1.3 kristaps 281: case (NODE_LINK):
282: case (NODE_PARA):
283: case (NODE_PROGRAMLISTING):
1.15 kristaps 284: case (NODE_QUOTE):
1.3 kristaps 285: case (NODE_REFDESCRIPTOR):
286: case (NODE_REFENTRYINFO):
287: case (NODE_REFENTRYTITLE):
288: case (NODE_REFNAME):
289: case (NODE_REFPURPOSE):
1.9 kristaps 290: case (NODE_SCREEN):
1.3 kristaps 291: case (NODE_SYNOPSIS):
292: case (NODE_TITLE):
293: case (NODE_ULINK):
294: return(1);
295: default:
296: break;
297: }
298: return(0);
1.1 kristaps 299: case (NODE_EMPHASIS):
300: switch (parent) {
301: case (NODE_EMPHASIS):
1.12 kristaps 302: case (NODE_ENTRY):
1.1 kristaps 303: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 304: case (NODE_LINK):
1.1 kristaps 305: case (NODE_PARA):
306: case (NODE_PROGRAMLISTING):
1.15 kristaps 307: case (NODE_QUOTE):
1.1 kristaps 308: case (NODE_REFDESCRIPTOR):
309: case (NODE_REFENTRYTITLE):
310: case (NODE_REFNAME):
311: case (NODE_REFPURPOSE):
1.9 kristaps 312: case (NODE_SCREEN):
1.1 kristaps 313: case (NODE_SYNOPSIS):
314: case (NODE_TERM):
315: case (NODE_TITLE):
1.2 kristaps 316: case (NODE_ULINK):
1.1 kristaps 317: return(1);
318: default:
319: break;
320: }
321: return(0);
1.12 kristaps 322: case (NODE_ENTRY):
323: return(NODE_ROW == parent);
1.8 kristaps 324: case (NODE_ENVAR):
325: switch (parent) {
326: case (NODE_EMPHASIS):
1.12 kristaps 327: case (NODE_ENTRY):
1.8 kristaps 328: case (NODE_FUNCSYNOPSISINFO):
329: case (NODE_LINK):
330: case (NODE_PARA):
331: case (NODE_PROGRAMLISTING):
1.15 kristaps 332: case (NODE_QUOTE):
1.8 kristaps 333: case (NODE_REFDESCRIPTOR):
334: case (NODE_REFENTRYTITLE):
335: case (NODE_REFNAME):
336: case (NODE_REFPURPOSE):
1.9 kristaps 337: case (NODE_SCREEN):
1.8 kristaps 338: case (NODE_SYNOPSIS):
339: case (NODE_TERM):
340: case (NODE_TITLE):
341: case (NODE_ULINK):
1.10 kristaps 342: case (NODE_USERINPUT):
1.8 kristaps 343: return(1);
344: default:
345: break;
346: }
347: return(0);
1.5 kristaps 348: case (NODE_FILENAME):
349: switch (parent) {
350: case (NODE_EMPHASIS):
1.12 kristaps 351: case (NODE_ENTRY):
1.5 kristaps 352: case (NODE_FUNCSYNOPSISINFO):
353: case (NODE_LINK):
354: case (NODE_PARA):
355: case (NODE_PROGRAMLISTING):
1.15 kristaps 356: case (NODE_QUOTE):
1.5 kristaps 357: case (NODE_REFDESCRIPTOR):
358: case (NODE_REFENTRYTITLE):
359: case (NODE_REFNAME):
360: case (NODE_REFPURPOSE):
1.9 kristaps 361: case (NODE_SCREEN):
1.5 kristaps 362: case (NODE_SYNOPSIS):
363: case (NODE_TERM):
364: case (NODE_TITLE):
365: case (NODE_ULINK):
1.10 kristaps 366: case (NODE_USERINPUT):
1.5 kristaps 367: return(1);
368: default:
369: break;
370: }
371: return(0);
1.1 kristaps 372: case (NODE_FUNCDEF):
373: return(NODE_FUNCPROTOTYPE == parent);
374: case (NODE_FUNCPROTOTYPE):
375: return(NODE_FUNCSYNOPSIS == parent);
376: case (NODE_FUNCSYNOPSIS):
377: switch (parent) {
1.16 kristaps 378: case (NODE_CAUTION):
1.12 kristaps 379: case (NODE_ENTRY):
1.4 kristaps 380: case (NODE_ITEMIZEDLIST):
1.1 kristaps 381: case (NODE_LISTITEM):
1.8 kristaps 382: case (NODE_ORDEREDLIST):
1.16 kristaps 383: case (NODE_NOTE):
1.1 kristaps 384: case (NODE_PARA):
385: case (NODE_REFSECT1):
1.7 kristaps 386: case (NODE_REFSECT2):
1.16 kristaps 387: case (NODE_REFSECT3):
388: case (NODE_REFSECTION):
1.1 kristaps 389: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 390: case (NODE_TIP):
1.1 kristaps 391: case (NODE_VARIABLELIST):
1.16 kristaps 392: case (NODE_WARNING):
1.1 kristaps 393: return(1);
394: default:
395: break;
396: }
397: return(0);
398: case (NODE_FUNCSYNOPSISINFO):
399: return(NODE_FUNCSYNOPSIS == parent);
400: case (NODE_FUNCTION):
401: switch (parent) {
402: case (NODE_CODE):
403: case (NODE_EMPHASIS):
1.12 kristaps 404: case (NODE_ENTRY):
1.1 kristaps 405: case (NODE_FUNCDEF):
406: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 407: case (NODE_LINK):
1.1 kristaps 408: case (NODE_PARA):
409: case (NODE_PROGRAMLISTING):
1.15 kristaps 410: case (NODE_QUOTE):
1.1 kristaps 411: case (NODE_REFDESCRIPTOR):
412: case (NODE_REFENTRYTITLE):
413: case (NODE_REFNAME):
414: case (NODE_REFPURPOSE):
1.9 kristaps 415: case (NODE_SCREEN):
1.1 kristaps 416: case (NODE_SYNOPSIS):
417: case (NODE_TERM):
418: case (NODE_TITLE):
1.2 kristaps 419: case (NODE_ULINK):
420: return(1);
421: default:
422: break;
423: }
424: return(0);
1.18 ! kristaps 425: case (NODE_GROUP):
! 426: switch (parent) {
! 427: case (NODE_ARG):
! 428: case (NODE_CMDSYNOPSIS):
! 429: case (NODE_GROUP):
! 430: return(1);
! 431: default:
! 432: break;
! 433: }
! 434: return(0);
! 435: case (NODE_HOLDER):
! 436: switch (parent) {
! 437: case (NODE_COPYRIGHT):
! 438: return(1);
! 439: default:
! 440: break;
! 441: }
! 442: return(0);
! 443: case (NODE_INFO):
1.4 kristaps 444: switch (parent) {
1.16 kristaps 445: case (NODE_CAUTION):
1.18 ! kristaps 446: case (NODE_CMDSYNOPSIS):
! 447: case (NODE_FUNCSYNOPSIS):
! 448: case (NODE_FUNCSYNOPSISINFO):
1.4 kristaps 449: case (NODE_ITEMIZEDLIST):
1.16 kristaps 450: case (NODE_NOTE):
1.8 kristaps 451: case (NODE_ORDEREDLIST):
1.16 kristaps 452: case (NODE_PARA):
1.18 ! kristaps 453: case (NODE_PROGRAMLISTING):
! 454: case (NODE_REFENTRY):
1.4 kristaps 455: case (NODE_REFSECT1):
1.7 kristaps 456: case (NODE_REFSECT2):
1.16 kristaps 457: case (NODE_REFSECT3):
458: case (NODE_REFSECTION):
1.4 kristaps 459: case (NODE_REFSYNOPSISDIV):
1.18 ! kristaps 460: case (NODE_SCREEN):
! 461: case (NODE_SYNOPSIS):
! 462: case (NODE_TABLE):
1.4 kristaps 463: case (NODE_VARIABLELIST):
1.16 kristaps 464: case (NODE_WARNING):
1.4 kristaps 465: return(1);
466: default:
467: break;
468: }
469: return(0);
1.18 ! kristaps 470: case (NODE_ITEMIZEDLIST):
1.11 kristaps 471: switch (parent) {
1.18 ! kristaps 472: case (NODE_CAUTION):
! 473: case (NODE_ENTRY):
! 474: case (NODE_ITEMIZEDLIST):
! 475: case (NODE_LISTITEM):
! 476: case (NODE_NOTE):
! 477: case (NODE_ORDEREDLIST):
! 478: case (NODE_PARA):
! 479: case (NODE_REFSECT1):
! 480: case (NODE_REFSECT2):
! 481: case (NODE_REFSECT3):
! 482: case (NODE_REFSECTION):
! 483: case (NODE_REFSYNOPSISDIV):
! 484: case (NODE_TIP):
! 485: case (NODE_VARIABLELIST):
! 486: case (NODE_WARNING):
1.11 kristaps 487: return(1);
488: default:
489: break;
490: }
491: return(0);
1.2 kristaps 492: case (NODE_LINK):
1.4 kristaps 493: case (NODE_ULINK): /* Synonyms. */
1.2 kristaps 494: switch (parent) {
1.8 kristaps 495: case (NODE_ACRONYM):
1.14 kristaps 496: case (NODE_APPLICATION):
1.2 kristaps 497: case (NODE_ARG):
498: case (NODE_CODE):
499: case (NODE_COMMAND):
1.18 ! kristaps 500: case (NODE_CONSTANT):
1.2 kristaps 501: case (NODE_EMPHASIS):
1.12 kristaps 502: case (NODE_ENTRY):
1.8 kristaps 503: case (NODE_ENVAR):
1.5 kristaps 504: case (NODE_FILENAME):
1.2 kristaps 505: case (NODE_FUNCDEF):
506: case (NODE_FUNCSYNOPSISINFO):
507: case (NODE_FUNCTION):
1.18 ! kristaps 508: case (NODE_HOLDER):
1.2 kristaps 509: case (NODE_LINK):
1.6 kristaps 510: case (NODE_LITERAL):
1.2 kristaps 511: case (NODE_MANVOLNUM):
512: case (NODE_OPTION):
513: case (NODE_PARA):
514: case (NODE_PARAMDEF):
515: case (NODE_PARAMETER):
516: case (NODE_PROGRAMLISTING):
1.9 kristaps 517: case (NODE_PROMPT):
1.15 kristaps 518: case (NODE_QUOTE):
1.2 kristaps 519: case (NODE_REFDESCRIPTOR):
520: case (NODE_REFENTRYTITLE):
521: case (NODE_REFMISCINFO):
522: case (NODE_REFNAME):
523: case (NODE_REPLACEABLE):
1.9 kristaps 524: case (NODE_SCREEN):
1.2 kristaps 525: case (NODE_SYNOPSIS):
526: case (NODE_TERM):
527: case (NODE_ULINK):
1.10 kristaps 528: case (NODE_USERINPUT):
1.13 kristaps 529: case (NODE_VARNAME):
1.17 kristaps 530: case (NODE_WORDASWORD):
1.18 ! kristaps 531: case (NODE_YEAR):
1.1 kristaps 532: return(1);
533: default:
534: break;
535: }
536: return(0);
537: case (NODE_LISTITEM):
1.4 kristaps 538: switch (parent) {
539: case (NODE_ITEMIZEDLIST):
1.8 kristaps 540: case (NODE_ORDEREDLIST):
1.4 kristaps 541: case (NODE_VARLISTENTRY):
542: return(1);
543: default:
544: break;
545: }
546: return(0);
1.6 kristaps 547: case (NODE_LITERAL):
548: switch (parent) {
549: case (NODE_EMPHASIS):
1.12 kristaps 550: case (NODE_ENTRY):
1.6 kristaps 551: case (NODE_FUNCSYNOPSISINFO):
552: case (NODE_LINK):
553: case (NODE_PARA):
554: case (NODE_PROGRAMLISTING):
1.15 kristaps 555: case (NODE_QUOTE):
1.6 kristaps 556: case (NODE_REFDESCRIPTOR):
557: case (NODE_REFENTRYTITLE):
558: case (NODE_REFNAME):
559: case (NODE_REFPURPOSE):
1.9 kristaps 560: case (NODE_SCREEN):
1.6 kristaps 561: case (NODE_SYNOPSIS):
562: case (NODE_TERM):
563: case (NODE_TITLE):
564: case (NODE_ULINK):
1.10 kristaps 565: case (NODE_USERINPUT):
1.6 kristaps 566: return(1);
567: default:
568: break;
569: }
570: return(0);
1.1 kristaps 571: case (NODE_MANVOLNUM):
572: switch (parent) {
573: case (NODE_CITEREFENTRY):
574: case (NODE_REFMETA):
575: return(1);
576: default:
577: break;
578: }
579: return(0);
1.16 kristaps 580: case (NODE_NOTE):
581: switch (parent) {
582: case (NODE_CAUTION):
583: case (NODE_ENTRY):
584: case (NODE_ITEMIZEDLIST):
585: case (NODE_LISTITEM):
586: case (NODE_NOTE):
587: case (NODE_ORDEREDLIST):
588: case (NODE_PARA):
589: case (NODE_REFSECT1):
590: case (NODE_REFSECT2):
591: case (NODE_REFSECT3):
592: case (NODE_REFSECTION):
593: case (NODE_REFSYNOPSISDIV):
594: case (NODE_TIP):
595: case (NODE_VARIABLELIST):
596: case (NODE_WARNING):
597: return(1);
598: default:
599: break;
600: }
601: return(0);
1.1 kristaps 602: case (NODE_OPTION):
603: switch (parent) {
604: case (NODE_ARG):
605: case (NODE_EMPHASIS):
1.12 kristaps 606: case (NODE_ENTRY):
1.1 kristaps 607: case (NODE_FUNCSYNOPSISINFO):
1.11 kristaps 608: case (NODE_GROUP):
1.2 kristaps 609: case (NODE_LINK):
1.1 kristaps 610: case (NODE_PARA):
611: case (NODE_PROGRAMLISTING):
1.15 kristaps 612: case (NODE_QUOTE):
1.1 kristaps 613: case (NODE_REFDESCRIPTOR):
614: case (NODE_REFENTRYTITLE):
615: case (NODE_REFNAME):
616: case (NODE_REFPURPOSE):
1.9 kristaps 617: case (NODE_SCREEN):
1.1 kristaps 618: case (NODE_SYNOPSIS):
619: case (NODE_TERM):
620: case (NODE_TITLE):
1.2 kristaps 621: case (NODE_ULINK):
1.10 kristaps 622: case (NODE_USERINPUT):
1.1 kristaps 623: return(1);
624: default:
625: break;
626: }
627: return(0);
1.8 kristaps 628: case (NODE_ORDEREDLIST):
629: switch (parent) {
1.16 kristaps 630: case (NODE_CAUTION):
1.12 kristaps 631: case (NODE_ENTRY):
1.8 kristaps 632: case (NODE_ITEMIZEDLIST):
633: case (NODE_LISTITEM):
634: case (NODE_ORDEREDLIST):
1.16 kristaps 635: case (NODE_NOTE):
1.8 kristaps 636: case (NODE_PARA):
637: case (NODE_REFSECT1):
638: case (NODE_REFSECT2):
1.16 kristaps 639: case (NODE_REFSECT3):
640: case (NODE_REFSECTION):
1.8 kristaps 641: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 642: case (NODE_TIP):
1.8 kristaps 643: case (NODE_VARIABLELIST):
1.16 kristaps 644: case (NODE_WARNING):
1.8 kristaps 645: return(1);
646: default:
647: break;
648: }
649: return(0);
1.1 kristaps 650: case (NODE_PARA):
651: switch (parent) {
1.16 kristaps 652: case (NODE_CAUTION):
1.12 kristaps 653: case (NODE_ENTRY):
1.4 kristaps 654: case (NODE_ITEMIZEDLIST):
1.1 kristaps 655: case (NODE_LISTITEM):
1.16 kristaps 656: case (NODE_NOTE):
1.8 kristaps 657: case (NODE_ORDEREDLIST):
1.1 kristaps 658: case (NODE_REFSECT1):
1.7 kristaps 659: case (NODE_REFSECT2):
1.16 kristaps 660: case (NODE_REFSECT3):
661: case (NODE_REFSECTION):
1.1 kristaps 662: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 663: case (NODE_TIP):
1.1 kristaps 664: case (NODE_VARIABLELIST):
1.16 kristaps 665: case (NODE_WARNING):
1.1 kristaps 666: return(1);
667: default:
668: break;
669: }
670: return(0);
671: case (NODE_PARAMDEF):
672: return(NODE_FUNCPROTOTYPE == parent);
673: case (NODE_PARAMETER):
674: switch (parent) {
675: case (NODE_CODE):
1.12 kristaps 676: case (NODE_ENTRY):
1.1 kristaps 677: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 678: case (NODE_LINK):
1.1 kristaps 679: case (NODE_PARA):
680: case (NODE_PARAMDEF):
681: case (NODE_PROGRAMLISTING):
1.15 kristaps 682: case (NODE_QUOTE):
1.1 kristaps 683: case (NODE_REFDESCRIPTOR):
684: case (NODE_REFENTRYTITLE):
685: case (NODE_REFNAME):
686: case (NODE_REFPURPOSE):
1.9 kristaps 687: case (NODE_SCREEN):
1.1 kristaps 688: case (NODE_SYNOPSIS):
689: case (NODE_TERM):
690: case (NODE_TITLE):
1.2 kristaps 691: case (NODE_ULINK):
1.10 kristaps 692: case (NODE_USERINPUT):
1.1 kristaps 693: return(1);
694: default:
695: break;
696: }
697: return(0);
698: case (NODE_PROGRAMLISTING):
699: switch (parent) {
1.16 kristaps 700: case (NODE_CAUTION):
1.12 kristaps 701: case (NODE_ENTRY):
1.4 kristaps 702: case (NODE_ITEMIZEDLIST):
1.1 kristaps 703: case (NODE_LISTITEM):
1.8 kristaps 704: case (NODE_ORDEREDLIST):
1.16 kristaps 705: case (NODE_NOTE):
1.1 kristaps 706: case (NODE_PARA):
707: case (NODE_REFSECT1):
1.7 kristaps 708: case (NODE_REFSECT2):
1.16 kristaps 709: case (NODE_REFSECT3):
710: case (NODE_REFSECTION):
1.1 kristaps 711: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 712: case (NODE_TIP):
1.9 kristaps 713: case (NODE_VARIABLELIST):
1.16 kristaps 714: case (NODE_WARNING):
1.9 kristaps 715: return(1);
716: default:
717: break;
718: }
719: return(0);
720: case (NODE_PROMPT):
721: switch (parent) {
722: case (NODE_EMPHASIS):
1.12 kristaps 723: case (NODE_ENTRY):
1.9 kristaps 724: case (NODE_FUNCSYNOPSISINFO):
725: case (NODE_LINK):
726: case (NODE_PARA):
727: case (NODE_PROGRAMLISTING):
1.15 kristaps 728: case (NODE_QUOTE):
1.9 kristaps 729: case (NODE_REFDESCRIPTOR):
730: case (NODE_REFENTRYTITLE):
731: case (NODE_REFNAME):
732: case (NODE_REFPURPOSE):
733: case (NODE_SCREEN):
734: case (NODE_SYNOPSIS):
735: case (NODE_TERM):
736: case (NODE_TITLE):
737: case (NODE_ULINK):
1.10 kristaps 738: case (NODE_USERINPUT):
1.1 kristaps 739: return(1);
740: default:
741: break;
742: }
743: return(0);
1.15 kristaps 744: case (NODE_QUOTE):
745: switch (parent) {
746: case (NODE_EMPHASIS):
747: case (NODE_ENTRY):
748: case (NODE_FUNCSYNOPSISINFO):
749: case (NODE_LINK):
750: case (NODE_PARA):
751: case (NODE_PROGRAMLISTING):
752: case (NODE_QUOTE):
753: case (NODE_REFDESCRIPTOR):
754: case (NODE_REFENTRYTITLE):
755: case (NODE_REFNAME):
756: case (NODE_REFPURPOSE):
757: case (NODE_SCREEN):
758: case (NODE_SYNOPSIS):
759: case (NODE_TERM):
760: case (NODE_TITLE):
761: case (NODE_ULINK):
762: return(1);
763: default:
764: break;
765: }
766: return(0);
1.1 kristaps 767: case (NODE_REFCLASS):
768: return(parent == NODE_REFNAMEDIV);
769: case (NODE_REFDESCRIPTOR):
770: return(parent == NODE_REFNAMEDIV);
771: case (NODE_REFENTRY):
772: return(parent == NODE_ROOT);
1.3 kristaps 773: case (NODE_REFENTRYINFO):
774: return(parent == NODE_REFENTRY);
1.1 kristaps 775: case (NODE_REFENTRYTITLE):
776: switch (parent) {
777: case (NODE_CITEREFENTRY):
778: case (NODE_REFMETA):
779: return(1);
780: default:
781: break;
782: }
783: case (NODE_REFMETA):
784: return(parent == NODE_REFENTRY);
785: case (NODE_REFMISCINFO):
786: return(parent == NODE_REFMETA);
787: case (NODE_REFNAME):
788: return(parent == NODE_REFNAMEDIV);
789: case (NODE_REFNAMEDIV):
790: return(parent == NODE_REFENTRY);
791: case (NODE_REFPURPOSE):
792: return(parent == NODE_REFNAMEDIV);
793: case (NODE_REFSECT1):
794: return(parent == NODE_REFENTRY);
1.7 kristaps 795: case (NODE_REFSECT2):
796: switch (parent) {
797: case (NODE_REFSYNOPSISDIV):
798: case (NODE_REFSECT1):
799: return(1);
800: default:
801: break;
802: }
803: return(0);
1.16 kristaps 804: case (NODE_REFSECT3):
805: return(parent == NODE_REFSECT2);
806: case (NODE_REFSECTION):
807: switch (parent) {
808: case (NODE_REFENTRY):
809: case (NODE_REFSECTION):
810: case (NODE_REFSYNOPSISDIV):
811: return(1);
812: default:
813: break;
814: }
815: return(0);
1.1 kristaps 816: case (NODE_REFSYNOPSISDIV):
817: return(parent == NODE_REFENTRY);
818: case (NODE_REPLACEABLE):
819: switch (parent) {
1.8 kristaps 820: case (NODE_ACRONYM):
1.14 kristaps 821: case (NODE_APPLICATION):
1.1 kristaps 822: case (NODE_ARG):
823: case (NODE_CODE):
824: case (NODE_COMMAND):
1.18 ! kristaps 825: case (NODE_CONSTANT):
1.1 kristaps 826: case (NODE_EMPHASIS):
1.12 kristaps 827: case (NODE_ENTRY):
1.8 kristaps 828: case (NODE_ENVAR):
1.5 kristaps 829: case (NODE_FILENAME):
1.1 kristaps 830: case (NODE_FUNCDEF):
831: case (NODE_FUNCSYNOPSISINFO):
832: case (NODE_FUNCTION):
1.11 kristaps 833: case (NODE_GROUP):
1.18 ! kristaps 834: case (NODE_HOLDER):
1.2 kristaps 835: case (NODE_LINK):
1.6 kristaps 836: case (NODE_LITERAL):
1.1 kristaps 837: case (NODE_MANVOLNUM):
838: case (NODE_OPTION):
839: case (NODE_PARA):
840: case (NODE_PARAMDEF):
841: case (NODE_PARAMETER):
842: case (NODE_PROGRAMLISTING):
1.9 kristaps 843: case (NODE_PROMPT):
1.15 kristaps 844: case (NODE_QUOTE):
1.1 kristaps 845: case (NODE_REFDESCRIPTOR):
846: case (NODE_REFENTRYTITLE):
847: case (NODE_REFMISCINFO):
848: case (NODE_REFNAME):
849: case (NODE_REFPURPOSE):
850: case (NODE_REPLACEABLE):
1.9 kristaps 851: case (NODE_SCREEN):
1.17 kristaps 852: case (NODE_SGMLTAG):
1.1 kristaps 853: case (NODE_SYNOPSIS):
854: case (NODE_TERM):
855: case (NODE_TITLE):
1.2 kristaps 856: case (NODE_ULINK):
1.10 kristaps 857: case (NODE_USERINPUT):
1.13 kristaps 858: case (NODE_VARNAME):
1.17 kristaps 859: case (NODE_WORDASWORD):
1.18 ! kristaps 860: case (NODE_YEAR):
1.1 kristaps 861: default:
862: return(1);
1.6 kristaps 863: }
864: return(0);
1.12 kristaps 865: case (NODE_ROW):
866: switch (parent) {
867: case (NODE_TBODY):
868: case (NODE_TFOOT):
869: case (NODE_THEAD):
870: return(1);
871: default:
872: break;
873: }
874: return(0);
1.6 kristaps 875: case (NODE_SBR):
876: switch (parent) {
877: case (NODE_ARG):
878: case (NODE_CMDSYNOPSIS):
1.11 kristaps 879: case (NODE_GROUP):
1.9 kristaps 880: return(1);
881: default:
882: break;
883: }
884: return(0);
885: case (NODE_SCREEN):
886: switch (parent) {
1.16 kristaps 887: case (NODE_CAUTION):
1.12 kristaps 888: case (NODE_ENTRY):
1.9 kristaps 889: case (NODE_ITEMIZEDLIST):
890: case (NODE_LISTITEM):
891: case (NODE_ORDEREDLIST):
1.16 kristaps 892: case (NODE_NOTE):
1.9 kristaps 893: case (NODE_PARA):
894: case (NODE_REFSECT1):
895: case (NODE_REFSECT2):
1.16 kristaps 896: case (NODE_REFSECT3):
897: case (NODE_REFSECTION):
1.9 kristaps 898: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 899: case (NODE_TIP):
1.9 kristaps 900: case (NODE_VARIABLELIST):
1.16 kristaps 901: case (NODE_WARNING):
1.6 kristaps 902: return(1);
903: default:
904: break;
1.1 kristaps 905: }
906: return(0);
1.17 kristaps 907: case (NODE_SGMLTAG):
908: switch (parent) {
909: case (NODE_APPLICATION):
910: case (NODE_CODE):
911: case (NODE_COMMAND):
912: case (NODE_EMPHASIS):
913: case (NODE_ENTRY):
914: case (NODE_FILENAME):
915: case (NODE_FUNCSYNOPSISINFO):
916: case (NODE_FUNCTION):
917: case (NODE_LINK):
918: case (NODE_LITERAL):
919: case (NODE_OPTION):
920: case (NODE_PARA):
921: case (NODE_PARAMETER):
922: case (NODE_PROGRAMLISTING):
923: case (NODE_QUOTE):
924: case (NODE_REFDESCRIPTOR):
925: case (NODE_REFENTRYTITLE):
926: case (NODE_REFNAME):
927: case (NODE_REFPURPOSE):
928: case (NODE_SCREEN):
929: case (NODE_SYNOPSIS):
930: case (NODE_TERM):
931: case (NODE_TITLE):
932: case (NODE_USERINPUT):
933: return(1);
934: default:
935: break;
936: }
937: return(0);
1.1 kristaps 938: case (NODE_STRUCTNAME):
939: switch (parent) {
940: case (NODE_CODE):
941: case (NODE_FUNCSYNOPSISINFO):
942: case (NODE_FUNCTION):
943: case (NODE_OPTION):
944: case (NODE_PARA):
945: case (NODE_PARAMETER):
946: case (NODE_PROGRAMLISTING):
947: case (NODE_REFDESCRIPTOR):
948: case (NODE_REFENTRYTITLE):
949: case (NODE_REFNAME):
950: case (NODE_REFPURPOSE):
951: case (NODE_SYNOPSIS):
952: case (NODE_TITLE):
953: return(1);
954: default:
955: break;
956: }
957: return(0);
958: case (NODE_SYNOPSIS):
959: switch (parent) {
1.16 kristaps 960: case (NODE_CAUTION):
1.12 kristaps 961: case (NODE_ENTRY):
1.4 kristaps 962: case (NODE_ITEMIZEDLIST):
1.1 kristaps 963: case (NODE_LISTITEM):
1.8 kristaps 964: case (NODE_ORDEREDLIST):
1.16 kristaps 965: case (NODE_NOTE):
966: case (NODE_PARA):
1.1 kristaps 967: case (NODE_REFSYNOPSISDIV):
968: case (NODE_REFSECT1):
1.7 kristaps 969: case (NODE_REFSECT2):
1.16 kristaps 970: case (NODE_REFSECT3):
971: case (NODE_REFSECTION):
972: case (NODE_TIP):
973: case (NODE_WARNING):
1.1 kristaps 974: return(1);
975: default:
976: break;
977: }
978: return(0);
1.12 kristaps 979: case (NODE_TABLE):
980: switch (parent) {
1.16 kristaps 981: case (NODE_CAUTION):
1.12 kristaps 982: case (NODE_ENTRY):
983: case (NODE_ITEMIZEDLIST):
984: case (NODE_LISTITEM):
985: case (NODE_ORDEREDLIST):
1.16 kristaps 986: case (NODE_NOTE):
1.12 kristaps 987: case (NODE_PARA):
988: case (NODE_REFSECT1):
1.16 kristaps 989: case (NODE_REFSECT2):
990: case (NODE_REFSECT3):
991: case (NODE_REFSECTION):
1.12 kristaps 992: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 993: case (NODE_TIP):
1.12 kristaps 994: case (NODE_VARIABLELIST):
1.16 kristaps 995: case (NODE_WARNING):
1.12 kristaps 996: return(1);
997: default:
998: break;
999: }
1000: return(0);
1001: case (NODE_TBODY):
1002: return(NODE_TGROUP == parent);
1003: case (NODE_TFOOT):
1004: return(NODE_TGROUP == parent);
1005: case (NODE_TGROUP):
1006: return(NODE_TABLE == parent);
1007: case (NODE_THEAD):
1008: return(NODE_TGROUP == parent);
1.1 kristaps 1009: case (NODE_TITLE):
1010: switch (parent) {
1.18 ! kristaps 1011: case (NODE_INFO):
1.4 kristaps 1012: case (NODE_ITEMIZEDLIST):
1.8 kristaps 1013: case (NODE_ORDEREDLIST):
1.3 kristaps 1014: case (NODE_REFENTRYINFO):
1.1 kristaps 1015: case (NODE_REFSECT1):
1.7 kristaps 1016: case (NODE_REFSECT2):
1.16 kristaps 1017: case (NODE_REFSECT3):
1018: case (NODE_REFSECTION):
1.1 kristaps 1019: case (NODE_REFSYNOPSISDIV):
1.12 kristaps 1020: case (NODE_TABLE):
1.1 kristaps 1021: case (NODE_VARIABLELIST):
1022: return(1);
1023: default:
1024: break;
1025: }
1026: return(0);
1027: case (NODE_TERM):
1028: return(NODE_VARLISTENTRY == parent);
1029: case (NODE_TEXT):
1030: return(1);
1.16 kristaps 1031: case (NODE_TIP):
1032: switch (parent) {
1033: case (NODE_CAUTION):
1034: case (NODE_ENTRY):
1035: case (NODE_ITEMIZEDLIST):
1036: case (NODE_LISTITEM):
1037: case (NODE_NOTE):
1038: case (NODE_ORDEREDLIST):
1039: case (NODE_PARA):
1040: case (NODE_REFSECT1):
1041: case (NODE_REFSECT2):
1042: case (NODE_REFSECT3):
1043: case (NODE_REFSECTION):
1044: case (NODE_REFSYNOPSISDIV):
1045: case (NODE_TIP):
1046: case (NODE_VARIABLELIST):
1047: case (NODE_WARNING):
1048: return(1);
1049: default:
1050: break;
1051: }
1052: return(0);
1.10 kristaps 1053: case (NODE_USERINPUT):
1054: switch (parent) {
1055: case (NODE_EMPHASIS):
1.12 kristaps 1056: case (NODE_ENTRY):
1.10 kristaps 1057: case (NODE_FUNCSYNOPSISINFO):
1058: case (NODE_LINK):
1059: case (NODE_PARA):
1060: case (NODE_PROGRAMLISTING):
1.15 kristaps 1061: case (NODE_QUOTE):
1.10 kristaps 1062: case (NODE_REFDESCRIPTOR):
1063: case (NODE_REFENTRYTITLE):
1064: case (NODE_REFNAME):
1065: case (NODE_REFPURPOSE):
1066: case (NODE_SCREEN):
1067: case (NODE_SYNOPSIS):
1068: case (NODE_TERM):
1069: case (NODE_TITLE):
1070: case (NODE_ULINK):
1071: case (NODE_USERINPUT):
1072: return(1);
1073: default:
1074: break;
1075: }
1076: return(0);
1.1 kristaps 1077: case (NODE_VARIABLELIST):
1078: switch (parent) {
1.16 kristaps 1079: case (NODE_CAUTION):
1.12 kristaps 1080: case (NODE_ENTRY):
1.4 kristaps 1081: case (NODE_ITEMIZEDLIST):
1.8 kristaps 1082: case (NODE_ORDEREDLIST):
1.16 kristaps 1083: case (NODE_NOTE):
1.1 kristaps 1084: case (NODE_PARA):
1085: case (NODE_REFSECT1):
1.7 kristaps 1086: case (NODE_REFSECT2):
1.16 kristaps 1087: case (NODE_REFSECT3):
1088: case (NODE_REFSECTION):
1.1 kristaps 1089: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 1090: case (NODE_TIP):
1.1 kristaps 1091: case (NODE_VARIABLELIST):
1.16 kristaps 1092: case (NODE_WARNING):
1.13 kristaps 1093: return(1);
1094: default:
1095: break;
1096: }
1097: return(0);
1098: case (NODE_VARNAME):
1099: switch (parent) {
1100: case (NODE_CODE):
1101: case (NODE_EMPHASIS):
1102: case (NODE_ENTRY):
1103: case (NODE_FUNCSYNOPSISINFO):
1104: case (NODE_LINK):
1105: case (NODE_PARA):
1106: case (NODE_PROGRAMLISTING):
1.15 kristaps 1107: case (NODE_QUOTE):
1.13 kristaps 1108: case (NODE_REFDESCRIPTOR):
1109: case (NODE_REFENTRYTITLE):
1110: case (NODE_REFNAME):
1111: case (NODE_REFPURPOSE):
1112: case (NODE_SCREEN):
1113: case (NODE_SYNOPSIS):
1114: case (NODE_TERM):
1115: case (NODE_TITLE):
1116: case (NODE_ULINK):
1.1 kristaps 1117: return(1);
1118: default:
1119: break;
1120: }
1121: return(0);
1122: case (NODE_VARLISTENTRY):
1123: return (NODE_VARIABLELIST == parent);
1.16 kristaps 1124: case (NODE_WARNING):
1125: switch (parent) {
1126: case (NODE_CAUTION):
1127: case (NODE_ENTRY):
1128: case (NODE_ITEMIZEDLIST):
1129: case (NODE_LISTITEM):
1130: case (NODE_NOTE):
1131: case (NODE_ORDEREDLIST):
1132: case (NODE_PARA):
1133: case (NODE_REFSECT1):
1134: case (NODE_REFSECT2):
1135: case (NODE_REFSECT3):
1136: case (NODE_REFSECTION):
1137: case (NODE_REFSYNOPSISDIV):
1138: case (NODE_TIP):
1139: case (NODE_VARIABLELIST):
1140: case (NODE_WARNING):
1.17 kristaps 1141: return(1);
1142: default:
1143: break;
1144: }
1145: return(0);
1146: case (NODE_WORDASWORD):
1147: switch (parent) {
1148: case (NODE_EMPHASIS):
1149: case (NODE_ENTRY):
1150: case (NODE_FUNCSYNOPSISINFO):
1151: case (NODE_LINK):
1152: case (NODE_PARA):
1153: case (NODE_PROGRAMLISTING):
1154: case (NODE_QUOTE):
1155: case (NODE_REFDESCRIPTOR):
1156: case (NODE_REFENTRYTITLE):
1157: case (NODE_REFNAME):
1158: case (NODE_REFPURPOSE):
1159: case (NODE_SCREEN):
1160: case (NODE_SYNOPSIS):
1161: case (NODE_TERM):
1162: case (NODE_TITLE):
1163: case (NODE_ULINK):
1.18 ! kristaps 1164: return(1);
! 1165: default:
! 1166: break;
! 1167: }
! 1168: return(0);
! 1169: case (NODE_YEAR):
! 1170: switch (parent) {
! 1171: case (NODE_COPYRIGHT):
1.16 kristaps 1172: return(1);
1173: default:
1174: break;
1175: }
1176: return(0);
1.1 kristaps 1177: case (NODE__MAX):
1178: break;
1179: }
1180:
1181: abort();
1182: return(0);
1183: }
1184:
CVSweb