K & R C Programs Exercise 1-24.

K and R C, Solution to Exercise 1-24:
C program for rudimentary syntax errors like unbalanced parentheses, brackets,quotes,and braces. This program is hard if we do it in full generality. K and R C Program Exercises provides the solution to all the exercises in the C Programming Language, second addition, by Brian W.Keringhan and Dennis M.Ritchie(Prentice Hall,1988). You can learn and solve K&R C Programs Exercise. Read more about C Programming Language .
/***********************************************************
* You can use all the programs on www.c-program-example.com
* for personal and learning purposes. For permissions to use the
* programs for commercial purposes,
* contact info@c-program-example.com
* To find more C programs, do visit www.c-program-example.com
* and browse!
*
* Happy Coding
***********************************************************/

#include <stdio.h>

#define MAXLINE 1000 /* max input line size */
char line[MAXLINE]; /*current input line*/

int getline(void); /* taken from the KnR book. */

int main() {
int len = 0;
int t = 0;
int brace = 0, parenthesis = 0, brack = 0;
int s_quote = 1, d_quote = 1;

while ((len = getline()) > 0) {
t = 0;
while (t < len) {
if (line[t] == '{') {
brace++;
}
if (line[t] == '}') {
brace--;
}
if (line[t] == '[') {
brack++;
}
if (line[t] == ']') {
brack--;
}
if (line[t] == '(') {
parenthesis++;
}
if (line[t] == ')') {
parenthesis--;
}
if (line[t] == ''') {
s_quote *= -1;
}
if (line[t] == '"') {
d_quote *= -1;
}
t++;
}
}
if (d_quote != 1)
printf("Mismatching double quote markn");
if (s_quote != 1)
printf("Mismatching single quote markn");
if (parenthesis != 0)
printf("Mismatching parenthesisn");
if (brace != 0)
printf("Mismatching bracesn");
if (brack != 0)
printf("Mismatching bracket markn");
if (brack == 0 && brace == 0 && parenthesis == 0 && s_quote == 1 && d_quote
== 1)
printf("Syntax appears to be correct.n");
return 0;
}

/* getline function */
int getline(void) {
int c, i;
extern char line[];

for (i = 0; i < MAXLINE - 1 && (c = getchar()) != EOF && c != 'n'; ++i)
line[i] = c;
if (c == 'n') {
line[i] = c;
++i;
}
line[i] = '