private static int CheckDependencyVersion(StringBuilder errors, Sharpen.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); }
private static void ReportUnimplementedDependents(StringBuilder errors, Sharpen.Tuple <RuleDependencyAttribute, ICustomAttributeProvider> dependency, Dependents dependents) { Dependents unimplemented = dependents; unimplemented &= ~ImplementedDependents; if (unimplemented != Dependents.None) { string message = string.Format("Cannot validate the following dependents of rule {0}: {1}", dependency.Item1.Rule, unimplemented); errors.AppendLine(message); } }
protected internal override Sharpen.Tuple <DFAState, ParserRuleContext> ComputeTargetState(DFA dfa, DFAState s, ParserRuleContext remainingGlobalContext, int t, bool useContext, PredictionContextCache contextCache) { Sharpen.Tuple <DFAState, ParserRuleContext> targetState = base.ComputeTargetState(dfa, s, remainingGlobalContext, t, useContext, contextCache); if (useContext) { decisions[currentDecision].LL_ATNTransitions++; } else { decisions[currentDecision].SLL_ATNTransitions++; } return(targetState); }