bintools/rcomp/src/RCSCAN.CPP
changeset 0 044383f39525
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bintools/rcomp/src/RCSCAN.CPP	Tue Oct 27 16:36:35 2009 +0000
@@ -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 <assert.h>
+#include <stdio.h>
+
+int yylex();
+
+#if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
+#include <iostream>
+using std::cout;
+using std::cerr;
+using std::endl;
+#else //!__MSVCDOTNET__
+#include <iostream.h>
+#endif //__MSVCDOTNET__
+
+void yyrestart( FILE *new_file );
+extern int yylineno;
+
+#include "RCSCAN.H"  
+#include "ERRORHAN.H"
+#include "MEM.H"     
+#include <stdarg.h>  // for va_... used by yyerror
+#include <stdio.h>   // 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;
+	}