int parsefactor() { if (token == TOK_NUM) { int lhs = tokeniser_number(); token = tokeniser_next(); return lhs; } else if (token == TOK_VAR) { char* varName = tokeniser_string(); token = tokeniser_next(); return getvariable(varName); } else { printf("invalid expression\n"); token = TOK_ERR; return 0; } }
int main(int argc, char **argv) { int n = 0; if (*++argv) { n = atoi(*argv); } n = (n)?n:6; struct tnode *root; char vname[MAXVAR]; root = NULL; while (getvariable(vname)) { root = addvar(root, vname, n); } treeprint(root); return 0; }