public function push(AssignableNode $value)
    {
        // count the index up to find a free spot
        while ($this->has($this->index)) {
            $this->index++;
        }

        $this->addElement(new ArrayElementNode($this->index, $value));
    }