diff -r 000000000000 -r 818e61de6cd1 crashanalysercmd/PerfToolsSharedLibraries/Engine/SymbianUtils/SourceParser/Parsers/ParserSrcClass.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/crashanalysercmd/PerfToolsSharedLibraries/Engine/SymbianUtils/SourceParser/Parsers/ParserSrcClass.cs Thu Feb 11 15:50:58 2010 +0200 @@ -0,0 +1,77 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: +* +*/ +using System; +using System.Collections.Generic; +using System.Text; +using SymbianUtils.SourceParser.Objects; + +namespace SymbianUtils.SourceParser.Parsers +{ + public class ParserSrcClass + { + #region Constructors + public ParserSrcClass() + { + } + #endregion + + #region API + public SrcClass Parse( ref string aText ) + { + SrcClass ret = new SrcClass(); + + // First look for the class separator. If we find that, then everything before + // it is the class name. + // + // If no class separator exists, then we treat the whole thing as the class + // name. + int pos = aText.IndexOf( SrcClass.KClassSeparator ); + if ( pos > 0 || pos < 0 ) + { + // By default, treat the whole text as the class name + string className = aText; + if ( pos > 0 ) + { + className = aText.Substring( 0, pos ); + aText = aText.Substring( pos + SrcClass.KClassSeparator.Length ); + ret.Name = className; + } + else + { + // Everything was consumed... We return the 'global function' class + // for this text + aText = string.Empty; + } + } + else + { + // First thing in the string is the class separator. + // Odd? + System.Diagnostics.Debug.Assert( false ); + } + + return ret; + } + #endregion + + #region Properties + #endregion + + #region Data members + #endregion + } +}