#ifndef VECTOR_H
#define VECTOR_H

#include "symbol.h"

namespace Frost {

class State;

class Vector : public Symbol
{
public :

    Vector(const s_str& sName) : Symbol(sName) {}
    Vector(const s_str& sName, const s_ctnr<s_refptr<Symbol>>& dValues) : Symbol(sName), v(dValues) {}

    virtual s_str            PrintContent() const;
    virtual s_str            GetType() const;
    virtual s_str            GetFullType() const;
    virtual s_refptr<Symbol> Clone() const;

    static s_bool           MatchesConstructor(const s_str& s);
    static s_refptr<Symbol> CreateFrom(State& mState, const s_str& n, const s_str& s, s_bool inl, s_str& e);
    static void             Register(State& mState);

    s_ctnr<s_refptr<Symbol>> v;
    static const s_str TYPE;
};

}

#endif // VECTOR_H
