private static ASMAddEquivalenceResult AddEquivalenceGeneric(Dictionary<string, string> eqvDict, string eqvName, string eqvValue) { ASMAddEquivalenceResult result = new ASMAddEquivalenceResult(); try { eqvName = ASMStringHelper.RemoveSpaces(eqvName); //.ToUpper(); if (!eqvDict.ContainsKey(eqvName)) { eqvDict.Add(eqvName, eqvValue); } else { eqvDict[eqvName] = eqvValue; } } catch { result.ErrorCode = 1; result.ErrorMessage = "Error adding equivalence " + eqvName + ": Equivalence already exists!\r\n"; return result; } result.ErrorCode = 0; return result; }
private static ASMAddEquivalenceResult AddEquivalenceGeneric(Dictionary <string, string> eqvDict, string eqvName, string eqvValue) { ASMAddEquivalenceResult result = new ASMAddEquivalenceResult(); try { eqvName = ASMStringHelper.RemoveSpaces(eqvName); //.ToUpper(); if (!eqvDict.ContainsKey(eqvName)) { eqvDict.Add(eqvName, eqvValue); } else { eqvDict[eqvName] = eqvValue; } } catch { result.ErrorCode = 1; result.ErrorMessage = "Error adding equivalence " + eqvName + ": Equivalence already exists!\r\n"; return(result); } result.ErrorCode = 0; return(result); }
private static ASMAddEquivalenceResult ProcessEquivalenceStatement(Dictionary <string, string> eqvDict, string[] parts) { if (!string.IsNullOrEmpty(parts[0])) { if (parts[0] == ".eqv") { try { string[] innerParts = parts[1].Split(','); if (!parts[1].Contains(",")) { ASMAddEquivalenceResult errorResult = new ASMAddEquivalenceResult(); errorResult.ErrorCode = 1; errorResult.ErrorMessage = "WARNING: Ignoring .eqv statement with bad argument list (no comma): \"" + parts[1] + "\"\r\n"; return(errorResult); } string eqvName = ASMStringHelper.RemoveSpaces(innerParts[0]); string eqvValue = ASMStringHelper.RemoveSpaces(innerParts[1]); return(AddEquivalenceGeneric(eqvDict, eqvName, eqvValue)); } catch (Exception ex) { ASMAddEquivalenceResult errorResult = new ASMAddEquivalenceResult(); errorResult.ErrorCode = 1; errorResult.ErrorMessage = "Error on .eqv statement: " + ex.Message + "\r\n"; return(errorResult); } } } return(null); }
private static ASMFindEquivalencesResult FindEquivalences(Dictionary <string, string> eqvDict, string[] lines) { ASMFindEquivalencesResult result = new ASMFindEquivalencesResult(); result.ErrorCode = 0; StringBuilder errorTextBuilder = new StringBuilder(); ClearEquivalenceDict(eqvDict); foreach (string line in lines) { if (string.IsNullOrEmpty(line)) { continue; } string processLine = ASMStringHelper.RemoveLeadingBracketBlock(line); processLine = ASMStringHelper.RemoveLeadingSpaces(processLine); processLine = ASMStringHelper.RemoveComment(processLine).ToLower(); string[] parts = ASMStringHelper.SplitLine(processLine); ASMAddEquivalenceResult processEquivalenceResult = ProcessEquivalenceStatement(eqvDict, parts); if (processEquivalenceResult != null) { if (processEquivalenceResult.ErrorCode > 0) { result.ErrorCode = 1; errorTextBuilder.Append(processEquivalenceResult.ErrorMessage); } } } result.ErrorMessage = errorTextBuilder.ToString(); return(result); }
private static ASMAddEquivalenceResult ProcessEquivalenceStatement(Dictionary<string, string> eqvDict, string[] parts) { if (!string.IsNullOrEmpty(parts[0])) { if (parts[0] == ".eqv") { try { string[] innerParts = parts[1].Split(','); if (!parts[1].Contains(",")) { ASMAddEquivalenceResult errorResult = new ASMAddEquivalenceResult(); errorResult.ErrorCode = 1; errorResult.ErrorMessage = "WARNING: Ignoring .eqv statement with bad argument list (no comma): \"" + parts[1] + "\"\r\n"; return errorResult; } string eqvName = ASMStringHelper.RemoveSpaces(innerParts[0]); string eqvValue = ASMStringHelper.RemoveSpaces(innerParts[1]); return AddEquivalenceGeneric(eqvDict, eqvName, eqvValue); } catch (Exception ex) { ASMAddEquivalenceResult errorResult = new ASMAddEquivalenceResult(); errorResult.ErrorCode = 1; errorResult.ErrorMessage = "Error on .eqv statement: " + ex.Message + "\r\n"; return errorResult; } } } return null; }