Path: blob/master/languages/cprogs/Ex_1.24_synerrors.c
1240 views
/**1*2* Exercise 1.24 - Syntax Errors.3*4* Program to check rudimentary syntax errors like un-match braces,5* brackets or parenthesis.6*7**/89#include<stdio.h>1011int brace,brack,paren;1213void incomment();14void inquote(int c);15void search(int c);1617int main(void)18{19int c;2021extern int brace, brack, paren;2223while((c=getchar())!=EOF)24if( c == '/')25if((c=getchar())== '*')26incomment();27else28search(c);29else if( c == '\'' || c == '"')30inquote(c);31else32search(c);3334if( brace < 0)35{36printf("Unmatched Braces\n");37brace = 0;38}39else if( brack < 0)40{41printf("Unmatched brackets\n");42brack = 0;43}44else if( paren < 0)45{46printf("Unmatched parenthesis\n");47paren = 0;48}4950if(brace > 0)51printf("Unmatched braces\n");52else if(brack > 0)53printf("Unmatched brackets\n");54else if(paren > 0)55printf("Unmatched parenthesis\n");5657return 0;58}5960void incomment()61{62int c,d;6364c = getchar();65d = getchar();6667while(c != '*' || d != '/')68{69c = d;70d = getchar();71}72}7374void inquote(int c)75{76int d;7778putchar(c);7980while((d=getchar())!=c)81if( d == '\\')82getchar();83}8485void search(int c)86{87extern int brace,brack,paren;8889if ( c == '{')90--brace;91else if ( c == '}')92++brace;93else if( c == '[')94--brack;95else if( c == ']')96++brack;97else if( c == '(')98--paren;99else if( c == ')')100++paren;101}102103104105106107