Lines Matching defs:arrow

58 	struct node *anp;	/* arrow np */
92 static int itree_set_arrow_traits(struct arrow *ap, struct node *fromev,
96 static void arrow_add_within(struct arrow *ap, struct node *xpr);
97 static struct arrow *itree_add_arrow(struct node *apnode,
100 static void add_arrow(struct bubble *bp, struct arrow *ap);
101 static struct constraintlist *itree_add_constraint(struct arrow *arrowp,
106 static void itree_free_constraints(struct arrow *ap);
118 * the actual arrow generation is done by calling:
122 int generation; /* generation number of arrow set */
124 struct node *arrownp; /* top-level parse tree for arrow */
125 int n; /* n value associated with arrow */
126 int k; /* k value associated with arrow */
131 struct bubble *frombp; /* bubble arrow comes from */
132 struct bubble *tobp; /* bubble arrow goes to */
170 struct arrow *arrowp;
787 * bottoms out. when all the events in the entire prop arrow have been
789 * actualy arrow.
1128 * anp -- the rest of the arrow we're currently working on
1132 * - when given an arrow, handle the left-side and then recursively
1133 * handle the right side (which might be another cascaded arrow).
1135 * - when handling one side of an arrow, recurse through the T_LIST
1137 * is a single event instead of a list) since the arrow parse
1181 * arrow, if any, should be generated in the instance tree. generate()
1211 itree_np2nork(infop->anp->u.arrow.nnp),
1212 itree_np2nork(infop->anp->u.arrow.knp));
1213 dst = infop->anp->u.arrow.rhs;
1214 src = infop->anp->u.arrow.lhs;
1218 hmatch(infop, src->u.arrow.rhs, dst);
1220 itree_np2nork(src->u.arrow.nnp),
1221 itree_np2nork(src->u.arrow.knp));
1222 dst = src->u.arrow.rhs;
1223 src = src->u.arrow.lhs;
1337 vmatch(infop, np->u.arrow.rhs, NULL, np->u.arrow.parent);
1350 if (anp->u.arrow.lhs->t == T_ARROW) {
1351 anp->u.arrow.lhs->u.arrow.parent = anp;
1352 find_first_arrow(infop, anp->u.arrow.lhs);
1354 vmatch(infop, anp->u.arrow.lhs, NULL, anp);
1374 cp_reset(np->u.arrow.lhs);
1375 cp_reset(np->u.arrow.rhs);
1407 if (!anp->u.arrow.needed)
1413 anp->u.arrow.parent = NULL;
1476 struct arrow *arrowp;
1489 dlst = arrownp->u.arrow.rhs;
1490 slst = arrownp->u.arrow.lhs;
1494 slst = slst->u.arrow.rhs;
1517 sizeof (struct arrow));
1518 bzero(arrowp, sizeof (struct arrow));
1839 add_arrow(struct bubble *bp, struct arrow *ap)
1861 static struct arrow *
1865 struct arrow *newa;
1867 newa = alloc_xmalloc(sizeof (struct arrow));
1868 bzero(newa, sizeof (struct arrow));
1878 alloc_xfree(newa, sizeof (struct arrow));
1885 /* returns false if traits show that arrow should not be added after all */
1887 itree_set_arrow_traits(struct arrow *ap, struct node *fromev,
1924 return (0); /* constraint disallows arrow */
1947 return (0); /* constraint disallows arrow */
1950 /* if we came up with any deferred constraints, add them to arrow */
1956 return (1); /* constraints allow arrow */
1964 arrow_add_within(struct arrow *ap, struct node *xpr)
2026 alloc_xfree(al->arrowp, sizeof (struct arrow));
2034 itree_delete_arrow(struct bubble *bubp, struct arrow *arrow)
2039 if (al->arrowp == arrow) {
2048 if (al->arrowp == arrow) {
2069 alloc_xfree(al->arrowp, sizeof (struct arrow));
2088 itree_add_constraint(struct arrow *arrowp, struct node *c)
2112 itree_next_constraint(struct arrow *arrowp, struct constraintlist *last)
2124 itree_free_constraints(struct arrow *ap)