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