void showExp2(Exp2 e2) { switch(e2->flag) { case PScons_Soma : printf("(+)"); showExp(e2->u.d1.s1); break; case PScons_Sub : printf("(-)"); showExp(e2->u.d2.s1); break; case PScons_NIL : break; } }
int main(int argc, char ** argv) { FILE *input; Exp parse_tree; if (argc > 1) { input = fopen(argv[1], "r"); if (!input) { fprintf(stderr, "Error opening input file.\n"); exit(1); } } else input = stdin; /* The default entry point is used. For other options see Parser.h */ parse_tree = pExp(input); if (parse_tree) { printf("\nParse Succesful!\n"); printf("\n[Abstract Syntax]\n"); printf("%s\n\n", showExp(parse_tree)); printf("[Linearized Tree]\n"); printf("%s\n\n", printExp(parse_tree)); return 0; } return 1; }