Annotation of docbook2mdoc/rules.c, Revision 1.20
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.20 ! kristaps 449: case (NODE_INFORMALTABLE):
1.4 kristaps 450: case (NODE_ITEMIZEDLIST):
1.16 kristaps 451: case (NODE_NOTE):
1.8 kristaps 452: case (NODE_ORDEREDLIST):
1.16 kristaps 453: case (NODE_PARA):
1.18 kristaps 454: case (NODE_PROGRAMLISTING):
455: case (NODE_REFENTRY):
1.4 kristaps 456: case (NODE_REFSECT1):
1.7 kristaps 457: case (NODE_REFSECT2):
1.16 kristaps 458: case (NODE_REFSECT3):
459: case (NODE_REFSECTION):
1.4 kristaps 460: case (NODE_REFSYNOPSISDIV):
1.18 kristaps 461: case (NODE_SCREEN):
462: case (NODE_SYNOPSIS):
463: case (NODE_TABLE):
1.4 kristaps 464: case (NODE_VARIABLELIST):
1.16 kristaps 465: case (NODE_WARNING):
1.4 kristaps 466: return(1);
467: default:
468: break;
469: }
470: return(0);
1.18 kristaps 471: case (NODE_ITEMIZEDLIST):
1.11 kristaps 472: switch (parent) {
1.18 kristaps 473: case (NODE_CAUTION):
474: case (NODE_ENTRY):
475: case (NODE_ITEMIZEDLIST):
476: case (NODE_LISTITEM):
477: case (NODE_NOTE):
478: case (NODE_ORDEREDLIST):
479: case (NODE_PARA):
480: case (NODE_REFSECT1):
481: case (NODE_REFSECT2):
482: case (NODE_REFSECT3):
483: case (NODE_REFSECTION):
484: case (NODE_REFSYNOPSISDIV):
485: case (NODE_TIP):
486: case (NODE_VARIABLELIST):
487: case (NODE_WARNING):
1.11 kristaps 488: return(1);
489: default:
490: break;
491: }
492: return(0);
1.2 kristaps 493: case (NODE_LINK):
1.4 kristaps 494: case (NODE_ULINK): /* Synonyms. */
1.2 kristaps 495: switch (parent) {
1.8 kristaps 496: case (NODE_ACRONYM):
1.14 kristaps 497: case (NODE_APPLICATION):
1.2 kristaps 498: case (NODE_ARG):
499: case (NODE_CODE):
500: case (NODE_COMMAND):
1.18 kristaps 501: case (NODE_CONSTANT):
1.2 kristaps 502: case (NODE_EMPHASIS):
1.12 kristaps 503: case (NODE_ENTRY):
1.8 kristaps 504: case (NODE_ENVAR):
1.5 kristaps 505: case (NODE_FILENAME):
1.2 kristaps 506: case (NODE_FUNCDEF):
507: case (NODE_FUNCSYNOPSISINFO):
508: case (NODE_FUNCTION):
1.18 kristaps 509: case (NODE_HOLDER):
1.2 kristaps 510: case (NODE_LINK):
1.6 kristaps 511: case (NODE_LITERAL):
1.2 kristaps 512: case (NODE_MANVOLNUM):
513: case (NODE_OPTION):
514: case (NODE_PARA):
515: case (NODE_PARAMDEF):
516: case (NODE_PARAMETER):
517: case (NODE_PROGRAMLISTING):
1.9 kristaps 518: case (NODE_PROMPT):
1.15 kristaps 519: case (NODE_QUOTE):
1.2 kristaps 520: case (NODE_REFDESCRIPTOR):
521: case (NODE_REFENTRYTITLE):
522: case (NODE_REFMISCINFO):
523: case (NODE_REFNAME):
524: case (NODE_REPLACEABLE):
1.9 kristaps 525: case (NODE_SCREEN):
1.2 kristaps 526: case (NODE_SYNOPSIS):
527: case (NODE_TERM):
1.19 kristaps 528: case (NODE_TRADEMARK):
1.2 kristaps 529: case (NODE_ULINK):
1.10 kristaps 530: case (NODE_USERINPUT):
1.13 kristaps 531: case (NODE_VARNAME):
1.17 kristaps 532: case (NODE_WORDASWORD):
1.18 kristaps 533: case (NODE_YEAR):
1.1 kristaps 534: return(1);
535: default:
536: break;
537: }
538: return(0);
539: case (NODE_LISTITEM):
1.4 kristaps 540: switch (parent) {
541: case (NODE_ITEMIZEDLIST):
1.8 kristaps 542: case (NODE_ORDEREDLIST):
1.4 kristaps 543: case (NODE_VARLISTENTRY):
544: return(1);
545: default:
546: break;
547: }
548: return(0);
1.6 kristaps 549: case (NODE_LITERAL):
550: switch (parent) {
551: case (NODE_EMPHASIS):
1.12 kristaps 552: case (NODE_ENTRY):
1.6 kristaps 553: case (NODE_FUNCSYNOPSISINFO):
554: case (NODE_LINK):
555: case (NODE_PARA):
556: case (NODE_PROGRAMLISTING):
1.15 kristaps 557: case (NODE_QUOTE):
1.6 kristaps 558: case (NODE_REFDESCRIPTOR):
559: case (NODE_REFENTRYTITLE):
560: case (NODE_REFNAME):
561: case (NODE_REFPURPOSE):
1.9 kristaps 562: case (NODE_SCREEN):
1.6 kristaps 563: case (NODE_SYNOPSIS):
564: case (NODE_TERM):
565: case (NODE_TITLE):
566: case (NODE_ULINK):
1.10 kristaps 567: case (NODE_USERINPUT):
1.6 kristaps 568: return(1);
569: default:
570: break;
571: }
572: return(0);
1.1 kristaps 573: case (NODE_MANVOLNUM):
574: switch (parent) {
575: case (NODE_CITEREFENTRY):
576: case (NODE_REFMETA):
577: return(1);
578: default:
579: break;
580: }
581: return(0);
1.16 kristaps 582: case (NODE_NOTE):
583: switch (parent) {
584: case (NODE_CAUTION):
585: case (NODE_ENTRY):
586: case (NODE_ITEMIZEDLIST):
587: case (NODE_LISTITEM):
588: case (NODE_NOTE):
589: case (NODE_ORDEREDLIST):
590: case (NODE_PARA):
591: case (NODE_REFSECT1):
592: case (NODE_REFSECT2):
593: case (NODE_REFSECT3):
594: case (NODE_REFSECTION):
595: case (NODE_REFSYNOPSISDIV):
596: case (NODE_TIP):
597: case (NODE_VARIABLELIST):
598: case (NODE_WARNING):
599: return(1);
600: default:
601: break;
602: }
603: return(0);
1.1 kristaps 604: case (NODE_OPTION):
605: switch (parent) {
606: case (NODE_ARG):
607: case (NODE_EMPHASIS):
1.12 kristaps 608: case (NODE_ENTRY):
1.1 kristaps 609: case (NODE_FUNCSYNOPSISINFO):
1.11 kristaps 610: case (NODE_GROUP):
1.2 kristaps 611: case (NODE_LINK):
1.1 kristaps 612: case (NODE_PARA):
613: case (NODE_PROGRAMLISTING):
1.15 kristaps 614: case (NODE_QUOTE):
1.1 kristaps 615: case (NODE_REFDESCRIPTOR):
616: case (NODE_REFENTRYTITLE):
617: case (NODE_REFNAME):
618: case (NODE_REFPURPOSE):
1.9 kristaps 619: case (NODE_SCREEN):
1.1 kristaps 620: case (NODE_SYNOPSIS):
621: case (NODE_TERM):
622: case (NODE_TITLE):
1.2 kristaps 623: case (NODE_ULINK):
1.10 kristaps 624: case (NODE_USERINPUT):
1.1 kristaps 625: return(1);
626: default:
627: break;
628: }
629: return(0);
1.8 kristaps 630: case (NODE_ORDEREDLIST):
631: switch (parent) {
1.16 kristaps 632: case (NODE_CAUTION):
1.12 kristaps 633: case (NODE_ENTRY):
1.8 kristaps 634: case (NODE_ITEMIZEDLIST):
635: case (NODE_LISTITEM):
636: case (NODE_ORDEREDLIST):
1.16 kristaps 637: case (NODE_NOTE):
1.8 kristaps 638: case (NODE_PARA):
639: case (NODE_REFSECT1):
640: case (NODE_REFSECT2):
1.16 kristaps 641: case (NODE_REFSECT3):
642: case (NODE_REFSECTION):
1.8 kristaps 643: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 644: case (NODE_TIP):
1.8 kristaps 645: case (NODE_VARIABLELIST):
1.16 kristaps 646: case (NODE_WARNING):
1.8 kristaps 647: return(1);
648: default:
649: break;
650: }
651: return(0);
1.1 kristaps 652: case (NODE_PARA):
653: switch (parent) {
1.16 kristaps 654: case (NODE_CAUTION):
1.12 kristaps 655: case (NODE_ENTRY):
1.4 kristaps 656: case (NODE_ITEMIZEDLIST):
1.1 kristaps 657: case (NODE_LISTITEM):
1.16 kristaps 658: case (NODE_NOTE):
1.8 kristaps 659: case (NODE_ORDEREDLIST):
1.1 kristaps 660: case (NODE_REFSECT1):
1.7 kristaps 661: case (NODE_REFSECT2):
1.16 kristaps 662: case (NODE_REFSECT3):
663: case (NODE_REFSECTION):
1.1 kristaps 664: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 665: case (NODE_TIP):
1.1 kristaps 666: case (NODE_VARIABLELIST):
1.16 kristaps 667: case (NODE_WARNING):
1.1 kristaps 668: return(1);
669: default:
670: break;
671: }
672: return(0);
673: case (NODE_PARAMDEF):
674: return(NODE_FUNCPROTOTYPE == parent);
675: case (NODE_PARAMETER):
676: switch (parent) {
677: case (NODE_CODE):
1.12 kristaps 678: case (NODE_ENTRY):
1.1 kristaps 679: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 680: case (NODE_LINK):
1.1 kristaps 681: case (NODE_PARA):
682: case (NODE_PARAMDEF):
683: case (NODE_PROGRAMLISTING):
1.15 kristaps 684: case (NODE_QUOTE):
1.1 kristaps 685: case (NODE_REFDESCRIPTOR):
686: case (NODE_REFENTRYTITLE):
687: case (NODE_REFNAME):
688: case (NODE_REFPURPOSE):
1.9 kristaps 689: case (NODE_SCREEN):
1.1 kristaps 690: case (NODE_SYNOPSIS):
691: case (NODE_TERM):
692: case (NODE_TITLE):
1.2 kristaps 693: case (NODE_ULINK):
1.10 kristaps 694: case (NODE_USERINPUT):
1.1 kristaps 695: return(1);
696: default:
697: break;
698: }
699: return(0);
700: case (NODE_PROGRAMLISTING):
701: switch (parent) {
1.16 kristaps 702: case (NODE_CAUTION):
1.12 kristaps 703: case (NODE_ENTRY):
1.4 kristaps 704: case (NODE_ITEMIZEDLIST):
1.1 kristaps 705: case (NODE_LISTITEM):
1.8 kristaps 706: case (NODE_ORDEREDLIST):
1.16 kristaps 707: case (NODE_NOTE):
1.1 kristaps 708: case (NODE_PARA):
709: case (NODE_REFSECT1):
1.7 kristaps 710: case (NODE_REFSECT2):
1.16 kristaps 711: case (NODE_REFSECT3):
712: case (NODE_REFSECTION):
1.1 kristaps 713: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 714: case (NODE_TIP):
1.9 kristaps 715: case (NODE_VARIABLELIST):
1.16 kristaps 716: case (NODE_WARNING):
1.9 kristaps 717: return(1);
718: default:
719: break;
720: }
721: return(0);
722: case (NODE_PROMPT):
723: switch (parent) {
724: case (NODE_EMPHASIS):
1.12 kristaps 725: case (NODE_ENTRY):
1.9 kristaps 726: case (NODE_FUNCSYNOPSISINFO):
727: case (NODE_LINK):
728: case (NODE_PARA):
729: case (NODE_PROGRAMLISTING):
1.15 kristaps 730: case (NODE_QUOTE):
1.9 kristaps 731: case (NODE_REFDESCRIPTOR):
732: case (NODE_REFENTRYTITLE):
733: case (NODE_REFNAME):
734: case (NODE_REFPURPOSE):
735: case (NODE_SCREEN):
736: case (NODE_SYNOPSIS):
737: case (NODE_TERM):
738: case (NODE_TITLE):
739: case (NODE_ULINK):
1.10 kristaps 740: case (NODE_USERINPUT):
1.1 kristaps 741: return(1);
742: default:
743: break;
744: }
745: return(0);
1.15 kristaps 746: case (NODE_QUOTE):
747: switch (parent) {
748: case (NODE_EMPHASIS):
749: case (NODE_ENTRY):
750: case (NODE_FUNCSYNOPSISINFO):
751: case (NODE_LINK):
752: case (NODE_PARA):
753: case (NODE_PROGRAMLISTING):
754: case (NODE_QUOTE):
755: case (NODE_REFDESCRIPTOR):
756: case (NODE_REFENTRYTITLE):
757: case (NODE_REFNAME):
758: case (NODE_REFPURPOSE):
759: case (NODE_SCREEN):
760: case (NODE_SYNOPSIS):
761: case (NODE_TERM):
762: case (NODE_TITLE):
763: case (NODE_ULINK):
764: return(1);
765: default:
766: break;
767: }
768: return(0);
1.1 kristaps 769: case (NODE_REFCLASS):
770: return(parent == NODE_REFNAMEDIV);
771: case (NODE_REFDESCRIPTOR):
772: return(parent == NODE_REFNAMEDIV);
773: case (NODE_REFENTRY):
774: return(parent == NODE_ROOT);
1.3 kristaps 775: case (NODE_REFENTRYINFO):
776: return(parent == NODE_REFENTRY);
1.1 kristaps 777: case (NODE_REFENTRYTITLE):
778: switch (parent) {
779: case (NODE_CITEREFENTRY):
780: case (NODE_REFMETA):
781: return(1);
782: default:
783: break;
784: }
785: case (NODE_REFMETA):
786: return(parent == NODE_REFENTRY);
787: case (NODE_REFMISCINFO):
788: return(parent == NODE_REFMETA);
789: case (NODE_REFNAME):
790: return(parent == NODE_REFNAMEDIV);
791: case (NODE_REFNAMEDIV):
792: return(parent == NODE_REFENTRY);
793: case (NODE_REFPURPOSE):
794: return(parent == NODE_REFNAMEDIV);
795: case (NODE_REFSECT1):
796: return(parent == NODE_REFENTRY);
1.7 kristaps 797: case (NODE_REFSECT2):
798: switch (parent) {
799: case (NODE_REFSYNOPSISDIV):
800: case (NODE_REFSECT1):
801: return(1);
802: default:
803: break;
804: }
805: return(0);
1.16 kristaps 806: case (NODE_REFSECT3):
807: return(parent == NODE_REFSECT2);
808: case (NODE_REFSECTION):
809: switch (parent) {
810: case (NODE_REFENTRY):
811: case (NODE_REFSECTION):
812: case (NODE_REFSYNOPSISDIV):
813: return(1);
814: default:
815: break;
816: }
817: return(0);
1.1 kristaps 818: case (NODE_REFSYNOPSISDIV):
819: return(parent == NODE_REFENTRY);
820: case (NODE_REPLACEABLE):
821: switch (parent) {
1.8 kristaps 822: case (NODE_ACRONYM):
1.14 kristaps 823: case (NODE_APPLICATION):
1.1 kristaps 824: case (NODE_ARG):
825: case (NODE_CODE):
826: case (NODE_COMMAND):
1.18 kristaps 827: case (NODE_CONSTANT):
1.1 kristaps 828: case (NODE_EMPHASIS):
1.12 kristaps 829: case (NODE_ENTRY):
1.8 kristaps 830: case (NODE_ENVAR):
1.5 kristaps 831: case (NODE_FILENAME):
1.1 kristaps 832: case (NODE_FUNCDEF):
833: case (NODE_FUNCSYNOPSISINFO):
834: case (NODE_FUNCTION):
1.11 kristaps 835: case (NODE_GROUP):
1.18 kristaps 836: case (NODE_HOLDER):
1.2 kristaps 837: case (NODE_LINK):
1.6 kristaps 838: case (NODE_LITERAL):
1.1 kristaps 839: case (NODE_MANVOLNUM):
840: case (NODE_OPTION):
841: case (NODE_PARA):
842: case (NODE_PARAMDEF):
843: case (NODE_PARAMETER):
844: case (NODE_PROGRAMLISTING):
1.9 kristaps 845: case (NODE_PROMPT):
1.15 kristaps 846: case (NODE_QUOTE):
1.1 kristaps 847: case (NODE_REFDESCRIPTOR):
848: case (NODE_REFENTRYTITLE):
849: case (NODE_REFMISCINFO):
850: case (NODE_REFNAME):
851: case (NODE_REFPURPOSE):
852: case (NODE_REPLACEABLE):
1.9 kristaps 853: case (NODE_SCREEN):
1.17 kristaps 854: case (NODE_SGMLTAG):
1.1 kristaps 855: case (NODE_SYNOPSIS):
856: case (NODE_TERM):
857: case (NODE_TITLE):
1.19 kristaps 858: case (NODE_TRADEMARK):
1.2 kristaps 859: case (NODE_ULINK):
1.10 kristaps 860: case (NODE_USERINPUT):
1.13 kristaps 861: case (NODE_VARNAME):
1.17 kristaps 862: case (NODE_WORDASWORD):
1.18 kristaps 863: case (NODE_YEAR):
1.1 kristaps 864: default:
865: return(1);
1.6 kristaps 866: }
867: return(0);
1.12 kristaps 868: case (NODE_ROW):
869: switch (parent) {
870: case (NODE_TBODY):
871: case (NODE_TFOOT):
872: case (NODE_THEAD):
873: return(1);
874: default:
875: break;
876: }
877: return(0);
1.6 kristaps 878: case (NODE_SBR):
879: switch (parent) {
880: case (NODE_ARG):
881: case (NODE_CMDSYNOPSIS):
1.11 kristaps 882: case (NODE_GROUP):
1.9 kristaps 883: return(1);
884: default:
885: break;
886: }
887: return(0);
888: case (NODE_SCREEN):
889: switch (parent) {
1.16 kristaps 890: case (NODE_CAUTION):
1.12 kristaps 891: case (NODE_ENTRY):
1.9 kristaps 892: case (NODE_ITEMIZEDLIST):
893: case (NODE_LISTITEM):
894: case (NODE_ORDEREDLIST):
1.16 kristaps 895: case (NODE_NOTE):
1.9 kristaps 896: case (NODE_PARA):
897: case (NODE_REFSECT1):
898: case (NODE_REFSECT2):
1.16 kristaps 899: case (NODE_REFSECT3):
900: case (NODE_REFSECTION):
1.9 kristaps 901: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 902: case (NODE_TIP):
1.9 kristaps 903: case (NODE_VARIABLELIST):
1.16 kristaps 904: case (NODE_WARNING):
1.6 kristaps 905: return(1);
906: default:
907: break;
1.1 kristaps 908: }
909: return(0);
1.17 kristaps 910: case (NODE_SGMLTAG):
911: switch (parent) {
912: case (NODE_APPLICATION):
913: case (NODE_CODE):
914: case (NODE_COMMAND):
915: case (NODE_EMPHASIS):
916: case (NODE_ENTRY):
917: case (NODE_FILENAME):
918: case (NODE_FUNCSYNOPSISINFO):
919: case (NODE_FUNCTION):
920: case (NODE_LINK):
921: case (NODE_LITERAL):
922: case (NODE_OPTION):
923: case (NODE_PARA):
924: case (NODE_PARAMETER):
925: case (NODE_PROGRAMLISTING):
926: case (NODE_QUOTE):
927: case (NODE_REFDESCRIPTOR):
928: case (NODE_REFENTRYTITLE):
929: case (NODE_REFNAME):
930: case (NODE_REFPURPOSE):
931: case (NODE_SCREEN):
932: case (NODE_SYNOPSIS):
933: case (NODE_TERM):
934: case (NODE_TITLE):
935: case (NODE_USERINPUT):
936: return(1);
937: default:
938: break;
939: }
940: return(0);
1.1 kristaps 941: case (NODE_STRUCTNAME):
942: switch (parent) {
943: case (NODE_CODE):
944: case (NODE_FUNCSYNOPSISINFO):
945: case (NODE_FUNCTION):
946: case (NODE_OPTION):
947: case (NODE_PARA):
948: case (NODE_PARAMETER):
949: case (NODE_PROGRAMLISTING):
950: case (NODE_REFDESCRIPTOR):
951: case (NODE_REFENTRYTITLE):
952: case (NODE_REFNAME):
953: case (NODE_REFPURPOSE):
954: case (NODE_SYNOPSIS):
955: case (NODE_TITLE):
956: return(1);
957: default:
958: break;
959: }
960: return(0);
961: case (NODE_SYNOPSIS):
962: switch (parent) {
1.16 kristaps 963: case (NODE_CAUTION):
1.12 kristaps 964: case (NODE_ENTRY):
1.4 kristaps 965: case (NODE_ITEMIZEDLIST):
1.1 kristaps 966: case (NODE_LISTITEM):
1.8 kristaps 967: case (NODE_ORDEREDLIST):
1.16 kristaps 968: case (NODE_NOTE):
969: case (NODE_PARA):
1.1 kristaps 970: case (NODE_REFSYNOPSISDIV):
971: case (NODE_REFSECT1):
1.7 kristaps 972: case (NODE_REFSECT2):
1.16 kristaps 973: case (NODE_REFSECT3):
974: case (NODE_REFSECTION):
975: case (NODE_TIP):
976: case (NODE_WARNING):
1.1 kristaps 977: return(1);
978: default:
979: break;
980: }
981: return(0);
1.20 ! kristaps 982: case (NODE_INFORMALTABLE):
! 983: /* FALLTHROUGH */
1.12 kristaps 984: case (NODE_TABLE):
985: switch (parent) {
1.16 kristaps 986: case (NODE_CAUTION):
1.12 kristaps 987: case (NODE_ENTRY):
988: case (NODE_ITEMIZEDLIST):
989: case (NODE_LISTITEM):
990: case (NODE_ORDEREDLIST):
1.16 kristaps 991: case (NODE_NOTE):
1.12 kristaps 992: case (NODE_PARA):
993: case (NODE_REFSECT1):
1.16 kristaps 994: case (NODE_REFSECT2):
995: case (NODE_REFSECT3):
996: case (NODE_REFSECTION):
1.12 kristaps 997: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 998: case (NODE_TIP):
1.12 kristaps 999: case (NODE_VARIABLELIST):
1.16 kristaps 1000: case (NODE_WARNING):
1.12 kristaps 1001: return(1);
1002: default:
1003: break;
1004: }
1005: return(0);
1006: case (NODE_TBODY):
1007: return(NODE_TGROUP == parent);
1008: case (NODE_TFOOT):
1009: return(NODE_TGROUP == parent);
1010: case (NODE_TGROUP):
1.20 ! kristaps 1011: switch (parent) {
! 1012: case (NODE_INFORMALTABLE):
! 1013: case (NODE_TABLE):
! 1014: return(1);
! 1015: default:
! 1016: break;
! 1017: }
! 1018: return(0);
1.12 kristaps 1019: case (NODE_THEAD):
1020: return(NODE_TGROUP == parent);
1.1 kristaps 1021: case (NODE_TITLE):
1022: switch (parent) {
1.18 kristaps 1023: case (NODE_INFO):
1.20 ! kristaps 1024: case (NODE_INFORMALTABLE):
1.4 kristaps 1025: case (NODE_ITEMIZEDLIST):
1.8 kristaps 1026: case (NODE_ORDEREDLIST):
1.3 kristaps 1027: case (NODE_REFENTRYINFO):
1.1 kristaps 1028: case (NODE_REFSECT1):
1.7 kristaps 1029: case (NODE_REFSECT2):
1.16 kristaps 1030: case (NODE_REFSECT3):
1031: case (NODE_REFSECTION):
1.1 kristaps 1032: case (NODE_REFSYNOPSISDIV):
1.12 kristaps 1033: case (NODE_TABLE):
1.1 kristaps 1034: case (NODE_VARIABLELIST):
1035: return(1);
1036: default:
1037: break;
1038: }
1039: return(0);
1040: case (NODE_TERM):
1041: return(NODE_VARLISTENTRY == parent);
1042: case (NODE_TEXT):
1043: return(1);
1.16 kristaps 1044: case (NODE_TIP):
1045: switch (parent) {
1046: case (NODE_CAUTION):
1047: case (NODE_ENTRY):
1048: case (NODE_ITEMIZEDLIST):
1049: case (NODE_LISTITEM):
1050: case (NODE_NOTE):
1051: case (NODE_ORDEREDLIST):
1052: case (NODE_PARA):
1053: case (NODE_REFSECT1):
1054: case (NODE_REFSECT2):
1055: case (NODE_REFSECT3):
1056: case (NODE_REFSECTION):
1057: case (NODE_REFSYNOPSISDIV):
1058: case (NODE_TIP):
1059: case (NODE_VARIABLELIST):
1060: case (NODE_WARNING):
1.19 kristaps 1061: return(1);
1062: default:
1063: break;
1064: }
1065: return(0);
1066: case (NODE_TRADEMARK):
1067: switch (parent) {
1068: case (NODE_ACRONYM):
1069: case (NODE_EMPHASIS):
1070: case (NODE_ENTRY):
1071: case (NODE_FUNCSYNOPSISINFO):
1072: case (NODE_LINK):
1073: case (NODE_ULINK):
1074: case (NODE_PARA):
1075: case (NODE_PROGRAMLISTING):
1076: case (NODE_QUOTE):
1077: case (NODE_REFDESCRIPTOR):
1078: case (NODE_REFENTRYTITLE):
1079: case (NODE_REFNAME):
1080: case (NODE_REFPURPOSE):
1081: case (NODE_SCREEN):
1082: case (NODE_SYNOPSIS):
1083: case (NODE_TERM):
1084: case (NODE_TITLE):
1.16 kristaps 1085: return(1);
1086: default:
1087: break;
1088: }
1089: return(0);
1.10 kristaps 1090: case (NODE_USERINPUT):
1091: switch (parent) {
1092: case (NODE_EMPHASIS):
1.12 kristaps 1093: case (NODE_ENTRY):
1.10 kristaps 1094: case (NODE_FUNCSYNOPSISINFO):
1095: case (NODE_LINK):
1096: case (NODE_PARA):
1097: case (NODE_PROGRAMLISTING):
1.15 kristaps 1098: case (NODE_QUOTE):
1.10 kristaps 1099: case (NODE_REFDESCRIPTOR):
1100: case (NODE_REFENTRYTITLE):
1101: case (NODE_REFNAME):
1102: case (NODE_REFPURPOSE):
1103: case (NODE_SCREEN):
1104: case (NODE_SYNOPSIS):
1105: case (NODE_TERM):
1106: case (NODE_TITLE):
1107: case (NODE_ULINK):
1108: case (NODE_USERINPUT):
1109: return(1);
1110: default:
1111: break;
1112: }
1113: return(0);
1.1 kristaps 1114: case (NODE_VARIABLELIST):
1115: switch (parent) {
1.16 kristaps 1116: case (NODE_CAUTION):
1.12 kristaps 1117: case (NODE_ENTRY):
1.4 kristaps 1118: case (NODE_ITEMIZEDLIST):
1.8 kristaps 1119: case (NODE_ORDEREDLIST):
1.16 kristaps 1120: case (NODE_NOTE):
1.1 kristaps 1121: case (NODE_PARA):
1122: case (NODE_REFSECT1):
1.7 kristaps 1123: case (NODE_REFSECT2):
1.16 kristaps 1124: case (NODE_REFSECT3):
1125: case (NODE_REFSECTION):
1.1 kristaps 1126: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 1127: case (NODE_TIP):
1.1 kristaps 1128: case (NODE_VARIABLELIST):
1.16 kristaps 1129: case (NODE_WARNING):
1.13 kristaps 1130: return(1);
1131: default:
1132: break;
1133: }
1134: return(0);
1135: case (NODE_VARNAME):
1136: switch (parent) {
1137: case (NODE_CODE):
1138: case (NODE_EMPHASIS):
1139: case (NODE_ENTRY):
1140: case (NODE_FUNCSYNOPSISINFO):
1141: case (NODE_LINK):
1142: case (NODE_PARA):
1143: case (NODE_PROGRAMLISTING):
1.15 kristaps 1144: case (NODE_QUOTE):
1.13 kristaps 1145: case (NODE_REFDESCRIPTOR):
1146: case (NODE_REFENTRYTITLE):
1147: case (NODE_REFNAME):
1148: case (NODE_REFPURPOSE):
1149: case (NODE_SCREEN):
1150: case (NODE_SYNOPSIS):
1151: case (NODE_TERM):
1152: case (NODE_TITLE):
1153: case (NODE_ULINK):
1.1 kristaps 1154: return(1);
1155: default:
1156: break;
1157: }
1158: return(0);
1159: case (NODE_VARLISTENTRY):
1160: return (NODE_VARIABLELIST == parent);
1.16 kristaps 1161: case (NODE_WARNING):
1162: switch (parent) {
1163: case (NODE_CAUTION):
1164: case (NODE_ENTRY):
1165: case (NODE_ITEMIZEDLIST):
1166: case (NODE_LISTITEM):
1167: case (NODE_NOTE):
1168: case (NODE_ORDEREDLIST):
1169: case (NODE_PARA):
1170: case (NODE_REFSECT1):
1171: case (NODE_REFSECT2):
1172: case (NODE_REFSECT3):
1173: case (NODE_REFSECTION):
1174: case (NODE_REFSYNOPSISDIV):
1175: case (NODE_TIP):
1176: case (NODE_VARIABLELIST):
1177: case (NODE_WARNING):
1.17 kristaps 1178: return(1);
1179: default:
1180: break;
1181: }
1182: return(0);
1183: case (NODE_WORDASWORD):
1184: switch (parent) {
1185: case (NODE_EMPHASIS):
1186: case (NODE_ENTRY):
1187: case (NODE_FUNCSYNOPSISINFO):
1188: case (NODE_LINK):
1189: case (NODE_PARA):
1190: case (NODE_PROGRAMLISTING):
1191: case (NODE_QUOTE):
1192: case (NODE_REFDESCRIPTOR):
1193: case (NODE_REFENTRYTITLE):
1194: case (NODE_REFNAME):
1195: case (NODE_REFPURPOSE):
1196: case (NODE_SCREEN):
1197: case (NODE_SYNOPSIS):
1198: case (NODE_TERM):
1199: case (NODE_TITLE):
1200: case (NODE_ULINK):
1.18 kristaps 1201: return(1);
1202: default:
1203: break;
1204: }
1205: return(0);
1206: case (NODE_YEAR):
1207: switch (parent) {
1208: case (NODE_COPYRIGHT):
1.16 kristaps 1209: return(1);
1210: default:
1211: break;
1212: }
1213: return(0);
1.1 kristaps 1214: case (NODE__MAX):
1215: break;
1216: }
1217:
1218: abort();
1219: return(0);
1220: }
1221:
CVSweb