Module aya.base

Interface PatternFolder<R>

All Known Subinterfaces:
ExprFolder<R>, StmtFolder<R>

public interface PatternFolder<R>
  • Method Summary

    Modifier and Type
    Method
    Description
    default R
    apply(@NotNull Pattern pat)
     
    default R
    fold(R acc, @NotNull Pattern pat)
     
    default R
    foldVar(R acc, @NotNull AnyVar var, @NotNull org.aya.util.error.SourcePos pos, @NotNull kala.value.LazyValue<@Nullable Term> type)
     
    default R
    foldVarDecl(R acc, @NotNull AnyVar var, @NotNull org.aya.util.error.SourcePos pos, @NotNull kala.value.LazyValue<@Nullable Term> type)
     
    default R
    foldVarRef(R acc, @NotNull AnyVar var, @NotNull org.aya.util.error.SourcePos pos, @NotNull kala.value.LazyValue<@Nullable Term> type)
     
     
    default @NotNull kala.value.LazyValue<@Nullable Term>
    lazyType(@Nullable AnyVar var)
     
    default @NotNull kala.value.LazyValue<@Nullable Term>
     
    default @Nullable Term
    varType(@Nullable AnyVar var)
     
  • Method Details

    • init

      @NotNull R init()
    • foldVar

      @NotNull default R foldVar(@NotNull R acc, @NotNull @NotNull AnyVar var, @NotNull @NotNull org.aya.util.error.SourcePos pos, @NotNull @NotNull kala.value.LazyValue<@Nullable Term> type)
    • foldVarRef

      @NotNull default R foldVarRef(@NotNull R acc, @NotNull @NotNull AnyVar var, @NotNull @NotNull org.aya.util.error.SourcePos pos, @NotNull @NotNull kala.value.LazyValue<@Nullable Term> type)
    • foldVarDecl

      @NotNull default R foldVarDecl(@NotNull R acc, @NotNull @NotNull AnyVar var, @NotNull @NotNull org.aya.util.error.SourcePos pos, @NotNull @NotNull kala.value.LazyValue<@Nullable Term> type)
    • fold

      @MustBeInvokedByOverriders @NotNull default R fold(@NotNull R acc, @NotNull @NotNull Pattern pat)
    • apply

      @NotNull default R apply(@NotNull @NotNull Pattern pat)
    • varType

      @Nullable default @Nullable Term varType(@Nullable @Nullable AnyVar var)
    • lazyType

      @NotNull default @NotNull kala.value.LazyValue<@Nullable Term> lazyType(@Nullable @Nullable AnyVar var)
    • noType

      @NotNull default @NotNull kala.value.LazyValue<@Nullable Term> noType()
      Implementation Note:
      Should conceptually only be used outside of these folders, where types are all ignored.