001package de.monochromata.anaphors.ast;
002
003import de.monochromata.anaphors.ast.relatedexp.RelatedExpression;
004
005/**
006 *
007 * @param <N>  The node type in the AST
008 * @param <E>  The expression type
009 * @param <T>  The type type
010 * @param <B>  The binding type
011 * @param <TB> The type binding type
012 * @param <S>  The scope type (optional)
013 * @param <I>  The type used to represent identifiers
014 * @param <QI> The type used to represent qualified identifiers
015 * @param <R>  The sub-type of related expression to use
016 * @param <A>  The sub-type of AST-based anaphora to use
017 */
018public interface IndirectAnaphora<N, E, T, B, TB extends B, S, I, QI, R extends RelatedExpression<N, T, B, TB, S, QI, R>, A extends ASTBasedAnaphora<N, E, T, B, TB, S, I, QI, R, A>>
019                extends ASTBasedAnaphora<N, E, T, B, TB, S, I, QI, R, A> {
020
021        /**
022         * An alias for {@link #getRelatedExpression()}.
023         */
024        default R getAnchor() {
025                return getRelatedExpression();
026        }
027
028        public abstract String getUnderspecifiedRelation();
029
030}