Annotation of docbook2mdoc/rules.c, Revision 1.17
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.3 kristaps 243: case (NODE_DATE):
244: switch (parent) {
245: case (NODE_EMPHASIS):
1.12 kristaps 246: case (NODE_ENTRY):
1.3 kristaps 247: case (NODE_FUNCSYNOPSISINFO):
248: case (NODE_LINK):
249: case (NODE_PARA):
250: case (NODE_PROGRAMLISTING):
1.15 kristaps 251: case (NODE_QUOTE):
1.3 kristaps 252: case (NODE_REFDESCRIPTOR):
253: case (NODE_REFENTRYINFO):
254: case (NODE_REFENTRYTITLE):
255: case (NODE_REFNAME):
256: case (NODE_REFPURPOSE):
1.9 kristaps 257: case (NODE_SCREEN):
1.3 kristaps 258: case (NODE_SYNOPSIS):
259: case (NODE_TITLE):
260: case (NODE_ULINK):
261: return(1);
262: default:
263: break;
264: }
265: return(0);
1.1 kristaps 266: case (NODE_EMPHASIS):
267: switch (parent) {
268: case (NODE_EMPHASIS):
1.12 kristaps 269: case (NODE_ENTRY):
1.1 kristaps 270: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 271: case (NODE_LINK):
1.1 kristaps 272: case (NODE_PARA):
273: case (NODE_PROGRAMLISTING):
1.15 kristaps 274: case (NODE_QUOTE):
1.1 kristaps 275: case (NODE_REFDESCRIPTOR):
276: case (NODE_REFENTRYTITLE):
277: case (NODE_REFNAME):
278: case (NODE_REFPURPOSE):
1.9 kristaps 279: case (NODE_SCREEN):
1.1 kristaps 280: case (NODE_SYNOPSIS):
281: case (NODE_TERM):
282: case (NODE_TITLE):
1.2 kristaps 283: case (NODE_ULINK):
1.1 kristaps 284: return(1);
285: default:
286: break;
287: }
288: return(0);
1.12 kristaps 289: case (NODE_ENTRY):
290: return(NODE_ROW == parent);
1.8 kristaps 291: case (NODE_ENVAR):
292: switch (parent) {
293: case (NODE_EMPHASIS):
1.12 kristaps 294: case (NODE_ENTRY):
1.8 kristaps 295: case (NODE_FUNCSYNOPSISINFO):
296: case (NODE_LINK):
297: case (NODE_PARA):
298: case (NODE_PROGRAMLISTING):
1.15 kristaps 299: case (NODE_QUOTE):
1.8 kristaps 300: case (NODE_REFDESCRIPTOR):
301: case (NODE_REFENTRYTITLE):
302: case (NODE_REFNAME):
303: case (NODE_REFPURPOSE):
1.9 kristaps 304: case (NODE_SCREEN):
1.8 kristaps 305: case (NODE_SYNOPSIS):
306: case (NODE_TERM):
307: case (NODE_TITLE):
308: case (NODE_ULINK):
1.10 kristaps 309: case (NODE_USERINPUT):
1.8 kristaps 310: return(1);
311: default:
312: break;
313: }
314: return(0);
1.5 kristaps 315: case (NODE_FILENAME):
316: switch (parent) {
317: case (NODE_EMPHASIS):
1.12 kristaps 318: case (NODE_ENTRY):
1.5 kristaps 319: case (NODE_FUNCSYNOPSISINFO):
320: case (NODE_LINK):
321: case (NODE_PARA):
322: case (NODE_PROGRAMLISTING):
1.15 kristaps 323: case (NODE_QUOTE):
1.5 kristaps 324: case (NODE_REFDESCRIPTOR):
325: case (NODE_REFENTRYTITLE):
326: case (NODE_REFNAME):
327: case (NODE_REFPURPOSE):
1.9 kristaps 328: case (NODE_SCREEN):
1.5 kristaps 329: case (NODE_SYNOPSIS):
330: case (NODE_TERM):
331: case (NODE_TITLE):
332: case (NODE_ULINK):
1.10 kristaps 333: case (NODE_USERINPUT):
1.5 kristaps 334: return(1);
335: default:
336: break;
337: }
338: return(0);
1.1 kristaps 339: case (NODE_FUNCDEF):
340: return(NODE_FUNCPROTOTYPE == parent);
341: case (NODE_FUNCPROTOTYPE):
342: return(NODE_FUNCSYNOPSIS == parent);
343: case (NODE_FUNCSYNOPSIS):
344: switch (parent) {
1.16 kristaps 345: case (NODE_CAUTION):
1.12 kristaps 346: case (NODE_ENTRY):
1.4 kristaps 347: case (NODE_ITEMIZEDLIST):
1.1 kristaps 348: case (NODE_LISTITEM):
1.8 kristaps 349: case (NODE_ORDEREDLIST):
1.16 kristaps 350: case (NODE_NOTE):
1.1 kristaps 351: case (NODE_PARA):
352: case (NODE_REFSECT1):
1.7 kristaps 353: case (NODE_REFSECT2):
1.16 kristaps 354: case (NODE_REFSECT3):
355: case (NODE_REFSECTION):
1.1 kristaps 356: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 357: case (NODE_TIP):
1.1 kristaps 358: case (NODE_VARIABLELIST):
1.16 kristaps 359: case (NODE_WARNING):
1.1 kristaps 360: return(1);
361: default:
362: break;
363: }
364: return(0);
365: case (NODE_FUNCSYNOPSISINFO):
366: return(NODE_FUNCSYNOPSIS == parent);
367: case (NODE_FUNCTION):
368: switch (parent) {
369: case (NODE_CODE):
370: case (NODE_EMPHASIS):
1.12 kristaps 371: case (NODE_ENTRY):
1.1 kristaps 372: case (NODE_FUNCDEF):
373: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 374: case (NODE_LINK):
1.1 kristaps 375: case (NODE_PARA):
376: case (NODE_PROGRAMLISTING):
1.15 kristaps 377: case (NODE_QUOTE):
1.1 kristaps 378: case (NODE_REFDESCRIPTOR):
379: case (NODE_REFENTRYTITLE):
380: case (NODE_REFNAME):
381: case (NODE_REFPURPOSE):
1.9 kristaps 382: case (NODE_SCREEN):
1.1 kristaps 383: case (NODE_SYNOPSIS):
384: case (NODE_TERM):
385: case (NODE_TITLE):
1.2 kristaps 386: case (NODE_ULINK):
387: return(1);
388: default:
389: break;
390: }
391: return(0);
1.4 kristaps 392: case (NODE_ITEMIZEDLIST):
393: switch (parent) {
1.16 kristaps 394: case (NODE_CAUTION):
1.12 kristaps 395: case (NODE_ENTRY):
1.4 kristaps 396: case (NODE_ITEMIZEDLIST):
397: case (NODE_LISTITEM):
1.16 kristaps 398: case (NODE_NOTE):
1.8 kristaps 399: case (NODE_ORDEREDLIST):
1.16 kristaps 400: case (NODE_PARA):
1.4 kristaps 401: case (NODE_REFSECT1):
1.7 kristaps 402: case (NODE_REFSECT2):
1.16 kristaps 403: case (NODE_REFSECT3):
404: case (NODE_REFSECTION):
1.4 kristaps 405: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 406: case (NODE_TIP):
1.4 kristaps 407: case (NODE_VARIABLELIST):
1.16 kristaps 408: case (NODE_WARNING):
1.4 kristaps 409: return(1);
410: default:
411: break;
412: }
413: return(0);
1.11 kristaps 414: case (NODE_GROUP):
415: switch (parent) {
416: case (NODE_ARG):
417: case (NODE_CMDSYNOPSIS):
418: case (NODE_GROUP):
419: return(1);
420: default:
421: break;
422: }
423: return(0);
1.2 kristaps 424: case (NODE_LINK):
1.4 kristaps 425: case (NODE_ULINK): /* Synonyms. */
1.2 kristaps 426: switch (parent) {
1.8 kristaps 427: case (NODE_ACRONYM):
1.14 kristaps 428: case (NODE_APPLICATION):
1.2 kristaps 429: case (NODE_ARG):
430: case (NODE_CODE):
431: case (NODE_COMMAND):
432: case (NODE_EMPHASIS):
1.12 kristaps 433: case (NODE_ENTRY):
1.8 kristaps 434: case (NODE_ENVAR):
1.5 kristaps 435: case (NODE_FILENAME):
1.2 kristaps 436: case (NODE_FUNCDEF):
437: case (NODE_FUNCSYNOPSISINFO):
438: case (NODE_FUNCTION):
439: case (NODE_LINK):
1.6 kristaps 440: case (NODE_LITERAL):
1.2 kristaps 441: case (NODE_MANVOLNUM):
442: case (NODE_OPTION):
443: case (NODE_PARA):
444: case (NODE_PARAMDEF):
445: case (NODE_PARAMETER):
446: case (NODE_PROGRAMLISTING):
1.9 kristaps 447: case (NODE_PROMPT):
1.15 kristaps 448: case (NODE_QUOTE):
1.2 kristaps 449: case (NODE_REFDESCRIPTOR):
450: case (NODE_REFENTRYTITLE):
451: case (NODE_REFMISCINFO):
452: case (NODE_REFNAME):
453: case (NODE_REPLACEABLE):
1.9 kristaps 454: case (NODE_SCREEN):
1.2 kristaps 455: case (NODE_SYNOPSIS):
456: case (NODE_TERM):
457: case (NODE_ULINK):
1.10 kristaps 458: case (NODE_USERINPUT):
1.13 kristaps 459: case (NODE_VARNAME):
1.17 ! kristaps 460: case (NODE_WORDASWORD):
1.1 kristaps 461: return(1);
462: default:
463: break;
464: }
465: return(0);
466: case (NODE_LISTITEM):
1.4 kristaps 467: switch (parent) {
468: case (NODE_ITEMIZEDLIST):
1.8 kristaps 469: case (NODE_ORDEREDLIST):
1.4 kristaps 470: case (NODE_VARLISTENTRY):
471: return(1);
472: default:
473: break;
474: }
475: return(0);
1.6 kristaps 476: case (NODE_LITERAL):
477: switch (parent) {
478: case (NODE_EMPHASIS):
1.12 kristaps 479: case (NODE_ENTRY):
1.6 kristaps 480: case (NODE_FUNCSYNOPSISINFO):
481: case (NODE_LINK):
482: case (NODE_PARA):
483: case (NODE_PROGRAMLISTING):
1.15 kristaps 484: case (NODE_QUOTE):
1.6 kristaps 485: case (NODE_REFDESCRIPTOR):
486: case (NODE_REFENTRYTITLE):
487: case (NODE_REFNAME):
488: case (NODE_REFPURPOSE):
1.9 kristaps 489: case (NODE_SCREEN):
1.6 kristaps 490: case (NODE_SYNOPSIS):
491: case (NODE_TERM):
492: case (NODE_TITLE):
493: case (NODE_ULINK):
1.10 kristaps 494: case (NODE_USERINPUT):
1.6 kristaps 495: return(1);
496: default:
497: break;
498: }
499: return(0);
1.1 kristaps 500: case (NODE_MANVOLNUM):
501: switch (parent) {
502: case (NODE_CITEREFENTRY):
503: case (NODE_REFMETA):
504: return(1);
505: default:
506: break;
507: }
508: return(0);
1.16 kristaps 509: case (NODE_NOTE):
510: switch (parent) {
511: case (NODE_CAUTION):
512: case (NODE_ENTRY):
513: case (NODE_ITEMIZEDLIST):
514: case (NODE_LISTITEM):
515: case (NODE_NOTE):
516: case (NODE_ORDEREDLIST):
517: case (NODE_PARA):
518: case (NODE_REFSECT1):
519: case (NODE_REFSECT2):
520: case (NODE_REFSECT3):
521: case (NODE_REFSECTION):
522: case (NODE_REFSYNOPSISDIV):
523: case (NODE_TIP):
524: case (NODE_VARIABLELIST):
525: case (NODE_WARNING):
526: return(1);
527: default:
528: break;
529: }
530: return(0);
1.1 kristaps 531: case (NODE_OPTION):
532: switch (parent) {
533: case (NODE_ARG):
534: case (NODE_EMPHASIS):
1.12 kristaps 535: case (NODE_ENTRY):
1.1 kristaps 536: case (NODE_FUNCSYNOPSISINFO):
1.11 kristaps 537: case (NODE_GROUP):
1.2 kristaps 538: case (NODE_LINK):
1.1 kristaps 539: case (NODE_PARA):
540: case (NODE_PROGRAMLISTING):
1.15 kristaps 541: case (NODE_QUOTE):
1.1 kristaps 542: case (NODE_REFDESCRIPTOR):
543: case (NODE_REFENTRYTITLE):
544: case (NODE_REFNAME):
545: case (NODE_REFPURPOSE):
1.9 kristaps 546: case (NODE_SCREEN):
1.1 kristaps 547: case (NODE_SYNOPSIS):
548: case (NODE_TERM):
549: case (NODE_TITLE):
1.2 kristaps 550: case (NODE_ULINK):
1.10 kristaps 551: case (NODE_USERINPUT):
1.1 kristaps 552: return(1);
553: default:
554: break;
555: }
556: return(0);
1.8 kristaps 557: case (NODE_ORDEREDLIST):
558: switch (parent) {
1.16 kristaps 559: case (NODE_CAUTION):
1.12 kristaps 560: case (NODE_ENTRY):
1.8 kristaps 561: case (NODE_ITEMIZEDLIST):
562: case (NODE_LISTITEM):
563: case (NODE_ORDEREDLIST):
1.16 kristaps 564: case (NODE_NOTE):
1.8 kristaps 565: case (NODE_PARA):
566: case (NODE_REFSECT1):
567: case (NODE_REFSECT2):
1.16 kristaps 568: case (NODE_REFSECT3):
569: case (NODE_REFSECTION):
1.8 kristaps 570: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 571: case (NODE_TIP):
1.8 kristaps 572: case (NODE_VARIABLELIST):
1.16 kristaps 573: case (NODE_WARNING):
1.8 kristaps 574: return(1);
575: default:
576: break;
577: }
578: return(0);
1.1 kristaps 579: case (NODE_PARA):
580: switch (parent) {
1.16 kristaps 581: case (NODE_CAUTION):
1.12 kristaps 582: case (NODE_ENTRY):
1.4 kristaps 583: case (NODE_ITEMIZEDLIST):
1.1 kristaps 584: case (NODE_LISTITEM):
1.16 kristaps 585: case (NODE_NOTE):
1.8 kristaps 586: case (NODE_ORDEREDLIST):
1.1 kristaps 587: case (NODE_REFSECT1):
1.7 kristaps 588: case (NODE_REFSECT2):
1.16 kristaps 589: case (NODE_REFSECT3):
590: case (NODE_REFSECTION):
1.1 kristaps 591: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 592: case (NODE_TIP):
1.1 kristaps 593: case (NODE_VARIABLELIST):
1.16 kristaps 594: case (NODE_WARNING):
1.1 kristaps 595: return(1);
596: default:
597: break;
598: }
599: return(0);
600: case (NODE_PARAMDEF):
601: return(NODE_FUNCPROTOTYPE == parent);
602: case (NODE_PARAMETER):
603: switch (parent) {
604: case (NODE_CODE):
1.12 kristaps 605: case (NODE_ENTRY):
1.1 kristaps 606: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 607: case (NODE_LINK):
1.1 kristaps 608: case (NODE_PARA):
609: case (NODE_PARAMDEF):
610: case (NODE_PROGRAMLISTING):
1.15 kristaps 611: case (NODE_QUOTE):
1.1 kristaps 612: case (NODE_REFDESCRIPTOR):
613: case (NODE_REFENTRYTITLE):
614: case (NODE_REFNAME):
615: case (NODE_REFPURPOSE):
1.9 kristaps 616: case (NODE_SCREEN):
1.1 kristaps 617: case (NODE_SYNOPSIS):
618: case (NODE_TERM):
619: case (NODE_TITLE):
1.2 kristaps 620: case (NODE_ULINK):
1.10 kristaps 621: case (NODE_USERINPUT):
1.1 kristaps 622: return(1);
623: default:
624: break;
625: }
626: return(0);
627: case (NODE_PROGRAMLISTING):
628: switch (parent) {
1.16 kristaps 629: case (NODE_CAUTION):
1.12 kristaps 630: case (NODE_ENTRY):
1.4 kristaps 631: case (NODE_ITEMIZEDLIST):
1.1 kristaps 632: case (NODE_LISTITEM):
1.8 kristaps 633: case (NODE_ORDEREDLIST):
1.16 kristaps 634: case (NODE_NOTE):
1.1 kristaps 635: case (NODE_PARA):
636: case (NODE_REFSECT1):
1.7 kristaps 637: case (NODE_REFSECT2):
1.16 kristaps 638: case (NODE_REFSECT3):
639: case (NODE_REFSECTION):
1.1 kristaps 640: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 641: case (NODE_TIP):
1.9 kristaps 642: case (NODE_VARIABLELIST):
1.16 kristaps 643: case (NODE_WARNING):
1.9 kristaps 644: return(1);
645: default:
646: break;
647: }
648: return(0);
649: case (NODE_PROMPT):
650: switch (parent) {
651: case (NODE_EMPHASIS):
1.12 kristaps 652: case (NODE_ENTRY):
1.9 kristaps 653: case (NODE_FUNCSYNOPSISINFO):
654: case (NODE_LINK):
655: case (NODE_PARA):
656: case (NODE_PROGRAMLISTING):
1.15 kristaps 657: case (NODE_QUOTE):
1.9 kristaps 658: case (NODE_REFDESCRIPTOR):
659: case (NODE_REFENTRYTITLE):
660: case (NODE_REFNAME):
661: case (NODE_REFPURPOSE):
662: case (NODE_SCREEN):
663: case (NODE_SYNOPSIS):
664: case (NODE_TERM):
665: case (NODE_TITLE):
666: case (NODE_ULINK):
1.10 kristaps 667: case (NODE_USERINPUT):
1.1 kristaps 668: return(1);
669: default:
670: break;
671: }
672: return(0);
1.15 kristaps 673: case (NODE_QUOTE):
674: switch (parent) {
675: case (NODE_EMPHASIS):
676: case (NODE_ENTRY):
677: case (NODE_FUNCSYNOPSISINFO):
678: case (NODE_LINK):
679: case (NODE_PARA):
680: case (NODE_PROGRAMLISTING):
681: case (NODE_QUOTE):
682: case (NODE_REFDESCRIPTOR):
683: case (NODE_REFENTRYTITLE):
684: case (NODE_REFNAME):
685: case (NODE_REFPURPOSE):
686: case (NODE_SCREEN):
687: case (NODE_SYNOPSIS):
688: case (NODE_TERM):
689: case (NODE_TITLE):
690: case (NODE_ULINK):
691: return(1);
692: default:
693: break;
694: }
695: return(0);
1.1 kristaps 696: case (NODE_REFCLASS):
697: return(parent == NODE_REFNAMEDIV);
698: case (NODE_REFDESCRIPTOR):
699: return(parent == NODE_REFNAMEDIV);
700: case (NODE_REFENTRY):
701: return(parent == NODE_ROOT);
1.3 kristaps 702: case (NODE_REFENTRYINFO):
703: return(parent == NODE_REFENTRY);
1.1 kristaps 704: case (NODE_REFENTRYTITLE):
705: switch (parent) {
706: case (NODE_CITEREFENTRY):
707: case (NODE_REFMETA):
708: return(1);
709: default:
710: break;
711: }
712: case (NODE_REFMETA):
713: return(parent == NODE_REFENTRY);
714: case (NODE_REFMISCINFO):
715: return(parent == NODE_REFMETA);
716: case (NODE_REFNAME):
717: return(parent == NODE_REFNAMEDIV);
718: case (NODE_REFNAMEDIV):
719: return(parent == NODE_REFENTRY);
720: case (NODE_REFPURPOSE):
721: return(parent == NODE_REFNAMEDIV);
722: case (NODE_REFSECT1):
723: return(parent == NODE_REFENTRY);
1.7 kristaps 724: case (NODE_REFSECT2):
725: switch (parent) {
726: case (NODE_REFSYNOPSISDIV):
727: case (NODE_REFSECT1):
728: return(1);
729: default:
730: break;
731: }
732: return(0);
1.16 kristaps 733: case (NODE_REFSECT3):
734: return(parent == NODE_REFSECT2);
735: case (NODE_REFSECTION):
736: switch (parent) {
737: case (NODE_REFENTRY):
738: case (NODE_REFSECTION):
739: case (NODE_REFSYNOPSISDIV):
740: return(1);
741: default:
742: break;
743: }
744: return(0);
1.1 kristaps 745: case (NODE_REFSYNOPSISDIV):
746: return(parent == NODE_REFENTRY);
747: case (NODE_REPLACEABLE):
748: switch (parent) {
1.8 kristaps 749: case (NODE_ACRONYM):
1.14 kristaps 750: case (NODE_APPLICATION):
1.1 kristaps 751: case (NODE_ARG):
752: case (NODE_CODE):
753: case (NODE_COMMAND):
754: case (NODE_EMPHASIS):
1.12 kristaps 755: case (NODE_ENTRY):
1.8 kristaps 756: case (NODE_ENVAR):
1.5 kristaps 757: case (NODE_FILENAME):
1.1 kristaps 758: case (NODE_FUNCDEF):
759: case (NODE_FUNCSYNOPSISINFO):
760: case (NODE_FUNCTION):
1.11 kristaps 761: case (NODE_GROUP):
1.2 kristaps 762: case (NODE_LINK):
1.6 kristaps 763: case (NODE_LITERAL):
1.1 kristaps 764: case (NODE_MANVOLNUM):
765: case (NODE_OPTION):
766: case (NODE_PARA):
767: case (NODE_PARAMDEF):
768: case (NODE_PARAMETER):
769: case (NODE_PROGRAMLISTING):
1.9 kristaps 770: case (NODE_PROMPT):
1.15 kristaps 771: case (NODE_QUOTE):
1.1 kristaps 772: case (NODE_REFDESCRIPTOR):
773: case (NODE_REFENTRYTITLE):
774: case (NODE_REFMISCINFO):
775: case (NODE_REFNAME):
776: case (NODE_REFPURPOSE):
777: case (NODE_REPLACEABLE):
1.9 kristaps 778: case (NODE_SCREEN):
1.17 ! kristaps 779: case (NODE_SGMLTAG):
1.1 kristaps 780: case (NODE_SYNOPSIS):
781: case (NODE_TERM):
782: case (NODE_TITLE):
1.2 kristaps 783: case (NODE_ULINK):
1.10 kristaps 784: case (NODE_USERINPUT):
1.13 kristaps 785: case (NODE_VARNAME):
1.17 ! kristaps 786: case (NODE_WORDASWORD):
1.1 kristaps 787: default:
788: return(1);
1.6 kristaps 789: }
790: return(0);
1.12 kristaps 791: case (NODE_ROW):
792: switch (parent) {
793: case (NODE_TBODY):
794: case (NODE_TFOOT):
795: case (NODE_THEAD):
796: return(1);
797: default:
798: break;
799: }
800: return(0);
1.6 kristaps 801: case (NODE_SBR):
802: switch (parent) {
803: case (NODE_ARG):
804: case (NODE_CMDSYNOPSIS):
1.11 kristaps 805: case (NODE_GROUP):
1.9 kristaps 806: return(1);
807: default:
808: break;
809: }
810: return(0);
811: case (NODE_SCREEN):
812: switch (parent) {
1.16 kristaps 813: case (NODE_CAUTION):
1.12 kristaps 814: case (NODE_ENTRY):
1.9 kristaps 815: case (NODE_ITEMIZEDLIST):
816: case (NODE_LISTITEM):
817: case (NODE_ORDEREDLIST):
1.16 kristaps 818: case (NODE_NOTE):
1.9 kristaps 819: case (NODE_PARA):
820: case (NODE_REFSECT1):
821: case (NODE_REFSECT2):
1.16 kristaps 822: case (NODE_REFSECT3):
823: case (NODE_REFSECTION):
1.9 kristaps 824: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 825: case (NODE_TIP):
1.9 kristaps 826: case (NODE_VARIABLELIST):
1.16 kristaps 827: case (NODE_WARNING):
1.6 kristaps 828: return(1);
829: default:
830: break;
1.1 kristaps 831: }
832: return(0);
1.17 ! kristaps 833: case (NODE_SGMLTAG):
! 834: switch (parent) {
! 835: case (NODE_APPLICATION):
! 836: case (NODE_CODE):
! 837: case (NODE_COMMAND):
! 838: case (NODE_EMPHASIS):
! 839: case (NODE_ENTRY):
! 840: case (NODE_FILENAME):
! 841: case (NODE_FUNCSYNOPSISINFO):
! 842: case (NODE_FUNCTION):
! 843: case (NODE_LINK):
! 844: case (NODE_LITERAL):
! 845: case (NODE_OPTION):
! 846: case (NODE_PARA):
! 847: case (NODE_PARAMETER):
! 848: case (NODE_PROGRAMLISTING):
! 849: case (NODE_QUOTE):
! 850: case (NODE_REFDESCRIPTOR):
! 851: case (NODE_REFENTRYTITLE):
! 852: case (NODE_REFNAME):
! 853: case (NODE_REFPURPOSE):
! 854: case (NODE_SCREEN):
! 855: case (NODE_SYNOPSIS):
! 856: case (NODE_TERM):
! 857: case (NODE_TITLE):
! 858: case (NODE_USERINPUT):
! 859: return(1);
! 860: default:
! 861: break;
! 862: }
! 863: return(0);
1.1 kristaps 864: case (NODE_STRUCTNAME):
865: switch (parent) {
866: case (NODE_CODE):
867: case (NODE_FUNCSYNOPSISINFO):
868: case (NODE_FUNCTION):
869: case (NODE_OPTION):
870: case (NODE_PARA):
871: case (NODE_PARAMETER):
872: case (NODE_PROGRAMLISTING):
873: case (NODE_REFDESCRIPTOR):
874: case (NODE_REFENTRYTITLE):
875: case (NODE_REFNAME):
876: case (NODE_REFPURPOSE):
877: case (NODE_SYNOPSIS):
878: case (NODE_TITLE):
879: return(1);
880: default:
881: break;
882: }
883: return(0);
884: case (NODE_SYNOPSIS):
885: switch (parent) {
1.16 kristaps 886: case (NODE_CAUTION):
1.12 kristaps 887: case (NODE_ENTRY):
1.4 kristaps 888: case (NODE_ITEMIZEDLIST):
1.1 kristaps 889: case (NODE_LISTITEM):
1.8 kristaps 890: case (NODE_ORDEREDLIST):
1.16 kristaps 891: case (NODE_NOTE):
892: case (NODE_PARA):
1.1 kristaps 893: case (NODE_REFSYNOPSISDIV):
894: case (NODE_REFSECT1):
1.7 kristaps 895: case (NODE_REFSECT2):
1.16 kristaps 896: case (NODE_REFSECT3):
897: case (NODE_REFSECTION):
898: case (NODE_TIP):
899: case (NODE_WARNING):
1.1 kristaps 900: return(1);
901: default:
902: break;
903: }
904: return(0);
1.12 kristaps 905: case (NODE_TABLE):
906: switch (parent) {
1.16 kristaps 907: case (NODE_CAUTION):
1.12 kristaps 908: case (NODE_ENTRY):
909: case (NODE_ITEMIZEDLIST):
910: case (NODE_LISTITEM):
911: case (NODE_ORDEREDLIST):
1.16 kristaps 912: case (NODE_NOTE):
1.12 kristaps 913: case (NODE_PARA):
914: case (NODE_REFSECT1):
1.16 kristaps 915: case (NODE_REFSECT2):
916: case (NODE_REFSECT3):
917: case (NODE_REFSECTION):
1.12 kristaps 918: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 919: case (NODE_TIP):
1.12 kristaps 920: case (NODE_VARIABLELIST):
1.16 kristaps 921: case (NODE_WARNING):
1.12 kristaps 922: return(1);
923: default:
924: break;
925: }
926: return(0);
927: case (NODE_TBODY):
928: return(NODE_TGROUP == parent);
929: case (NODE_TFOOT):
930: return(NODE_TGROUP == parent);
931: case (NODE_TGROUP):
932: return(NODE_TABLE == parent);
933: case (NODE_THEAD):
934: return(NODE_TGROUP == parent);
1.1 kristaps 935: case (NODE_TITLE):
936: switch (parent) {
1.4 kristaps 937: case (NODE_ITEMIZEDLIST):
1.8 kristaps 938: case (NODE_ORDEREDLIST):
1.3 kristaps 939: case (NODE_REFENTRYINFO):
1.1 kristaps 940: case (NODE_REFSECT1):
1.7 kristaps 941: case (NODE_REFSECT2):
1.16 kristaps 942: case (NODE_REFSECT3):
943: case (NODE_REFSECTION):
1.1 kristaps 944: case (NODE_REFSYNOPSISDIV):
1.12 kristaps 945: case (NODE_TABLE):
1.1 kristaps 946: case (NODE_VARIABLELIST):
947: return(1);
948: default:
949: break;
950: }
951: return(0);
952: case (NODE_TERM):
953: return(NODE_VARLISTENTRY == parent);
954: case (NODE_TEXT):
955: return(1);
1.16 kristaps 956: case (NODE_TIP):
957: switch (parent) {
958: case (NODE_CAUTION):
959: case (NODE_ENTRY):
960: case (NODE_ITEMIZEDLIST):
961: case (NODE_LISTITEM):
962: case (NODE_NOTE):
963: case (NODE_ORDEREDLIST):
964: case (NODE_PARA):
965: case (NODE_REFSECT1):
966: case (NODE_REFSECT2):
967: case (NODE_REFSECT3):
968: case (NODE_REFSECTION):
969: case (NODE_REFSYNOPSISDIV):
970: case (NODE_TIP):
971: case (NODE_VARIABLELIST):
972: case (NODE_WARNING):
973: return(1);
974: default:
975: break;
976: }
977: return(0);
1.10 kristaps 978: case (NODE_USERINPUT):
979: switch (parent) {
980: case (NODE_EMPHASIS):
1.12 kristaps 981: case (NODE_ENTRY):
1.10 kristaps 982: case (NODE_FUNCSYNOPSISINFO):
983: case (NODE_LINK):
984: case (NODE_PARA):
985: case (NODE_PROGRAMLISTING):
1.15 kristaps 986: case (NODE_QUOTE):
1.10 kristaps 987: case (NODE_REFDESCRIPTOR):
988: case (NODE_REFENTRYTITLE):
989: case (NODE_REFNAME):
990: case (NODE_REFPURPOSE):
991: case (NODE_SCREEN):
992: case (NODE_SYNOPSIS):
993: case (NODE_TERM):
994: case (NODE_TITLE):
995: case (NODE_ULINK):
996: case (NODE_USERINPUT):
997: return(1);
998: default:
999: break;
1000: }
1001: return(0);
1.1 kristaps 1002: case (NODE_VARIABLELIST):
1003: switch (parent) {
1.16 kristaps 1004: case (NODE_CAUTION):
1.12 kristaps 1005: case (NODE_ENTRY):
1.4 kristaps 1006: case (NODE_ITEMIZEDLIST):
1.8 kristaps 1007: case (NODE_ORDEREDLIST):
1.16 kristaps 1008: case (NODE_NOTE):
1.1 kristaps 1009: case (NODE_PARA):
1010: case (NODE_REFSECT1):
1.7 kristaps 1011: case (NODE_REFSECT2):
1.16 kristaps 1012: case (NODE_REFSECT3):
1013: case (NODE_REFSECTION):
1.1 kristaps 1014: case (NODE_REFSYNOPSISDIV):
1.16 kristaps 1015: case (NODE_TIP):
1.1 kristaps 1016: case (NODE_VARIABLELIST):
1.16 kristaps 1017: case (NODE_WARNING):
1.13 kristaps 1018: return(1);
1019: default:
1020: break;
1021: }
1022: return(0);
1023: case (NODE_VARNAME):
1024: switch (parent) {
1025: case (NODE_CODE):
1026: case (NODE_EMPHASIS):
1027: case (NODE_ENTRY):
1028: case (NODE_FUNCSYNOPSISINFO):
1029: case (NODE_LINK):
1030: case (NODE_PARA):
1031: case (NODE_PROGRAMLISTING):
1.15 kristaps 1032: case (NODE_QUOTE):
1.13 kristaps 1033: case (NODE_REFDESCRIPTOR):
1034: case (NODE_REFENTRYTITLE):
1035: case (NODE_REFNAME):
1036: case (NODE_REFPURPOSE):
1037: case (NODE_SCREEN):
1038: case (NODE_SYNOPSIS):
1039: case (NODE_TERM):
1040: case (NODE_TITLE):
1041: case (NODE_ULINK):
1.1 kristaps 1042: return(1);
1043: default:
1044: break;
1045: }
1046: return(0);
1047: case (NODE_VARLISTENTRY):
1048: return (NODE_VARIABLELIST == parent);
1.16 kristaps 1049: case (NODE_WARNING):
1050: switch (parent) {
1051: case (NODE_CAUTION):
1052: case (NODE_ENTRY):
1053: case (NODE_ITEMIZEDLIST):
1054: case (NODE_LISTITEM):
1055: case (NODE_NOTE):
1056: case (NODE_ORDEREDLIST):
1057: case (NODE_PARA):
1058: case (NODE_REFSECT1):
1059: case (NODE_REFSECT2):
1060: case (NODE_REFSECT3):
1061: case (NODE_REFSECTION):
1062: case (NODE_REFSYNOPSISDIV):
1063: case (NODE_TIP):
1064: case (NODE_VARIABLELIST):
1065: case (NODE_WARNING):
1.17 ! kristaps 1066: return(1);
! 1067: default:
! 1068: break;
! 1069: }
! 1070: return(0);
! 1071: case (NODE_WORDASWORD):
! 1072: switch (parent) {
! 1073: case (NODE_EMPHASIS):
! 1074: case (NODE_ENTRY):
! 1075: case (NODE_FUNCSYNOPSISINFO):
! 1076: case (NODE_LINK):
! 1077: case (NODE_PARA):
! 1078: case (NODE_PROGRAMLISTING):
! 1079: case (NODE_QUOTE):
! 1080: case (NODE_REFDESCRIPTOR):
! 1081: case (NODE_REFENTRYTITLE):
! 1082: case (NODE_REFNAME):
! 1083: case (NODE_REFPURPOSE):
! 1084: case (NODE_SCREEN):
! 1085: case (NODE_SYNOPSIS):
! 1086: case (NODE_TERM):
! 1087: case (NODE_TITLE):
! 1088: case (NODE_ULINK):
1.16 kristaps 1089: return(1);
1090: default:
1091: break;
1092: }
1093: return(0);
1.1 kristaps 1094: case (NODE__MAX):
1095: break;
1096: }
1097:
1098: abort();
1099: return(0);
1100: }
1101:
CVSweb