Lines Matching refs:parent

516 eqn_box_alloc(struct eqn_node *ep, struct eqn_box *parent)  in eqn_box_alloc()  argument
521 bp->parent = parent; in eqn_box_alloc()
522 bp->parent->args++; in eqn_box_alloc()
523 bp->font = bp->parent->font; in eqn_box_alloc()
526 if (NULL != parent->first) { in eqn_box_alloc()
527 parent->last->next = bp; in eqn_box_alloc()
528 bp->prev = parent->last; in eqn_box_alloc()
530 parent->first = bp; in eqn_box_alloc()
532 parent->last = bp; in eqn_box_alloc()
543 eqn_box_makebinary(struct eqn_node *ep, struct eqn_box *parent) in eqn_box_makebinary() argument
547 assert(NULL != parent->last); in eqn_box_makebinary()
548 b = parent->last; in eqn_box_makebinary()
549 if (parent->last == parent->first) in eqn_box_makebinary()
550 parent->first = NULL; in eqn_box_makebinary()
551 parent->args--; in eqn_box_makebinary()
552 parent->last = b->prev; in eqn_box_makebinary()
554 newb = eqn_box_alloc(ep, parent); in eqn_box_makebinary()
560 b->parent = newb; in eqn_box_makebinary()
662 struct eqn_box *cur, *nbox, *parent, *split; in eqn_parse() local
669 parent = ep->node->eqn; in eqn_parse()
670 assert(parent != NULL); in eqn_parse()
718 if (parent->last == NULL) { in eqn_parse()
721 cur = eqn_box_alloc(ep, parent); in eqn_parse()
725 parent = eqn_box_makebinary(ep, parent); in eqn_parse()
726 parent->type = EQN_LIST; in eqn_parse()
727 parent->expectargs = 1; in eqn_parse()
728 parent->font = EQNFONT_ROMAN; in eqn_parse()
731 parent->top = mandoc_strdup("\\[ad]"); in eqn_parse()
734 parent->top = mandoc_strdup("\\[->]"); in eqn_parse()
737 parent->top = mandoc_strdup("\\[<>]"); in eqn_parse()
740 parent->top = mandoc_strdup("\\[a~]"); in eqn_parse()
743 parent->bottom = mandoc_strdup("\\[ul]"); in eqn_parse()
746 parent->top = mandoc_strdup("\\[rn]"); in eqn_parse()
749 parent->top = mandoc_strdup("\\[a.]"); in eqn_parse()
752 parent->top = mandoc_strdup("\\[ha]"); in eqn_parse()
757 parent = parent->parent; in eqn_parse()
771 while (parent->args == parent->expectargs) in eqn_parse()
772 parent = parent->parent; in eqn_parse()
778 parent = eqn_box_alloc(ep, parent); in eqn_parse()
779 parent->type = EQN_LIST; in eqn_parse()
780 parent->expectargs = 1; in eqn_parse()
783 parent->font = EQNFONT_FAT; in eqn_parse()
786 parent->font = EQNFONT_ROMAN; in eqn_parse()
789 parent->font = EQNFONT_ITALIC; in eqn_parse()
792 parent->font = EQNFONT_BOLD; in eqn_parse()
816 while (parent->args == parent->expectargs) in eqn_parse()
817 parent = parent->parent; in eqn_parse()
818 parent = eqn_box_alloc(ep, parent); in eqn_parse()
819 parent->type = EQN_LIST; in eqn_parse()
820 parent->expectargs = 1; in eqn_parse()
821 parent->size = size; in eqn_parse()
832 if (parent->last == NULL) { in eqn_parse()
835 cur = eqn_box_alloc(ep, parent); in eqn_parse()
839 while (parent->expectargs == 1 && parent->args == 1) in eqn_parse()
840 parent = parent->parent; in eqn_parse()
842 for (cur = parent; cur != NULL; cur = cur->parent) in eqn_parse()
850 parent = cur->parent; in eqn_parse()
852 if (tok == EQN_TOK_SUP && parent->pos == EQNPOS_SUB) { in eqn_parse()
853 parent->expectargs = 3; in eqn_parse()
854 parent->pos = EQNPOS_SUBSUP; in eqn_parse()
857 if (tok == EQN_TOK_TO && parent->pos == EQNPOS_FROM) { in eqn_parse()
858 parent->expectargs = 3; in eqn_parse()
859 parent->pos = EQNPOS_FROMTO; in eqn_parse()
862 parent = eqn_box_makebinary(ep, parent); in eqn_parse()
865 parent->pos = EQNPOS_FROM; in eqn_parse()
868 parent->pos = EQNPOS_TO; in eqn_parse()
871 parent->pos = EQNPOS_SUP; in eqn_parse()
874 parent->pos = EQNPOS_SUB; in eqn_parse()
881 while (parent->args == parent->expectargs) in eqn_parse()
882 parent = parent->parent; in eqn_parse()
888 parent = eqn_box_alloc(ep, parent); in eqn_parse()
889 parent->type = EQN_SUBEXPR; in eqn_parse()
890 parent->pos = EQNPOS_SQRT; in eqn_parse()
891 parent->expectargs = 1; in eqn_parse()
899 if (parent->last == NULL) { in eqn_parse()
902 cur = eqn_box_alloc(ep, parent); in eqn_parse()
906 while (parent->args == parent->expectargs) in eqn_parse()
907 parent = parent->parent; in eqn_parse()
908 while (EQN_SUBEXPR == parent->type) in eqn_parse()
909 parent = parent->parent; in eqn_parse()
910 parent = eqn_box_makebinary(ep, parent); in eqn_parse()
911 parent->pos = EQNPOS_OVER; in eqn_parse()
920 for (cur = parent; cur != NULL; cur = cur->parent) in eqn_parse()
931 parent = cur; in eqn_parse()
941 parent->right = mandoc_strdup("\\[rc]"); in eqn_parse()
943 parent->right = mandoc_strdup("\\[rf]"); in eqn_parse()
945 parent->right = in eqn_parse()
948 parent = parent->parent; in eqn_parse()
950 (parent->type == EQN_PILE || in eqn_parse()
951 parent->type == EQN_MATRIX)) in eqn_parse()
952 parent = parent->parent; in eqn_parse()
954 while (parent->type == EQN_LIST && in eqn_parse()
955 parent->expectargs == 1 && in eqn_parse()
956 parent->args == 1) in eqn_parse()
957 parent = parent->parent; in eqn_parse()
966 while (parent->args == parent->expectargs) in eqn_parse()
967 parent = parent->parent; in eqn_parse()
974 parent = eqn_box_alloc(ep, parent); in eqn_parse()
975 parent->type = EQN_LIST; in eqn_parse()
978 parent->left = mandoc_strdup("\\[lc]"); in eqn_parse()
980 parent->left = mandoc_strdup("\\[lf]"); in eqn_parse()
982 parent->left = in eqn_parse()
993 while (parent->args == parent->expectargs) in eqn_parse()
994 parent = parent->parent; in eqn_parse()
995 parent = eqn_box_alloc(ep, parent); in eqn_parse()
996 parent->type = EQN_PILE; in eqn_parse()
997 parent->expectargs = 1; in eqn_parse()
1000 for (cur = parent; cur != NULL; cur = cur->parent) in eqn_parse()
1008 parent = eqn_box_alloc(ep, cur); in eqn_parse()
1009 parent->type = EQN_LIST; in eqn_parse()
1012 while (parent->args == parent->expectargs) in eqn_parse()
1013 parent = parent->parent; in eqn_parse()
1014 parent = eqn_box_alloc(ep, parent); in eqn_parse()
1015 parent->type = EQN_MATRIX; in eqn_parse()
1016 parent->expectargs = 1; in eqn_parse()
1030 while (parent->args == parent->expectargs) in eqn_parse()
1031 parent = parent->parent; in eqn_parse()
1032 cur = eqn_box_alloc(ep, parent); in eqn_parse()
1073 if (parent->args == parent->expectargs) { in eqn_parse()
1076 parent->first = cur->next; in eqn_parse()
1079 parent->last = cur->prev; in eqn_parse()
1080 parent->args--; in eqn_parse()
1082 split = eqn_box_alloc(ep, parent); in eqn_parse()
1086 cur->parent = split; in eqn_parse()
1088 parent = split; in eqn_parse()
1091 nbox = eqn_box_alloc(ep, parent); in eqn_parse()
1106 parent = split->parent; in eqn_parse()