|
|
1.1 ! root 1: # include <ingres.h> ! 2: # include <aux.h> ! 3: # include <tree.h> ! 4: # include <symbol.h> ! 5: # include "globs.h" ! 6: # include <sccs.h> ! 7: ! 8: SCCSID(@(#)mklist.c 8.1 12/31/84) ! 9: ! 10: /* ! 11: ** MKLIST ! 12: ** ! 13: ** writes a list of query tree nodes in "OVQP order" -- ! 14: ** that is, everything in postfix (endorder) except AND's and OR's ! 15: ** infixed (postorder) to OVQP. ! 16: ** called by call_ovqp(). ! 17: */ ! 18: ! 19: ! 20: ! 21: mklist(tree) ! 22: QTREE *tree; ! 23: { ! 24: register int typ; ! 25: register QTREE *t; ! 26: register int andor; ! 27: ! 28: t = tree; ! 29: if (!t || (typ=t->sym.type)==TREE || typ==QLEND) ! 30: return; ! 31: ! 32: andor=0; ! 33: mklist(t->left); ! 34: if (typ==AND || typ==OR) ! 35: { ! 36: andor = 1; ! 37: ovqpnod(t); ! 38: } ! 39: mklist(t->right); ! 40: if (!andor) ! 41: ovqpnod(t); ! 42: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.