sl@0: // Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of the License "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #ifndef __SYMBOLS__ sl@0: #define __SYMBOLS__ sl@0: sl@0: #include "trace.h" sl@0: sl@0: class SymbolFile sl@0: { sl@0: public: sl@0: class Parser sl@0: { sl@0: public: sl@0: virtual void File(const char* aName) =0; sl@0: virtual bool Symbol(const char* aName, PC aPc, int aLength) =0; sl@0: virtual void Done(PC aFirstPc, PC aLastPc, int aModuleId) =0; sl@0: }; sl@0: private: sl@0: enum TState {EPreFile, EFile, EPostFile, ESymbol, EError}; sl@0: public: sl@0: SymbolFile(const char* aSymbolFile, bool aRofs=false); sl@0: ~SymbolFile(); sl@0: // sl@0: bool Parse(Parser& aParser, const char* aModuleName=0, PC aAddress=0, PC aModuleLength=0,int aModuleId=0) const; sl@0: private: sl@0: char* iText; sl@0: char* iTextLower; sl@0: int iLength; sl@0: }; sl@0: sl@0: #endif // __SYMBOLS__