version 1.32, 2017/06/23 21:04:34 |
version 1.33, 2017/06/26 11:04:26 |
|
|
eqn_parse(struct eqn_node *ep, struct eqn_box *parent) |
eqn_parse(struct eqn_node *ep, struct eqn_box *parent) |
{ |
{ |
char sym[64]; |
char sym[64]; |
struct eqn_box *cur, *nbox; |
struct eqn_box *cur, *nbox, *split; |
const char *cp, *cpn, *start; |
const char *cp, *cpn, *start; |
char *p; |
char *p; |
size_t sz; |
size_t sz; |
|
|
break; |
break; |
cpn = p - 1; |
cpn = p - 1; |
ccln = CCL_LET; |
ccln = CCL_LET; |
|
split = NULL; |
for (;;) { |
for (;;) { |
/* Advance to next character. */ |
/* Advance to next character. */ |
cp = cpn++; |
cp = cpn++; |
|
|
parent->last = cur->prev; |
parent->last = cur->prev; |
parent->args--; |
parent->args--; |
/* Set up a list instead. */ |
/* Set up a list instead. */ |
nbox = eqn_box_alloc(ep, parent); |
split = eqn_box_alloc(ep, parent); |
nbox->type = EQN_LIST; |
split->type = EQN_LIST; |
/* Insert the word into the list. */ |
/* Insert the word into the list. */ |
nbox->first = nbox->last = cur; |
split->first = split->last = cur; |
cur->parent = nbox; |
cur->parent = split; |
cur->prev = NULL; |
cur->prev = NULL; |
parent = nbox; |
parent = split; |
} |
} |
/* Append a new text box. */ |
/* Append a new text box. */ |
nbox = eqn_box_alloc(ep, parent); |
nbox = eqn_box_alloc(ep, parent); |
|
|
cpn = p - 1; |
cpn = p - 1; |
ccln = CCL_LET; |
ccln = CCL_LET; |
} |
} |
|
if (split != NULL) |
|
parent = split->parent; |
break; |
break; |
} |
} |
/* |
/* |