int main( ) { int c; extern int brace, brack, paren; while ((c = getchar()) != EOF){ if (c == '/'){ if((c = getchar()) == '*') in_comment(); else search(c); }else if(c == '\'' || c == '"') in_quote(c); else search(c); if(brace < 0){ printf("Unbalanced braces\n"); brace = 0; }else if(brack < 0){ printf("Unbalanced bracets\n"); brack = 0; }else if(paren < 0){ printf("Unbalanced parentheses\n"); paren = 0; } } if(brace > 0) printf("Unbalanced braces\n"); if(brack > 0) printf("Unbalanced brackets\n"); if(paren > 0) printf("Unbalanced parenthese\n"); return 0; }
/* C语言程序初步的语法检查 */ main(void) { int c; extern int brace, brack, paren; while ((c = getchar()) != EOF) { if (c == '/') { if ((c = getchar()) == '*') in_comment(); /* 评论内 */ else search(c); } else if (c == '\'' || c == '"') in_quote(c); /* 引用内 */ else search(c); if (brace < 0) { /* 输出错误 */ printf("Unbalanced braces\n"); /* 大括号 */ brace = 0; } else if (brack < 0) { printf("Unbalanced brackets\n"); /* 方括号 */ brack = 0; } else if (paren < 0) { printf("Unbalanced parentheses\n"); /* 圆括号 */ paren = 0; } } if (brace > 0) /* 输出错误 */ printf("Unbalanced braces\n"); if (brack > 0) printf("Unbalanced brackets\n"); if (paren > 0) printf("Unbalanced parenthess\n"); }
main() { int c; c = getchar(); while(c != EOF){ if(c == '/'){ if((c = getchar()) == '*') in_cmmt(); //don't count s, m or b unitl we find '*/' else search(c); //not in a comment } else if (c == '\''|| c == '"') in_quote(); else search(c); if (s < 0){ printf("error"); s = 0; } if (m < 0){ printf(); m = 0; } if (b < 0){ printf(); b = 0; } } if () if () if () }
template <class Ch, class Tr, class IsSpecial> inline std::string in_quote(std::basic_istream<Ch, Tr> &i, IsSpecial is_special = IsSpecial(), char quote_char='"', char escape_char='\\') { // std::basic_stringstream<Ch,Tr> s; std::vector<Ch> v; in_quote(i, back_inserter(v)//std::ostreambuf_iterator<Ch,Tr>(s) , is_special, quote_char, escape_char); return std::string(v.begin(), v.end()); // return s.str(); }
main() { int c, d; extern int brace, brack, paren; brace = brack = paren = 0; extern nml; while( ( c = getchar() ) != EOF ) { if ( c == '\n' ) ++nml; else if ( c == '/' ) { if ( ( c = getchar() ) == '*' ) in_comment(); else if ( c == '\n' ) ++nml; else search( c ); } else if ( c == '\'' || c == '"' ) in_quote( c ); else search( c ); if ( brace < 0 ) { printf("Unbalance barces at line %d.\n", nml); brace = 0; } else if ( brack < 0 ) { printf("Unbalance brackeks at line %d.\n", nml); brack = 0; } else if ( paren < 0 ) { printf("Unbalance parentheses at line %d.\n", nml); paren = 0; } } if ( brace > 0 ) printf("Unbalance barces.\n"); if ( brack > 0 ) printf("Unbalance brackets.\n"); if ( paren > 0 ) printf("Unbalance parentheses.\n"); }