Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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;
        }