class Myst::Scope

Direct Known Subclasses

Defined in:

myst/interpreter/scope.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new(parent : Scope | Nil = nil) #

[View source]

Instance Method Detail

def [](key : String) : MTValue #

A non-nilable variant of #[]?. While this method may raise an exception, it is not considered a "public" exception (it is not meant to be reachable by userland code). Any instance where the exception propogates outside of the interpreter should be considered a bug.


[View source]
def []=(key : String, value : MTValue) : MTValue #

[View source]
def []?(key : String) : MTValue | Nil #

The shorthand access notations (#[]?, #[], #[]=) will all fall back to the parent scope if the value does not exist in this scope.

The longhand #has_key? and #assign only operate on this scope.


[View source]
def assign(key : String, value : MTValue) #

[View source]
def clear(*args, **options) #

Remove all values from this scope. Parent scopes are not affected.


[View source]
def clear(*args, **options, &) #

Remove all values from this scope. Parent scopes are not affected.


[View source]
def each(*args, **options) #

Remove all values from this scope. Parent scopes are not affected.


[View source]
def each(*args, **options, &) #

Remove all values from this scope. Parent scopes are not affected.


[View source]
def has_key?(key : String) #

[View source]
def inspect(io : IO) #
Description copied from class Reference

Appends a String representation of this object which includes its class name, its object address and the values of all instance variables.

class Person
  def initialize(@name : String, @age : Int32)
  end
end

Person.new("John", 32).inspect # => #<Person:0x10fd31f20 @name="John", @age=32>

[View source]
def parent : Scope | Nil #

[View source]
def parent=(parent : Scope | Nil) #

[View source]
def values : Hash(String, MTValue) #

[View source]
def values=(values : Hash(String, MTValue)) #

[View source]