Lines Matching refs:parent

540  * Allocate a box as the last child of the parent node.
543 eqn_box_alloc(struct eqn_node *ep, struct eqn_box *parent)
548 bp->parent = parent;
549 bp->parent->args++;
553 if (NULL != parent->first) {
554 parent->last->next = bp;
555 bp->prev = parent->last;
557 parent->first = bp;
559 parent->last = bp;
564 * Reparent the current last node (of the current parent) under a new
566 * Then return the new parent.
571 enum eqn_post pos, struct eqn_box *parent)
575 assert(NULL != parent->last);
576 b = parent->last;
577 if (parent->last == parent->first)
578 parent->first = NULL;
579 parent->args--;
580 parent->last = b->prev;
582 newb = eqn_box_alloc(ep, parent);
589 b->parent = newb;
696 eqn_parse(struct eqn_node *ep, struct eqn_box *parent)
707 assert(parent != NULL);
755 if (parent->last == NULL) {
758 cur = eqn_box_alloc(ep, parent);
762 parent = eqn_box_makebinary(ep, EQNPOS_NONE, parent);
763 parent->type = EQN_LISTONE;
764 parent->expectargs = 1;
802 parent->top = mandoc_strdup(sym);
805 parent->bottom = mandoc_strdup(sym);
810 parent = parent->parent;
828 while (parent->args == parent->expectargs)
829 parent = parent->parent;
835 parent = eqn_box_alloc(ep, parent);
836 parent->type = EQN_LISTONE;
837 parent->expectargs = 1;
840 parent->font = EQNFONT_FAT;
843 parent->font = EQNFONT_ROMAN;
846 parent->font = EQNFONT_ITALIC;
849 parent->font = EQNFONT_BOLD;
873 parent = eqn_box_alloc(ep, parent);
874 parent->type = EQN_LISTONE;
875 parent->expectargs = 1;
876 parent->size = size;
887 if (parent->last == NULL) {
890 cur = eqn_box_alloc(ep, parent);
895 if (EQN_TOK_SUP == tok && parent->pos == EQNPOS_SUB) {
896 parent->expectargs = 3;
897 parent->pos = EQNPOS_SUBSUP;
900 if (EQN_TOK_TO == tok && parent->pos == EQNPOS_FROM) {
901 parent->expectargs = 3;
902 parent->pos = EQNPOS_FROMTO;
921 parent = eqn_box_makebinary(ep, pos, parent);
924 while (parent->args == parent->expectargs)
925 parent = parent->parent;
931 parent = eqn_box_alloc(ep, parent);
932 parent->type = EQN_SUBEXPR;
933 parent->pos = EQNPOS_SQRT;
934 parent->expectargs = 1;
942 if (parent->last == NULL) {
945 cur = eqn_box_alloc(ep, parent);
949 while (EQN_SUBEXPR == parent->type)
950 parent = parent->parent;
951 parent = eqn_box_makebinary(ep, EQNPOS_OVER, parent);
960 for (cur = parent; cur != NULL; cur = cur->parent)
970 parent = cur;
981 parent->right = mandoc_strdup(sym);
984 parent->right = mandoc_strdup(sym);
986 parent->right = mandoc_strndup(start, sz);
988 parent = parent->parent;
989 if (EQN_TOK_BRACE_CLOSE == tok && parent &&
990 (parent->type == EQN_PILE ||
991 parent->type == EQN_MATRIX))
992 parent = parent->parent;
994 while (parent->type == EQN_LISTONE &&
995 parent->args == parent->expectargs)
996 parent = parent->parent;
1005 while (parent->args == parent->expectargs)
1006 parent = parent->parent;
1013 parent = eqn_box_alloc(ep, parent);
1014 parent->type = EQN_LIST;
1018 parent->left = mandoc_strdup(sym);
1021 parent->left = mandoc_strdup(sym);
1023 parent->left = mandoc_strndup(start, sz);
1033 while (parent->args == parent->expectargs)
1034 parent = parent->parent;
1035 parent = eqn_box_alloc(ep, parent);
1036 parent->type = EQN_PILE;
1037 parent->expectargs = 1;
1040 for (cur = parent; cur != NULL; cur = cur->parent)
1048 parent = eqn_box_alloc(ep, cur);
1049 parent->type = EQN_LIST;
1052 while (parent->args == parent->expectargs)
1053 parent = parent->parent;
1054 parent = eqn_box_alloc(ep, parent);
1055 parent->type = EQN_MATRIX;
1056 parent->expectargs = 1;
1071 while (parent->args == parent->expectargs)
1072 parent = parent->parent;
1073 cur = eqn_box_alloc(ep, parent);
1089 while (parent->type == EQN_LISTONE &&
1090 parent->args == parent->expectargs)
1091 parent = parent->parent;