Class Scope<T>

  • Type Parameters:
    T - The type of values in scope.

    public final class Scope<T>
    extends java.lang.Object
    Scope is a stack for tracking facts for named values of type T.
    • Constructor Detail

      • Scope

        public Scope()
    • Method Detail

      • push

        public void push()
      • pop

        public void pop()
      • insert

        public void insert​(java.lang.String name,
                           T value)
      • insert

        public void insert​(Identifier name,
                           T value)
      • setNonNull

        public void setNonNull​(Reference name)
      • inScope

        public <U> U inScope​(java.util.function.Supplier<U> func)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • isNonNull

        public boolean isNonNull​(Reference reference)
      • getDeclaration

        public java.util.Optional<java.util.Map.Entry<Identifier,​T>> getDeclaration​(Identifier name)
      • getValue

        public java.util.Optional<T> getValue​(Identifier name)