diff --git a/a1/program.c b/a1/program.c index ebaa913..bb417ff 100644 --- a/a1/program.c +++ b/a1/program.c @@ -29,7 +29,6 @@ int main() { char stack[100]; int top = -1; - // printf(""); fgets(input, 101, stdin); printf("Read: %s", input); @@ -46,24 +45,24 @@ int main() { } } else if (isClosing(current)) { if (top == -1) { - printf("Unexpected closing bracket %c in %d\n", current, i); + printf("Unexpected closing bracket %c at position %d\n", current, i); return 0; } if (!isMatching(stack[top], current)) { - printf("Crossed bracket '%c' in %d , expected \n", current, i); - (stack[top] == '{') ? '}' : - (stack[top] == '[') ? ']' : - (stack[top] == '(') ? ')' : '>', - current, i; + char expected = expectedClosing(stack[top]); + printf("Crossed bracket '%c' at position %d, expected '%c'\n", current, i, expected); return 0; } top--; } } - if (top != -1) { - char expected = expectedClosing(stack[top]); - printf("Missing closing brackets: %c\n", expected); + if (top != -1) { + printf("Missing closing brackets: "); + while (top != -1) { + printf("%c", expectedClosing(stack[top--])); + } + printf("\n"); return 0; }