Antlr4.Runtime.Misc.RuleDependencyChecker.CheckDependencyVersion C# (CSharp) Method

CheckDependencyVersion() private static method

private static CheckDependencyVersion ( StringBuilder errors, ICustomAttributeProvider>.Tuple dependency, string ruleNames, int ruleVersions, int relatedRule, string relation ) : int
errors StringBuilder
dependency ICustomAttributeProvider>.Tuple
ruleNames string
ruleVersions int
relatedRule int
relation string
return int
        private static int CheckDependencyVersion(StringBuilder errors, Tuple<RuleDependencyAttribute, ICustomAttributeProvider> dependency, string[] ruleNames, int[] ruleVersions, int relatedRule, string relation)
        {
            string ruleName = ruleNames[dependency.Item1.Rule];
            string path;
            if (relation == null)
            {
                path = ruleName;
            }
            else
            {
                string mismatchedRuleName = ruleNames[relatedRule];
                path = string.Format("rule {0} ({1} of {2})", mismatchedRuleName, relation, ruleName);
            }
            int declaredVersion = dependency.Item1.Version;
            int actualVersion = ruleVersions[relatedRule];
            if (actualVersion > declaredVersion)
            {
                string message = string.Format("Rule dependency version mismatch: {0} has version {1} (expected <= {2}) in {3}", path, actualVersion, declaredVersion, dependency.Item1.Recognizer.ToString());
                errors.AppendLine(dependency.Item2.ToString());
                errors.AppendLine(message);
            }
            return actualVersion;
        }