diff -r 820b22e13ff1 -r 39c28ec933dd bintools/rcomp/src/RCSCAN.CPP --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bintools/rcomp/src/RCSCAN.CPP Mon May 10 19:54:49 2010 +0100 @@ -0,0 +1,99 @@ +/* +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include + +int yylex(); + +#if defined(__MSVCDOTNET__) || defined(__TOOLS2__) +#include +using std::cout; +using std::cerr; +using std::endl; +#else //!__MSVCDOTNET__ +#include +#endif //__MSVCDOTNET__ + +void yyrestart( FILE *new_file ); +extern int yylineno; + +#include "RCSCAN.H" +#include "ERRORHAN.H" +#include "MEM.H" +#include // for va_... used by yyerror +#include // for vsprintf... used by yerror + + +rcscan::rcscan(const FileLineManager& aFileLineHandlerToSet,FILE* aSourceFile): + iErrorFound(0), + iFileLineHandler(aFileLineHandlerToSet) + { + yyrestart(aSourceFile); + } + +rcscan& rcscan::operator=(const rcscan& /*scan*/) + { + assert(0); + return *this; + } +#if defined(__TOOLS2_WINDOWS__) +void rcscan::yyerror(char* aCharPtr, __VALIST aList) +#else +void rcscan::yyerror(char* aCharPtr, va_list aList) +#endif + { + if (yylineno) + { + MOFF; + cerr << iFileLineHandler.GetErrorLine(yylineno) << ") : "; + MON; + } + + char buffer[128]; + vsprintf(buffer, aCharPtr, aList); + + cerr << buffer << endl; + iErrorFound = 1; + } + +void rcscan::yyerror(char* aCharPtr,...) + { + if(yylineno) + { + MOFF; + cerr << *iFileLineHandler.GetCurrentFile() << "("; + cerr << iFileLineHandler.GetErrorLine(yylineno) << ") : "; + MON; + } + + // Format a string that can be sent via the iostream mechanism + va_list va; + char buffer[128]; + va_start(va,aCharPtr); + vsprintf(buffer, aCharPtr, va ); + va_end(va); + + cerr << buffer << endl; + iErrorFound = 1; + } + +int rcscan::ErrorWasFound() const + { + return iErrorFound; + }