metaL manifest

Object это класс базового узла объектного графа, реализующий поведение и интерфейсы, общие для всех элементов языка metaL.

В большинстве случаев у нас есть необходимость хранить для любого элемента данных следующие поля:

## базовый класс узла объектного графа
class Object:

    ## конструктор
    def __init__(self, V):
        if isinstance(V, Object):
            V = V.val
        ## скалярное значение: имя объекта, строка, число,..
        self.val = V
        ## ассоциативный массив: слоты = атрибуты = словарь = environment
        self.slot = {}
        ## упорядоченный контейнер: вложенные AST = вектор = стек = очередь
        self.nest = []
        ## глобальный storage id (хэш по содержимому)
        self.gid = self.sync().gid

объектный граф

Primitive: примитивные типы

Container: контейнеры данных

Active: исполняемые данные

Meta: объекты исходного кода

IO: ввод/вывод (файловый)