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;
	}
}
Пример #2
0
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;
}