// Find whether or not this is a valid command (and has an entry in our encoding list). If it // does, return it; otherwise, return null. public EncodingFormat FindFormatByCommand(string command) { EncodingFormat format = null; EncodeDict.TryGetValue(command, out format); return(format); }
// For reading encoding files public void ReadEncodeList(string filepath) { StreamReader reader = new StreamReader(filepath); try { while (reader.Peek() != -1) { string line = reader.ReadLine(); if (!string.IsNullOrEmpty(line)) { line = ASMStringHelper.RemoveSpaces(line); string[] lineArray = line.Split(':'); EncodingFormat encoding = new EncodingFormat(); encoding.Command = lineArray[0].ToLower(); encoding.Binary = lineArray[1]; encoding.Syntax = lineArray[2]; if (lineArray.Length > 3) { encoding.ImmediateLengths = ASMStringHelper.CreateIntList(lineArray[3]); } if (lineArray.Length > 4) { encoding.VFPURegisterTypes = ASMStringHelper.CreateIntList(lineArray[4]); } if (lineArray.Length > 5) { encoding.PartialRegisterSizes = ASMStringHelper.CreateIntList(lineArray[5]); } if (lineArray.Length > 6) { encoding.ShiftedImmediateAmounts = ASMStringHelper.CreateIntList(lineArray[6]); } if (lineArray.Length > 7) { encoding.VFPUPrefixType = int.Parse(lineArray[7]); } encoding = FindFormatDetails(encoding); string expFormat = ExpandFormat(encoding); encoding.ExpandedFormat = expFormat; encoding = FindFormatBaseValues(encoding); encoding = FindParameterIndexes(encoding); EncodeList.Add(encoding); EncodeDict.Add(encoding.Command, encoding); AddToDecodeLists(expFormat, encoding); } } } catch (Exception ex) { } finally { reader.Close(); } }