void DoParse() { string tString = curString.ToString(); if (curPos == RMGenFile.FileNameInfo.Type) { Part = Part.ParseLowerCaseString(tString); } else if (curPos == RMGenFile.FileNameInfo.BaseOrder) { int tInt; if (int.TryParse(tString, out tInt)) { BaseOrder = tInt; } curPos = RMGenFile.FileNameInfo.Position; } else if (curPos == RMGenFile.FileNameInfo.Position) { int tInt; if (int.TryParse(tString, out tInt)) { Position = tInt; } curPos = RMGenFile.FileNameInfo.Waiting; } else if (curPos == RMGenFile.FileNameInfo.Order) { int tInt; if (int.TryParse(tString, out tInt)) { Order = tInt; } else { IsAcFile = true; } curPos = RMGenFile.FileNameInfo.Waiting; } else if (curPos == RMGenFile.FileNameInfo.Colour) { int tInt; if (int.TryParse(tString, out tInt)) { Colour = tInt; } curPos = RMGenFile.FileNameInfo.Waiting; } curString = new StringBuilder(); }
public TempGenFileNameParsed(string fileName, int startAt) { curPos = RMGenFile.FileNameInfo.Type; char[] characters = fileName.ToCharArray(); curString = new StringBuilder(); for (int i = startAt; i < characters.Length; ++i) { char charCache = characters[i]; if (charCache == RMPConstants.GenFileNamePrefixANDSuffix.SEPARATOR) { DoParse(); if (curPos == RMGenFile.FileNameInfo.Type) { curPos = RMGenFile.FileNameInfo.Position; } continue; } else if (charCache == '.') { DoParse(); break; } else if (curPos == RMGenFile.FileNameInfo.Type && char.IsNumber(charCache)) { DoParse(); curPos = RMGenFile.FileNameInfo.BaseOrder; } else if (curPos == RMGenFile.FileNameInfo.Position && charCache == RMPConstants.GenFileNamePrefixANDSuffix.POSITION) { continue; } else if (curPos == RMGenFile.FileNameInfo.Waiting) { if (charCache == RMPConstants.GenFileNamePrefixANDSuffix.COLOUR) { curPos = RMGenFile.FileNameInfo.Colour; continue; } else if (charCache == RMPConstants.GenFileNamePrefixANDSuffix.ORDER) { curPos = RMGenFile.FileNameInfo.Order; continue; } } curString.Append(charCache); } }
static void VerifyFile(TempGenFileNameParsed whichFile, string path, RMGenFile.FileNameInfo requires = RMGenFile.FileNameInfo.Type | RMGenFile.FileNameInfo.Position) { if (requires.HasFlag(RMGenFile.FileNameInfo.Type) && whichFile.Part == RMGenPart.GenPartType.None) { throw new ImplicitInvalidGeneratorPartException(ExceptionMessages.RMPackage.GEN_FILE_NO_TYPE, ImplicitInvalidGeneratorPartException.WhichInvalid.Type, path); } else if (requires.HasFlag(RMGenFile.FileNameInfo.BaseOrder) && whichFile.BaseOrder == 0) { throw new ImplicitInvalidGeneratorPartException(ExceptionMessages.RMPackage.GEN_FILE_NO_HIGH_ORDER, ImplicitInvalidGeneratorPartException.WhichInvalid.BaseOrder, path); } else if (requires.HasFlag(RMGenFile.FileNameInfo.Colour) && whichFile.Colour == 0) { throw new ImplicitInvalidGeneratorPartException(ExceptionMessages.RMPackage.GEN_FILE_NO_COLOUR, ImplicitInvalidGeneratorPartException.WhichInvalid.Colour, path); } else if (requires.HasFlag(RMGenFile.FileNameInfo.Order) && whichFile.Order == 0) { throw new ImplicitInvalidGeneratorPartException(ExceptionMessages.RMPackage.GEN_FILE_NO_LOW_ORDER, ImplicitInvalidGeneratorPartException.WhichInvalid.Order, path); } else if (requires.HasFlag(RMGenFile.FileNameInfo.Position) && whichFile.Position < 0) { throw new ImplicitInvalidGeneratorPartException(ExceptionMessages.RMPackage.GEN_FILE_NO_POS, ImplicitInvalidGeneratorPartException.WhichInvalid.Position, path); } }