Lines Matching +full:sigma +full:- +full:delta

223 	{ "delta", "*d" }, /* EQNSYM_delta */
238 { "sigma", "*s" }, /* EQNSYM_sigma */
244 { "DELTA", "*D" }, /* EQNSYM_DELTA */
251 { "SIGMA", "*S" }, /* EQNSYM_SIGMA */
272 { "<-", "<-" }, /* EQNSYM_larrow */
273 { "->", "->" }, /* EQNSYM_rarrow */
274 { "+-", "+-" }, /* EQNSYM_pm */
279 { "-", "mi" }, /* EQNSYM_minus */
312 ep->gsize = EQN_DEFSIZE; in eqn_alloc()
319 free(ep->data); in eqn_reset()
320 ep->data = ep->start = ep->end = NULL; in eqn_reset()
321 ep->sz = ep->toksz = 0; in eqn_reset()
329 if (ep->data == NULL) { in eqn_read()
330 ep->sz = strlen(p); in eqn_read()
331 ep->data = mandoc_strdup(p); in eqn_read()
333 ep->sz = mandoc_asprintf(&cp, "%s %s", ep->data, p); in eqn_read()
334 free(ep->data); in eqn_read()
335 ep->data = cp; in eqn_read()
337 ep->sz += 1; in eqn_read()
341 * Find the key "key" of the give size within our eqn-defined values.
348 for (i = 0; i < (int)ep->defsz; i++) in eqn_def_find()
349 if (ep->defs[i].keysz && STRNEQ(ep->defs[i].key, in eqn_def_find()
350 ep->defs[i].keysz, ep->start, ep->toksz)) in eqn_def_find()
351 return &ep->defs[i]; in eqn_def_find()
358 * MODE_QUOTED: Use *ep->start as the delimiter; the token ends
361 * MODE_QUOTED when *ep->start is '"'.
362 * MODE_NOSUB: If *ep->start is a curly brace, the token ends after it;
372 * a token match, *ep->start is set to an allocated string that the
388 if (ep->end - ep->data >= ep->sublen) in eqn_next()
389 ep->subcnt = 0; in eqn_next()
391 ep->start = ep->end; in eqn_next()
394 switch (*ep->start) { in eqn_next()
396 ep->toksz = 0; in eqn_next()
407 ep->start++; in eqn_next()
413 ep->end = strchr(ep->start + 1, *ep->start); in eqn_next()
414 ep->start++; /* Skip opening quote. */ in eqn_next()
415 if (ep->end == NULL) { in eqn_next()
417 ep->node->line, ep->node->pos, NULL); in eqn_next()
418 ep->end = strchr(ep->start, '\0'); in eqn_next()
421 ep->end = ep->start + 1; in eqn_next()
422 if (*ep->start != '{' && *ep->start != '}') in eqn_next()
423 ep->end += strcspn(ep->end, " ^~\"{}\t"); in eqn_next()
425 ep->toksz = ep->end - ep->start; in eqn_next()
426 if (quoted && *ep->end != '\0') in eqn_next()
427 ep->end++; /* Skip closing quote. */ in eqn_next()
428 while (*ep->end != '\0' && strchr(" \t^~", *ep->end) != NULL) in eqn_next()
429 ep->end++; in eqn_next()
436 if (++ep->subcnt > EQN_NEST_MAX) { in eqn_next()
438 ep->node->line, ep->node->pos, NULL); in eqn_next()
443 if ((diff = def->valsz - ep->toksz) > 0) { in eqn_next()
444 start = ep->start - ep->data; in eqn_next()
445 ep->sz += diff; in eqn_next()
446 ep->data = mandoc_realloc(ep->data, ep->sz + 1); in eqn_next()
447 ep->start = ep->data + start; in eqn_next()
448 ep->sublen += diff; in eqn_next()
451 memmove(ep->start + def->valsz, ep->start + ep->toksz, in eqn_next()
452 strlen(ep->start + ep->toksz) + 1); in eqn_next()
453 memcpy(ep->start, def->val, def->valsz); in eqn_next()
454 newlen = ep->start - ep->data + def->valsz; in eqn_next()
455 if (ep->sublen < newlen) in eqn_next()
456 ep->sublen = newlen; in eqn_next()
461 ep->start = mandoc_strndup(ep->start, ep->toksz); in eqn_next()
465 if (STRNEQ(ep->start, ep->toksz, in eqn_next()
470 if (STRNEQ(ep->start, ep->toksz, in eqn_next()
472 mandoc_asprintf(&ep->start, in eqn_next()
477 ep->start = mandoc_strndup(ep->start, ep->toksz); in eqn_next()
479 if (STRNEQ(ep->start, ep->toksz, in eqn_next()
491 if (bp->first) in eqn_box_free()
492 eqn_box_free(bp->first); in eqn_box_free()
493 if (bp->next) in eqn_box_free()
494 eqn_box_free(bp->next); in eqn_box_free()
496 free(bp->text); in eqn_box_free()
497 free(bp->left); in eqn_box_free()
498 free(bp->right); in eqn_box_free()
499 free(bp->top); in eqn_box_free()
500 free(bp->bottom); in eqn_box_free()
510 bp->expectargs = UINT_MAX; in eqn_box_new()
523 bp->parent = parent; in eqn_box_alloc()
524 bp->parent->args++; in eqn_box_alloc()
525 bp->font = bp->parent->font; in eqn_box_alloc()
526 bp->size = ep->gsize; in eqn_box_alloc()
528 if (NULL != parent->first) { in eqn_box_alloc()
529 parent->last->next = bp; in eqn_box_alloc()
530 bp->prev = parent->last; in eqn_box_alloc()
532 parent->first = bp; in eqn_box_alloc()
534 parent->last = bp; in eqn_box_alloc()
542 * The new EQN_SUBEXPR will have a two-child limit.
549 assert(NULL != parent->last); in eqn_box_makebinary()
550 b = parent->last; in eqn_box_makebinary()
551 if (parent->last == parent->first) in eqn_box_makebinary()
552 parent->first = NULL; in eqn_box_makebinary()
553 parent->args--; in eqn_box_makebinary()
554 parent->last = b->prev; in eqn_box_makebinary()
555 b->prev = NULL; in eqn_box_makebinary()
557 newb->type = EQN_SUBEXPR; in eqn_box_makebinary()
558 newb->expectargs = 2; in eqn_box_makebinary()
559 newb->args = 1; in eqn_box_makebinary()
560 newb->first = newb->last = b; in eqn_box_makebinary()
561 newb->first->next = NULL; in eqn_box_makebinary()
562 b->parent = newb; in eqn_box_makebinary()
572 if (ep->end[0] == '\0' || ep->end[1] == '\0') { in eqn_delim()
574 ep->node->line, ep->node->pos, "delim"); in eqn_delim()
575 if (ep->end[0] != '\0') in eqn_delim()
576 ep->end++; in eqn_delim()
577 } else if (strncmp(ep->end, "off", 3) == 0) { in eqn_delim()
578 ep->delim = 0; in eqn_delim()
579 ep->end += 3; in eqn_delim()
580 } else if (strncmp(ep->end, "on", 2) == 0) { in eqn_delim()
581 if (ep->odelim && ep->cdelim) in eqn_delim()
582 ep->delim = 1; in eqn_delim()
583 ep->end += 2; in eqn_delim()
585 ep->odelim = *ep->end++; in eqn_delim()
586 ep->cdelim = *ep->end++; in eqn_delim()
587 ep->delim = 1; in eqn_delim()
592 * Undefine a previously-defined string.
601 ep->node->line, ep->node->pos, "undef"); in eqn_undef()
606 free(def->key); in eqn_undef()
607 free(def->val); in eqn_undef()
608 def->key = def->val = NULL; in eqn_undef()
609 def->keysz = def->valsz = 0; in eqn_undef()
620 ep->node->line, ep->node->pos, "define"); in eqn_def()
630 for (i = 0; i < (int)ep->defsz; i++) in eqn_def()
631 if (0 == ep->defs[i].keysz) in eqn_def()
634 if (i == (int)ep->defsz) { in eqn_def()
635 ep->defsz++; in eqn_def()
636 ep->defs = mandoc_reallocarray(ep->defs, in eqn_def()
637 ep->defsz, sizeof(struct eqn_def)); in eqn_def()
638 ep->defs[i].key = ep->defs[i].val = NULL; in eqn_def()
641 def = ep->defs + i; in eqn_def()
642 free(def->key); in eqn_def()
643 def->key = mandoc_strndup(ep->start, ep->toksz); in eqn_def()
644 def->keysz = ep->toksz; in eqn_def()
649 ep->node->line, ep->node->pos, "define %s", def->key); in eqn_def()
650 free(def->key); in eqn_def()
651 free(def->val); in eqn_def()
652 def->key = def->val = NULL; in eqn_def()
653 def->keysz = def->valsz = 0; in eqn_def()
656 free(def->val); in eqn_def()
657 def->val = mandoc_strndup(ep->start, ep->toksz); in eqn_def()
658 def->valsz = ep->toksz; in eqn_def()
671 parent = ep->node->eqn; in eqn_parse()
676 * Do not add it to the high-level syntax tree. in eqn_parse()
679 if (ep->data == NULL) in eqn_parse()
682 ep->start = ep->end = ep->data; in eqn_parse()
683 ep->sublen = 0; in eqn_parse()
684 ep->subcnt = 0; in eqn_parse()
700 ep->node->line, ep->node->pos, "tdefine"); in eqn_parse()
707 mandoc_msg(MANDOCERR_REQ_EMPTY, ep->node->line, in eqn_parse()
708 ep->node->pos, "%s", eqn_toks[tok]); in eqn_parse()
722 if (parent->last == NULL) { in eqn_parse()
723 mandoc_msg(MANDOCERR_EQN_NOBOX, ep->node->line, in eqn_parse()
724 ep->node->pos, "%s", eqn_toks[tok]); in eqn_parse()
726 cur->type = EQN_TEXT; in eqn_parse()
727 cur->text = mandoc_strdup(""); in eqn_parse()
730 parent->type = EQN_LIST; in eqn_parse()
731 parent->expectargs = 1; in eqn_parse()
732 parent->font = EQNFONT_ROMAN; in eqn_parse()
735 parent->top = mandoc_strdup("\\[ad]"); in eqn_parse()
738 parent->top = mandoc_strdup("\\[->]"); in eqn_parse()
741 parent->top = mandoc_strdup("\\[<>]"); in eqn_parse()
744 parent->top = mandoc_strdup("\\[a~]"); in eqn_parse()
747 parent->bottom = mandoc_strdup("\\[ul]"); in eqn_parse()
750 parent->top = mandoc_strdup("\\[rn]"); in eqn_parse()
753 parent->top = mandoc_strdup("\\[a.]"); in eqn_parse()
756 parent->top = mandoc_strdup("\\[ha]"); in eqn_parse()
761 parent = parent->parent; in eqn_parse()
768 mandoc_msg(MANDOCERR_REQ_EMPTY, ep->node->line, in eqn_parse()
769 ep->node->pos, "%s", eqn_toks[tok]); in eqn_parse()
775 while (parent->args == parent->expectargs) in eqn_parse()
776 parent = parent->parent; in eqn_parse()
783 parent->type = EQN_LIST; in eqn_parse()
784 parent->expectargs = 1; in eqn_parse()
787 parent->font = EQNFONT_FAT; in eqn_parse()
790 parent->font = EQNFONT_ROMAN; in eqn_parse()
793 parent->font = EQNFONT_ITALIC; in eqn_parse()
796 parent->font = EQNFONT_BOLD; in eqn_parse()
806 mandoc_msg(MANDOCERR_REQ_EMPTY, ep->node->line, in eqn_parse()
807 ep->node->pos, "%s", eqn_toks[tok]); in eqn_parse()
810 size = mandoc_strntoi(ep->start, ep->toksz, 10); in eqn_parse()
811 if (-1 == size) { in eqn_parse()
812 mandoc_msg(MANDOCERR_IT_NONUM, ep->node->line, in eqn_parse()
813 ep->node->pos, "%s", eqn_toks[tok]); in eqn_parse()
817 ep->gsize = size; in eqn_parse()
820 while (parent->args == parent->expectargs) in eqn_parse()
821 parent = parent->parent; in eqn_parse()
823 parent->type = EQN_LIST; in eqn_parse()
824 parent->expectargs = 1; in eqn_parse()
825 parent->size = size; in eqn_parse()
832 * We have a left-right-associative expression. in eqn_parse()
836 if (parent->last == NULL) { in eqn_parse()
837 mandoc_msg(MANDOCERR_EQN_NOBOX, ep->node->line, in eqn_parse()
838 ep->node->pos, "%s", eqn_toks[tok]); in eqn_parse()
840 cur->type = EQN_TEXT; in eqn_parse()
841 cur->text = mandoc_strdup(""); in eqn_parse()
843 while (parent->expectargs == 1 && parent->args == 1) in eqn_parse()
844 parent = parent->parent; in eqn_parse()
846 for (cur = parent; cur != NULL; cur = cur->parent) in eqn_parse()
847 if (cur->pos == EQNPOS_SUB || in eqn_parse()
848 cur->pos == EQNPOS_SUP || in eqn_parse()
849 cur->pos == EQNPOS_SUBSUP || in eqn_parse()
850 cur->pos == EQNPOS_SQRT || in eqn_parse()
851 cur->pos == EQNPOS_OVER) in eqn_parse()
854 parent = cur->parent; in eqn_parse()
856 if (tok == EQN_TOK_SUP && parent->pos == EQNPOS_SUB) { in eqn_parse()
857 parent->expectargs = 3; in eqn_parse()
858 parent->pos = EQNPOS_SUBSUP; in eqn_parse()
861 if (tok == EQN_TOK_TO && parent->pos == EQNPOS_FROM) { in eqn_parse()
862 parent->expectargs = 3; in eqn_parse()
863 parent->pos = EQNPOS_FROMTO; in eqn_parse()
869 parent->pos = EQNPOS_FROM; in eqn_parse()
872 parent->pos = EQNPOS_TO; in eqn_parse()
875 parent->pos = EQNPOS_SUP; in eqn_parse()
878 parent->pos = EQNPOS_SUB; in eqn_parse()
885 while (parent->args == parent->expectargs) in eqn_parse()
886 parent = parent->parent; in eqn_parse()
888 * Accept a left-right-associative set of arguments just in eqn_parse()
893 parent->type = EQN_SUBEXPR; in eqn_parse()
894 parent->pos = EQNPOS_SQRT; in eqn_parse()
895 parent->expectargs = 1; in eqn_parse()
899 * We have a right-left-associative fraction. in eqn_parse()
903 if (parent->last == NULL) { in eqn_parse()
904 mandoc_msg(MANDOCERR_EQN_NOBOX, ep->node->line, in eqn_parse()
905 ep->node->pos, "%s", eqn_toks[tok]); in eqn_parse()
907 cur->type = EQN_TEXT; in eqn_parse()
908 cur->text = mandoc_strdup(""); in eqn_parse()
910 while (parent->args == parent->expectargs) in eqn_parse()
911 parent = parent->parent; in eqn_parse()
912 while (EQN_SUBEXPR == parent->type) in eqn_parse()
913 parent = parent->parent; in eqn_parse()
915 parent->pos = EQNPOS_OVER; in eqn_parse()
924 for (cur = parent; cur != NULL; cur = cur->parent) in eqn_parse()
925 if (cur->type == EQN_LIST && in eqn_parse()
926 cur->expectargs > 1 && in eqn_parse()
928 cur->left != NULL)) in eqn_parse()
931 mandoc_msg(MANDOCERR_BLK_NOTOPEN, ep->node->line, in eqn_parse()
932 ep->node->pos, "%s", eqn_toks[tok]); in eqn_parse()
939 ep->node->line, ep->node->pos, in eqn_parse()
944 if (STRNEQ(ep->start, ep->toksz, "ceiling", 7)) in eqn_parse()
945 parent->right = mandoc_strdup("\\[rc]"); in eqn_parse()
946 else if (STRNEQ(ep->start, ep->toksz, "floor", 5)) in eqn_parse()
947 parent->right = mandoc_strdup("\\[rf]"); in eqn_parse()
949 parent->right = in eqn_parse()
950 mandoc_strndup(ep->start, ep->toksz); in eqn_parse()
952 parent = parent->parent; in eqn_parse()
954 (parent->type == EQN_PILE || in eqn_parse()
955 parent->type == EQN_MATRIX)) in eqn_parse()
956 parent = parent->parent; in eqn_parse()
958 while (parent->type == EQN_LIST && in eqn_parse()
959 parent->expectargs == 1 && in eqn_parse()
960 parent->args == 1) in eqn_parse()
961 parent = parent->parent; in eqn_parse()
970 while (parent->args == parent->expectargs) in eqn_parse()
971 parent = parent->parent; in eqn_parse()
974 mandoc_msg(MANDOCERR_REQ_EMPTY, ep->node->line, in eqn_parse()
975 ep->node->pos, "%s", eqn_toks[tok]); in eqn_parse()
979 parent->type = EQN_LIST; in eqn_parse()
981 if (STRNEQ(ep->start, ep->toksz, "ceiling", 7)) in eqn_parse()
982 parent->left = mandoc_strdup("\\[lc]"); in eqn_parse()
983 else if (STRNEQ(ep->start, ep->toksz, "floor", 5)) in eqn_parse()
984 parent->left = mandoc_strdup("\\[lf]"); in eqn_parse()
986 parent->left = in eqn_parse()
987 mandoc_strndup(ep->start, ep->toksz); in eqn_parse()
997 while (parent->args == parent->expectargs) in eqn_parse()
998 parent = parent->parent; in eqn_parse()
1000 parent->type = EQN_PILE; in eqn_parse()
1001 parent->expectargs = 1; in eqn_parse()
1004 for (cur = parent; cur != NULL; cur = cur->parent) in eqn_parse()
1005 if (cur->type == EQN_PILE) in eqn_parse()
1008 mandoc_msg(MANDOCERR_IT_STRAY, ep->node->line, in eqn_parse()
1009 ep->node->pos, "%s", eqn_toks[tok]); in eqn_parse()
1013 parent->type = EQN_LIST; in eqn_parse()
1016 while (parent->args == parent->expectargs) in eqn_parse()
1017 parent = parent->parent; in eqn_parse()
1019 parent->type = EQN_MATRIX; in eqn_parse()
1020 parent->expectargs = 1; in eqn_parse()
1028 p = ep->start; in eqn_parse()
1034 while (parent->args == parent->expectargs) in eqn_parse()
1035 parent = parent->parent; in eqn_parse()
1037 cur->type = EQN_TEXT; in eqn_parse()
1038 cur->text = p; in eqn_parse()
1041 cur->font = EQNFONT_ROMAN; in eqn_parse()
1044 if (cur->font == EQNFONT_NONE) in eqn_parse()
1045 cur->font = EQNFONT_ITALIC; in eqn_parse()
1050 if (cur->font != EQNFONT_NONE || *p == '\0') in eqn_parse()
1052 cpn = p - 1; in eqn_parse()
1067 cur->font = ccl == CCL_LET ? in eqn_parse()
1077 if (parent->args == parent->expectargs) { in eqn_parse()
1079 if (cur->prev == NULL) in eqn_parse()
1080 parent->first = cur->next; in eqn_parse()
1082 cur->prev->next = NULL; in eqn_parse()
1083 parent->last = cur->prev; in eqn_parse()
1084 parent->args--; in eqn_parse()
1087 split->type = EQN_LIST; in eqn_parse()
1089 split->first = split->last = cur; in eqn_parse()
1090 cur->parent = split; in eqn_parse()
1091 cur->prev = NULL; in eqn_parse()
1096 nbox->type = EQN_TEXT; in eqn_parse()
1097 nbox->text = mandoc_strdup(cpn); in eqn_parse()
1099 p = mandoc_strndup(cur->text, in eqn_parse()
1100 cpn - cur->text); in eqn_parse()
1101 free(cur->text); in eqn_parse()
1102 cur->text = p; in eqn_parse()
1105 p = nbox->text; in eqn_parse()
1106 cpn = p - 1; in eqn_parse()
1110 parent = split->parent; in eqn_parse()
1128 for (i = 0; i < (int)p->defsz; i++) { in eqn_free()
1129 free(p->defs[i].key); in eqn_free()
1130 free(p->defs[i].val); in eqn_free()
1133 free(p->data); in eqn_free()
1134 free(p->defs); in eqn_free()