#include "symbol.h"
#include "state.h"

using Frost::s_str; using Frost::s_uint; using Frost::s_double;
using Frost::s_int; using Frost::s_bool; using Frost::s_refptr;
using Frost::s_map; using Frost::s_ctnr; using Frost::s_char;
using Frost::s_wptr; using Frost::nullptr;

const s_str Symbol::TYPE = "Symbol";

s_str Symbol::PrintContent() const
{
    return sname;
}

s_str Symbol::GetType() const
{
    return TYPE;
}

s_str Symbol::GetTrueType() const
{
    return GetType();
}

s_str Symbol::GetFullType() const
{
    return GetType();
}

s_refptr<Symbol> Symbol::Clone() const
{
    return s_refptr<Symbol>(new Symbol(*this));
}

void Symbol::Register(State& mState)
{
    mState.RegisterSymbolType<Symbol>();
}
