/* ECP: FILEname=fig14_27.cpp */ /* 1*/ #include /* 2*/ #include /* 3*/ #include "string.h" /* 4*/ struct Symbol /* 5*/ { /* 6*/ char Sym; /* 7*/ int Line; /* 8*/ }; /* 1*/ int /* 2*/ CheckMatch( const Symbol & OpSym, const Symbol & ClSym ) /* 3*/ { /* 4*/ if( OpSym.Sym == '(' && ClSym.Sym == ')' || /* 5*/ OpSym.Sym == '[' && ClSym.Sym == ']' || /* 6*/ OpSym.Sym == '{' && ClSym.Sym == '}' ) /* 7*/ return 0; /* 8*/ cout << "Found " << ClSym.Sym << " on line " << /* 9*/ ClSym.Line << "; does not match " << OpSym.Sym << /*10*/ " at line " <> File; /* 6*/ return CheckBalance( File ); /* 7*/ }