object

package
v0.0.0-...-fe6c2a3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 9, 2021 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	INTEGER_OBJ           = "INTEGER"
	BOOLEAN_OBJ           = "BOOLEAN"
	NULL_OBJ              = "NULL"
	RETURN_VALUE_OBJ      = "RETURN_VALUE"
	ERROR_OBJ             = "ERROR"
	FUNCTION_OBJ          = "FUNCTION"
	COMPILED_FUNCTION_OBJ = "COMPILED_FUNCTION_OBJ"
	STRING_OBJ            = "STRING"
	BUILTIN_OBJ           = "BUILTIN"
	ARRAY_OBJ             = "ARRAY"
	HASH_OBJ              = "HASH"
)

constantes para los tipos de datos del lenguaje interpretado.

Variables

This section is empty.

Functions

This section is empty.

Types

type Array

type Array struct {
	Elements []Object
}

Objeo Array

func (*Array) Inspect

func (ao *Array) Inspect() string

func (*Array) Type

func (ao *Array) Type() ObjectType

type Boolean

type Boolean struct {
	Value bool
}

Tipo de dato Boolean que soportará nuestro lenguaje interpretado Monkey. (iox en la segunda implementación)

func (*Boolean) HashKey

func (b *Boolean) HashKey() HashKey

func (*Boolean) Inspect

func (b *Boolean) Inspect() string

func (*Boolean) Type

func (b *Boolean) Type() ObjectType

type Builtin

type Builtin struct {
	Fn BuiltinFunction
}

Objeto Builtin

func (*Builtin) Inspect

func (b *Builtin) Inspect() string

func (*Builtin) Type

func (b *Builtin) Type() ObjectType

type BuiltinFunction

type BuiltinFunction func(args ...Object) Object

... significa que la función acepta 0+ parametros del tipo especificado a la derecha.

type CompiledFunction

type CompiledFunction struct {
	Instructions code.Instructions
}

func (*CompiledFunction) Inspect

func (cf *CompiledFunction) Inspect() string

func (*CompiledFunction) Type

func (cf *CompiledFunction) Type() ObjectType

type Environment

type Environment struct {
	// contains filtered or unexported fields
}

Tabla de simbolos

func NewEnclosedEnvironment

func NewEnclosedEnvironment(outer *Environment) *Environment

func NewEnvironment

func NewEnvironment() *Environment

Crea una tabla de simbolos

func (*Environment) Get

func (e *Environment) Get(name string) (Object, bool)

Obtiene el valor asociado al identificador recibido.

func (*Environment) Set

func (e *Environment) Set(name string, val Object) Object

Registra el identificador en la tabla de simbolos.

type Error

type Error struct {
	Message string
}

func (*Error) Inspect

func (e *Error) Inspect() string

func (*Error) Type

func (e *Error) Type() ObjectType

type Function

type Function struct {
	Parameters []*ast.Identifier
	Body       *ast.BlockStatement
	Env        *Environment
}

Objeto función.

func (*Function) Inspect

func (f *Function) Inspect() string

func (*Function) Type

func (f *Function) Type() ObjectType

type Hash

type Hash struct {
	Pairs map[HashKey]HashPair
}

func (*Hash) Inspect

func (h *Hash) Inspect() string

func (*Hash) Type

func (h *Hash) Type() ObjectType

type HashKey

type HashKey struct {
	Type  ObjectType
	Value uint64
}

type HashPair

type HashPair struct {
	Key   Object
	Value Object
}

type Hashable

type Hashable interface {
	HashKey() HashKey
}

type Integer

type Integer struct {
	Value int64
}

func (*Integer) HashKey

func (i *Integer) HashKey() HashKey

func (*Integer) Inspect

func (i *Integer) Inspect() string

Inspect() retorna el valor literal.

func (*Integer) Type

func (i *Integer) Type() ObjectType

Type() retorna el tipo de objeto.

type Null

type Null struct {
}

Tipo de dato Null soportado para nuestro lenguaje Monkey este tipo es una estructura vacía.

func (*Null) Inspect

func (n *Null) Inspect() string

func (*Null) Type

func (n *Null) Type() ObjectType

Cumple con la interface Object

type Object

type Object interface {
	Type() ObjectType
	Inspect() string
}

Object es una interface que comprende todos los valores que pueden almacenar los tipos de datos definidos en el lenguaje de programación interpretado. Se le puede llamar: 1. Sistema de objetos. 2. Sistema de tipos. 3. Representación de Objetos. En resumen: es el tipo de dato "nativo" que nuestro lenguaje interpretado será capaz de exponer. El objetivo de tener un sistema de tipos es "envolver" el valor real que el lenguaje necesita.

type ObjectType

type ObjectType string

ObjectType es el tipo de dato base para todos los objetos.

type ReturnValue

type ReturnValue struct {
	Value Object
}

Objeto Return

func (*ReturnValue) Inspect

func (rv *ReturnValue) Inspect() string

func (*ReturnValue) Type

func (rv *ReturnValue) Type() ObjectType

type String

type String struct {
	Value string
}

Objeto String

func (*String) HashKey

func (s *String) HashKey() HashKey

func (*String) Inspect

func (s *String) Inspect() string

func (*String) Type

func (s *String) Type() ObjectType

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL