Annotation of docbook2mdoc/rules.c, Revision 1.14
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):
76: case (NODE_REFDESCRIPTOR):
77: case (NODE_REFENTRYTITLE):
78: case (NODE_REFNAME):
79: case (NODE_REFPURPOSE):
1.9 kristaps 80: case (NODE_SCREEN):
1.8 kristaps 81: case (NODE_SYNOPSIS):
82: case (NODE_TERM):
83: case (NODE_TITLE):
84: return(1);
85: default:
86: break;
87: }
88: return(0);
1.14 ! kristaps 89: case (NODE_APPLICATION):
! 90: switch (parent) {
! 91: case (NODE_EMPHASIS):
! 92: case (NODE_ENTRY):
! 93: case (NODE_FUNCSYNOPSISINFO):
! 94: case (NODE_LINK):
! 95: case (NODE_PARA):
! 96: case (NODE_PROGRAMLISTING):
! 97: case (NODE_REFCLASS):
! 98: case (NODE_REFDESCRIPTOR):
! 99: case (NODE_REFENTRYTITLE):
! 100: case (NODE_REFNAME):
! 101: case (NODE_REFPURPOSE):
! 102: case (NODE_SCREEN):
! 103: case (NODE_SYNOPSIS):
! 104: case (NODE_TERM):
! 105: case (NODE_TITLE):
! 106: case (NODE_ULINK):
! 107: return(1);
! 108: default:
! 109: break;
! 110: }
! 111: return(0);
1.1 kristaps 112: case (NODE_ARG):
113: switch (parent) {
114: case (NODE_ARG):
115: case (NODE_CMDSYNOPSIS):
1.11 kristaps 116: case (NODE_GROUP):
1.1 kristaps 117: return(1);
118: default:
119: break;
120: }
121: return(0);
122: case (NODE_CITEREFENTRY):
123: switch (parent) {
124: case (NODE_EMPHASIS):
1.12 kristaps 125: case (NODE_ENTRY):
1.1 kristaps 126: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 127: case (NODE_LINK):
1.1 kristaps 128: case (NODE_PARA):
129: case (NODE_PROGRAMLISTING):
130: case (NODE_REFDESCRIPTOR):
131: case (NODE_REFENTRYTITLE):
132: case (NODE_REFNAME):
133: case (NODE_REFPURPOSE):
1.9 kristaps 134: case (NODE_SCREEN):
1.1 kristaps 135: case (NODE_SYNOPSIS):
136: case (NODE_TERM):
137: case (NODE_TITLE):
1.2 kristaps 138: case (NODE_ULINK):
1.1 kristaps 139: return(1);
140: default:
141: break;
142: }
143: return(0);
144: case (NODE_CMDSYNOPSIS):
145: switch (parent) {
1.12 kristaps 146: case (NODE_ENTRY):
1.4 kristaps 147: case (NODE_ITEMIZEDLIST):
1.1 kristaps 148: case (NODE_LISTITEM):
1.8 kristaps 149: case (NODE_ORDEREDLIST):
1.1 kristaps 150: case (NODE_PARA):
151: case (NODE_REFSECT1):
1.7 kristaps 152: case (NODE_REFSECT2):
1.1 kristaps 153: case (NODE_REFSYNOPSISDIV):
154: case (NODE_VARIABLELIST):
155: return(1);
156: default:
157: break;
158: }
159: return(0);
160: case (NODE_CODE):
161: switch (parent) {
162: case (NODE_EMPHASIS):
1.12 kristaps 163: case (NODE_ENTRY):
1.1 kristaps 164: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 165: case (NODE_LINK):
1.1 kristaps 166: case (NODE_PARA):
167: case (NODE_PROGRAMLISTING):
168: case (NODE_REFDESCRIPTOR):
169: case (NODE_REFENTRYTITLE):
170: case (NODE_REFNAME):
171: case (NODE_REFPURPOSE):
1.9 kristaps 172: case (NODE_SCREEN):
1.1 kristaps 173: case (NODE_SYNOPSIS):
174: case (NODE_TERM):
175: case (NODE_TITLE):
1.2 kristaps 176: case (NODE_ULINK):
1.10 kristaps 177: case (NODE_USERINPUT):
1.1 kristaps 178: return(1);
179: default:
180: break;
181: }
182: return(0);
183: case (NODE_COMMAND):
184: switch (parent) {
185: case (NODE_CMDSYNOPSIS):
186: case (NODE_EMPHASIS):
1.12 kristaps 187: case (NODE_ENTRY):
1.1 kristaps 188: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 189: case (NODE_LINK):
1.1 kristaps 190: case (NODE_PARA):
191: case (NODE_PROGRAMLISTING):
192: case (NODE_REFDESCRIPTOR):
193: case (NODE_REFENTRYTITLE):
194: case (NODE_REFNAME):
195: case (NODE_REFPURPOSE):
1.9 kristaps 196: case (NODE_SCREEN):
1.1 kristaps 197: case (NODE_SYNOPSIS):
198: case (NODE_TERM):
199: case (NODE_TITLE):
1.2 kristaps 200: case (NODE_ULINK):
1.10 kristaps 201: case (NODE_USERINPUT):
1.1 kristaps 202: return(1);
203: default:
204: break;
205: }
206: return(0);
1.3 kristaps 207: case (NODE_DATE):
208: switch (parent) {
209: case (NODE_EMPHASIS):
1.12 kristaps 210: case (NODE_ENTRY):
1.3 kristaps 211: case (NODE_FUNCSYNOPSISINFO):
212: case (NODE_LINK):
213: case (NODE_PARA):
214: case (NODE_PROGRAMLISTING):
215: case (NODE_REFDESCRIPTOR):
216: case (NODE_REFENTRYINFO):
217: case (NODE_REFENTRYTITLE):
218: case (NODE_REFNAME):
219: case (NODE_REFPURPOSE):
1.9 kristaps 220: case (NODE_SCREEN):
1.3 kristaps 221: case (NODE_SYNOPSIS):
222: case (NODE_TITLE):
223: case (NODE_ULINK):
224: return(1);
225: default:
226: break;
227: }
228: return(0);
1.1 kristaps 229: case (NODE_EMPHASIS):
230: switch (parent) {
231: case (NODE_EMPHASIS):
1.12 kristaps 232: case (NODE_ENTRY):
1.1 kristaps 233: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 234: case (NODE_LINK):
1.1 kristaps 235: case (NODE_PARA):
236: case (NODE_PROGRAMLISTING):
237: case (NODE_REFDESCRIPTOR):
238: case (NODE_REFENTRYTITLE):
239: case (NODE_REFNAME):
240: case (NODE_REFPURPOSE):
1.9 kristaps 241: case (NODE_SCREEN):
1.1 kristaps 242: case (NODE_SYNOPSIS):
243: case (NODE_TERM):
244: case (NODE_TITLE):
1.2 kristaps 245: case (NODE_ULINK):
1.1 kristaps 246: return(1);
247: default:
248: break;
249: }
250: return(0);
1.12 kristaps 251: case (NODE_ENTRY):
252: return(NODE_ROW == parent);
1.8 kristaps 253: case (NODE_ENVAR):
254: switch (parent) {
255: case (NODE_EMPHASIS):
1.12 kristaps 256: case (NODE_ENTRY):
1.8 kristaps 257: case (NODE_FUNCSYNOPSISINFO):
258: case (NODE_LINK):
259: case (NODE_PARA):
260: case (NODE_PROGRAMLISTING):
261: case (NODE_REFDESCRIPTOR):
262: case (NODE_REFENTRYTITLE):
263: case (NODE_REFNAME):
264: case (NODE_REFPURPOSE):
1.9 kristaps 265: case (NODE_SCREEN):
1.8 kristaps 266: case (NODE_SYNOPSIS):
267: case (NODE_TERM):
268: case (NODE_TITLE):
269: case (NODE_ULINK):
1.10 kristaps 270: case (NODE_USERINPUT):
1.8 kristaps 271: return(1);
272: default:
273: break;
274: }
275: return(0);
1.5 kristaps 276: case (NODE_FILENAME):
277: switch (parent) {
278: case (NODE_EMPHASIS):
1.12 kristaps 279: case (NODE_ENTRY):
1.5 kristaps 280: case (NODE_FUNCSYNOPSISINFO):
281: case (NODE_LINK):
282: case (NODE_PARA):
283: case (NODE_PROGRAMLISTING):
284: case (NODE_REFDESCRIPTOR):
285: case (NODE_REFENTRYTITLE):
286: case (NODE_REFNAME):
287: case (NODE_REFPURPOSE):
1.9 kristaps 288: case (NODE_SCREEN):
1.5 kristaps 289: case (NODE_SYNOPSIS):
290: case (NODE_TERM):
291: case (NODE_TITLE):
292: case (NODE_ULINK):
1.10 kristaps 293: case (NODE_USERINPUT):
1.5 kristaps 294: return(1);
295: default:
296: break;
297: }
298: return(0);
1.1 kristaps 299: case (NODE_FUNCDEF):
300: return(NODE_FUNCPROTOTYPE == parent);
301: case (NODE_FUNCPROTOTYPE):
302: return(NODE_FUNCSYNOPSIS == parent);
303: case (NODE_FUNCSYNOPSIS):
304: switch (parent) {
1.12 kristaps 305: case (NODE_ENTRY):
1.4 kristaps 306: case (NODE_ITEMIZEDLIST):
1.1 kristaps 307: case (NODE_LISTITEM):
1.8 kristaps 308: case (NODE_ORDEREDLIST):
1.1 kristaps 309: case (NODE_PARA):
310: case (NODE_REFSECT1):
1.7 kristaps 311: case (NODE_REFSECT2):
1.1 kristaps 312: case (NODE_REFSYNOPSISDIV):
313: case (NODE_VARIABLELIST):
314: return(1);
315: default:
316: break;
317: }
318: return(0);
319: case (NODE_FUNCSYNOPSISINFO):
320: return(NODE_FUNCSYNOPSIS == parent);
321: case (NODE_FUNCTION):
322: switch (parent) {
323: case (NODE_CODE):
324: case (NODE_EMPHASIS):
1.12 kristaps 325: case (NODE_ENTRY):
1.1 kristaps 326: case (NODE_FUNCDEF):
327: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 328: case (NODE_LINK):
1.1 kristaps 329: case (NODE_PARA):
330: case (NODE_PROGRAMLISTING):
331: case (NODE_REFDESCRIPTOR):
332: case (NODE_REFENTRYTITLE):
333: case (NODE_REFNAME):
334: case (NODE_REFPURPOSE):
1.9 kristaps 335: case (NODE_SCREEN):
1.1 kristaps 336: case (NODE_SYNOPSIS):
337: case (NODE_TERM):
338: case (NODE_TITLE):
1.2 kristaps 339: case (NODE_ULINK):
340: return(1);
341: default:
342: break;
343: }
344: return(0);
1.4 kristaps 345: case (NODE_ITEMIZEDLIST):
346: switch (parent) {
1.12 kristaps 347: case (NODE_ENTRY):
1.4 kristaps 348: case (NODE_ITEMIZEDLIST):
349: case (NODE_LISTITEM):
1.8 kristaps 350: case (NODE_ORDEREDLIST):
1.4 kristaps 351: case (NODE_REFSECT1):
1.7 kristaps 352: case (NODE_REFSECT2):
1.4 kristaps 353: case (NODE_REFSYNOPSISDIV):
354: case (NODE_VARIABLELIST):
355: return(1);
356: default:
357: break;
358: }
359: return(0);
1.11 kristaps 360: case (NODE_GROUP):
361: switch (parent) {
362: case (NODE_ARG):
363: case (NODE_CMDSYNOPSIS):
364: case (NODE_GROUP):
365: return(1);
366: default:
367: break;
368: }
369: return(0);
1.2 kristaps 370: case (NODE_LINK):
1.4 kristaps 371: case (NODE_ULINK): /* Synonyms. */
1.2 kristaps 372: switch (parent) {
1.8 kristaps 373: case (NODE_ACRONYM):
1.14 ! kristaps 374: case (NODE_APPLICATION):
1.2 kristaps 375: case (NODE_ARG):
376: case (NODE_CODE):
377: case (NODE_COMMAND):
378: case (NODE_EMPHASIS):
1.12 kristaps 379: case (NODE_ENTRY):
1.8 kristaps 380: case (NODE_ENVAR):
1.5 kristaps 381: case (NODE_FILENAME):
1.2 kristaps 382: case (NODE_FUNCDEF):
383: case (NODE_FUNCSYNOPSISINFO):
384: case (NODE_FUNCTION):
385: case (NODE_LINK):
1.6 kristaps 386: case (NODE_LITERAL):
1.2 kristaps 387: case (NODE_MANVOLNUM):
388: case (NODE_OPTION):
389: case (NODE_PARA):
390: case (NODE_PARAMDEF):
391: case (NODE_PARAMETER):
392: case (NODE_PROGRAMLISTING):
1.9 kristaps 393: case (NODE_PROMPT):
1.2 kristaps 394: case (NODE_REFDESCRIPTOR):
395: case (NODE_REFENTRYTITLE):
396: case (NODE_REFMISCINFO):
397: case (NODE_REFNAME):
398: case (NODE_REPLACEABLE):
1.9 kristaps 399: case (NODE_SCREEN):
1.2 kristaps 400: case (NODE_SYNOPSIS):
401: case (NODE_TERM):
402: case (NODE_ULINK):
1.10 kristaps 403: case (NODE_USERINPUT):
1.13 kristaps 404: case (NODE_VARNAME):
1.1 kristaps 405: return(1);
406: default:
407: break;
408: }
409: return(0);
410: case (NODE_LISTITEM):
1.4 kristaps 411: switch (parent) {
412: case (NODE_ITEMIZEDLIST):
1.8 kristaps 413: case (NODE_ORDEREDLIST):
1.4 kristaps 414: case (NODE_VARLISTENTRY):
415: return(1);
416: default:
417: break;
418: }
419: return(0);
1.6 kristaps 420: case (NODE_LITERAL):
421: switch (parent) {
422: case (NODE_EMPHASIS):
1.12 kristaps 423: case (NODE_ENTRY):
1.6 kristaps 424: case (NODE_FUNCSYNOPSISINFO):
425: case (NODE_LINK):
426: case (NODE_PARA):
427: case (NODE_PROGRAMLISTING):
428: case (NODE_REFDESCRIPTOR):
429: case (NODE_REFENTRYTITLE):
430: case (NODE_REFNAME):
431: case (NODE_REFPURPOSE):
1.9 kristaps 432: case (NODE_SCREEN):
1.6 kristaps 433: case (NODE_SYNOPSIS):
434: case (NODE_TERM):
435: case (NODE_TITLE):
436: case (NODE_ULINK):
1.10 kristaps 437: case (NODE_USERINPUT):
1.6 kristaps 438: return(1);
439: default:
440: break;
441: }
442: return(0);
1.1 kristaps 443: case (NODE_MANVOLNUM):
444: switch (parent) {
445: case (NODE_CITEREFENTRY):
446: case (NODE_REFMETA):
447: return(1);
448: default:
449: break;
450: }
451: return(0);
452: case (NODE_OPTION):
453: switch (parent) {
454: case (NODE_ARG):
455: case (NODE_EMPHASIS):
1.12 kristaps 456: case (NODE_ENTRY):
1.1 kristaps 457: case (NODE_FUNCSYNOPSISINFO):
1.11 kristaps 458: case (NODE_GROUP):
1.2 kristaps 459: case (NODE_LINK):
1.1 kristaps 460: case (NODE_PARA):
461: case (NODE_PROGRAMLISTING):
462: case (NODE_REFDESCRIPTOR):
463: case (NODE_REFENTRYTITLE):
464: case (NODE_REFNAME):
465: case (NODE_REFPURPOSE):
1.9 kristaps 466: case (NODE_SCREEN):
1.1 kristaps 467: case (NODE_SYNOPSIS):
468: case (NODE_TERM):
469: case (NODE_TITLE):
1.2 kristaps 470: case (NODE_ULINK):
1.10 kristaps 471: case (NODE_USERINPUT):
1.1 kristaps 472: return(1);
473: default:
474: break;
475: }
476: return(0);
1.8 kristaps 477: case (NODE_ORDEREDLIST):
478: switch (parent) {
1.12 kristaps 479: case (NODE_ENTRY):
1.8 kristaps 480: case (NODE_ITEMIZEDLIST):
481: case (NODE_LISTITEM):
482: case (NODE_ORDEREDLIST):
483: case (NODE_PARA):
484: case (NODE_REFSECT1):
485: case (NODE_REFSECT2):
486: case (NODE_REFSYNOPSISDIV):
487: case (NODE_VARIABLELIST):
488: return(1);
489: default:
490: break;
491: }
492: return(0);
1.1 kristaps 493: case (NODE_PARA):
494: switch (parent) {
1.12 kristaps 495: case (NODE_ENTRY):
1.4 kristaps 496: case (NODE_ITEMIZEDLIST):
1.1 kristaps 497: case (NODE_LISTITEM):
1.8 kristaps 498: case (NODE_ORDEREDLIST):
1.1 kristaps 499: case (NODE_REFSECT1):
1.7 kristaps 500: case (NODE_REFSECT2):
1.1 kristaps 501: case (NODE_REFSYNOPSISDIV):
502: case (NODE_VARIABLELIST):
503: return(1);
504: default:
505: break;
506: }
507: return(0);
508: case (NODE_PARAMDEF):
509: return(NODE_FUNCPROTOTYPE == parent);
510: case (NODE_PARAMETER):
511: switch (parent) {
512: case (NODE_CODE):
1.12 kristaps 513: case (NODE_ENTRY):
1.1 kristaps 514: case (NODE_FUNCSYNOPSISINFO):
1.2 kristaps 515: case (NODE_LINK):
1.1 kristaps 516: case (NODE_PARA):
517: case (NODE_PARAMDEF):
518: case (NODE_PROGRAMLISTING):
519: case (NODE_REFDESCRIPTOR):
520: case (NODE_REFENTRYTITLE):
521: case (NODE_REFNAME):
522: case (NODE_REFPURPOSE):
1.9 kristaps 523: case (NODE_SCREEN):
1.1 kristaps 524: case (NODE_SYNOPSIS):
525: case (NODE_TERM):
526: case (NODE_TITLE):
1.2 kristaps 527: case (NODE_ULINK):
1.10 kristaps 528: case (NODE_USERINPUT):
1.1 kristaps 529: return(1);
530: default:
531: break;
532: }
533: return(0);
534: case (NODE_PROGRAMLISTING):
535: switch (parent) {
1.12 kristaps 536: case (NODE_ENTRY):
1.4 kristaps 537: case (NODE_ITEMIZEDLIST):
1.1 kristaps 538: case (NODE_LISTITEM):
1.8 kristaps 539: case (NODE_ORDEREDLIST):
1.1 kristaps 540: case (NODE_PARA):
541: case (NODE_REFSECT1):
1.7 kristaps 542: case (NODE_REFSECT2):
1.1 kristaps 543: case (NODE_REFSYNOPSISDIV):
1.9 kristaps 544: case (NODE_VARIABLELIST):
545: return(1);
546: default:
547: break;
548: }
549: return(0);
550: case (NODE_PROMPT):
551: switch (parent) {
552: case (NODE_EMPHASIS):
1.12 kristaps 553: case (NODE_ENTRY):
1.9 kristaps 554: case (NODE_FUNCSYNOPSISINFO):
555: case (NODE_LINK):
556: case (NODE_PARA):
557: case (NODE_PROGRAMLISTING):
558: case (NODE_REFDESCRIPTOR):
559: case (NODE_REFENTRYTITLE):
560: case (NODE_REFNAME):
561: case (NODE_REFPURPOSE):
562: case (NODE_SCREEN):
563: case (NODE_SYNOPSIS):
564: case (NODE_TERM):
565: case (NODE_TITLE):
566: case (NODE_ULINK):
1.10 kristaps 567: case (NODE_USERINPUT):
1.1 kristaps 568: return(1);
569: default:
570: break;
571: }
572: return(0);
573: case (NODE_REFCLASS):
574: return(parent == NODE_REFNAMEDIV);
575: case (NODE_REFDESCRIPTOR):
576: return(parent == NODE_REFNAMEDIV);
577: case (NODE_REFENTRY):
578: return(parent == NODE_ROOT);
1.3 kristaps 579: case (NODE_REFENTRYINFO):
580: return(parent == NODE_REFENTRY);
1.1 kristaps 581: case (NODE_REFENTRYTITLE):
582: switch (parent) {
583: case (NODE_CITEREFENTRY):
584: case (NODE_REFMETA):
585: return(1);
586: default:
587: break;
588: }
589: case (NODE_REFMETA):
590: return(parent == NODE_REFENTRY);
591: case (NODE_REFMISCINFO):
592: return(parent == NODE_REFMETA);
593: case (NODE_REFNAME):
594: return(parent == NODE_REFNAMEDIV);
595: case (NODE_REFNAMEDIV):
596: return(parent == NODE_REFENTRY);
597: case (NODE_REFPURPOSE):
598: return(parent == NODE_REFNAMEDIV);
599: case (NODE_REFSECT1):
600: return(parent == NODE_REFENTRY);
1.7 kristaps 601: case (NODE_REFSECT2):
602: switch (parent) {
603: case (NODE_REFSYNOPSISDIV):
604: case (NODE_REFSECT1):
605: return(1);
606: default:
607: break;
608: }
609: return(0);
1.1 kristaps 610: case (NODE_REFSYNOPSISDIV):
611: return(parent == NODE_REFENTRY);
612: case (NODE_REPLACEABLE):
613: switch (parent) {
1.8 kristaps 614: case (NODE_ACRONYM):
1.14 ! kristaps 615: case (NODE_APPLICATION):
1.1 kristaps 616: case (NODE_ARG):
617: case (NODE_CODE):
618: case (NODE_COMMAND):
619: case (NODE_EMPHASIS):
1.12 kristaps 620: case (NODE_ENTRY):
1.8 kristaps 621: case (NODE_ENVAR):
1.5 kristaps 622: case (NODE_FILENAME):
1.1 kristaps 623: case (NODE_FUNCDEF):
624: case (NODE_FUNCSYNOPSISINFO):
625: case (NODE_FUNCTION):
1.11 kristaps 626: case (NODE_GROUP):
1.2 kristaps 627: case (NODE_LINK):
1.6 kristaps 628: case (NODE_LITERAL):
1.1 kristaps 629: case (NODE_MANVOLNUM):
630: case (NODE_OPTION):
631: case (NODE_PARA):
632: case (NODE_PARAMDEF):
633: case (NODE_PARAMETER):
634: case (NODE_PROGRAMLISTING):
1.9 kristaps 635: case (NODE_PROMPT):
1.1 kristaps 636: case (NODE_REFDESCRIPTOR):
637: case (NODE_REFENTRYTITLE):
638: case (NODE_REFMISCINFO):
639: case (NODE_REFNAME):
640: case (NODE_REFPURPOSE):
641: case (NODE_REPLACEABLE):
1.9 kristaps 642: case (NODE_SCREEN):
1.1 kristaps 643: case (NODE_SYNOPSIS):
644: case (NODE_TERM):
645: case (NODE_TITLE):
1.2 kristaps 646: case (NODE_ULINK):
1.10 kristaps 647: case (NODE_USERINPUT):
1.13 kristaps 648: case (NODE_VARNAME):
1.1 kristaps 649: default:
650: return(1);
1.6 kristaps 651: }
652: return(0);
1.12 kristaps 653: case (NODE_ROW):
654: switch (parent) {
655: case (NODE_TBODY):
656: case (NODE_TFOOT):
657: case (NODE_THEAD):
658: return(1);
659: default:
660: break;
661: }
662: return(0);
1.6 kristaps 663: case (NODE_SBR):
664: switch (parent) {
665: case (NODE_ARG):
666: case (NODE_CMDSYNOPSIS):
1.11 kristaps 667: case (NODE_GROUP):
1.9 kristaps 668: return(1);
669: default:
670: break;
671: }
672: return(0);
673: case (NODE_SCREEN):
674: switch (parent) {
1.12 kristaps 675: case (NODE_ENTRY):
1.9 kristaps 676: case (NODE_ITEMIZEDLIST):
677: case (NODE_LISTITEM):
678: case (NODE_ORDEREDLIST):
679: case (NODE_PARA):
680: case (NODE_REFSECT1):
681: case (NODE_REFSECT2):
682: case (NODE_REFSYNOPSISDIV):
683: case (NODE_VARIABLELIST):
1.6 kristaps 684: return(1);
685: default:
686: break;
1.1 kristaps 687: }
688: return(0);
689: case (NODE_STRUCTNAME):
690: switch (parent) {
691: case (NODE_CODE):
692: case (NODE_FUNCSYNOPSISINFO):
693: case (NODE_FUNCTION):
694: case (NODE_OPTION):
695: case (NODE_PARA):
696: case (NODE_PARAMETER):
697: case (NODE_PROGRAMLISTING):
698: case (NODE_REFDESCRIPTOR):
699: case (NODE_REFENTRYTITLE):
700: case (NODE_REFNAME):
701: case (NODE_REFPURPOSE):
702: case (NODE_SYNOPSIS):
703: case (NODE_TITLE):
704: return(1);
705: default:
706: break;
707: }
708: return(0);
709: case (NODE_SYNOPSIS):
710: switch (parent) {
1.12 kristaps 711: case (NODE_ENTRY):
1.4 kristaps 712: case (NODE_ITEMIZEDLIST):
1.1 kristaps 713: case (NODE_LISTITEM):
1.8 kristaps 714: case (NODE_ORDEREDLIST):
1.1 kristaps 715: case (NODE_REFSYNOPSISDIV):
716: case (NODE_REFSECT1):
1.7 kristaps 717: case (NODE_REFSECT2):
1.1 kristaps 718: return(1);
719: default:
720: break;
721: }
722: return(0);
1.12 kristaps 723: case (NODE_TABLE):
724: switch (parent) {
725: case (NODE_ENTRY):
726: case (NODE_ITEMIZEDLIST):
727: case (NODE_LISTITEM):
728: case (NODE_ORDEREDLIST):
729: case (NODE_PARA):
730: case (NODE_REFSECT1):
731: case (NODE_REFSYNOPSISDIV):
732: case (NODE_VARIABLELIST):
733: return(1);
734: default:
735: break;
736: }
737: return(0);
738: case (NODE_TBODY):
739: return(NODE_TGROUP == parent);
740: case (NODE_TFOOT):
741: return(NODE_TGROUP == parent);
742: case (NODE_TGROUP):
743: return(NODE_TABLE == parent);
744: case (NODE_THEAD):
745: return(NODE_TGROUP == parent);
1.1 kristaps 746: case (NODE_TITLE):
747: switch (parent) {
1.4 kristaps 748: case (NODE_ITEMIZEDLIST):
1.8 kristaps 749: case (NODE_ORDEREDLIST):
1.3 kristaps 750: case (NODE_REFENTRYINFO):
1.1 kristaps 751: case (NODE_REFSECT1):
1.7 kristaps 752: case (NODE_REFSECT2):
1.1 kristaps 753: case (NODE_REFSYNOPSISDIV):
1.12 kristaps 754: case (NODE_TABLE):
1.1 kristaps 755: case (NODE_VARIABLELIST):
756: return(1);
757: default:
758: break;
759: }
760: return(0);
761: case (NODE_TERM):
762: return(NODE_VARLISTENTRY == parent);
763: case (NODE_TEXT):
764: return(1);
1.10 kristaps 765: case (NODE_USERINPUT):
766: switch (parent) {
767: case (NODE_EMPHASIS):
1.12 kristaps 768: case (NODE_ENTRY):
1.10 kristaps 769: case (NODE_FUNCSYNOPSISINFO):
770: case (NODE_LINK):
771: case (NODE_PARA):
772: case (NODE_PROGRAMLISTING):
773: case (NODE_REFDESCRIPTOR):
774: case (NODE_REFENTRYTITLE):
775: case (NODE_REFNAME):
776: case (NODE_REFPURPOSE):
777: case (NODE_SCREEN):
778: case (NODE_SYNOPSIS):
779: case (NODE_TERM):
780: case (NODE_TITLE):
781: case (NODE_ULINK):
782: case (NODE_USERINPUT):
783: return(1);
784: default:
785: break;
786: }
787: return(0);
1.1 kristaps 788: case (NODE_VARIABLELIST):
789: switch (parent) {
1.12 kristaps 790: case (NODE_ENTRY):
1.4 kristaps 791: case (NODE_ITEMIZEDLIST):
1.8 kristaps 792: case (NODE_ORDEREDLIST):
1.1 kristaps 793: case (NODE_PARA):
794: case (NODE_REFSECT1):
1.7 kristaps 795: case (NODE_REFSECT2):
1.1 kristaps 796: case (NODE_REFSYNOPSISDIV):
797: case (NODE_VARIABLELIST):
1.13 kristaps 798: return(1);
799: default:
800: break;
801: }
802: return(0);
803: case (NODE_VARNAME):
804: switch (parent) {
805: case (NODE_CODE):
806: case (NODE_EMPHASIS):
807: case (NODE_ENTRY):
808: case (NODE_FUNCSYNOPSISINFO):
809: case (NODE_LINK):
810: case (NODE_PARA):
811: case (NODE_PROGRAMLISTING):
812: case (NODE_REFDESCRIPTOR):
813: case (NODE_REFENTRYTITLE):
814: case (NODE_REFNAME):
815: case (NODE_REFPURPOSE):
816: case (NODE_SCREEN):
817: case (NODE_SYNOPSIS):
818: case (NODE_TERM):
819: case (NODE_TITLE):
820: case (NODE_ULINK):
1.1 kristaps 821: return(1);
822: default:
823: break;
824: }
825: return(0);
826: case (NODE_VARLISTENTRY):
827: return (NODE_VARIABLELIST == parent);
828: case (NODE__MAX):
829: break;
830: }
831:
832: abort();
833: return(0);
834: }
835:
CVSweb