#ifndef VARIABLE_HPP
#define VARIABLE_HPP

#include "symbol.hpp"

class variable : public symbol_impl_proxy<variable> {
public :
    std::string name;

    explicit variable(const std::string& n);

    variable* clone() const override;
    symbol_impl* evaluate(const interpreter_context& context) const override;
    std::string serialize(const interpreter_context& context) const override;
    static const std::string& static_type_name();
    bool is_litteral() const override;
    std::pair<std::size_t,std::size_t> priority(const interpreter_context&) const override;
};

#endif
