public object VisitLink(KpLinguaParser.LinkContext context) { var linkOperandContexts = context.linkOperand(); var instanceSets = linkOperandContexts.Select(c => GetInstances(c)).ToArray(); var firstInstanceSet = instanceSets.First(); foreach (var secondInstanceSet in instanceSets.Skip(1)) { PerformLinkage(firstInstanceSet, secondInstanceSet); firstInstanceSet = secondInstanceSet; } return(null); }
/// <summary> /// Visit a parse tree produced by <see cref="KpLinguaParser.link"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitLink([NotNull] KpLinguaParser.LinkContext context) { return(VisitChildren(context)); }