#ifndef RANGE_HPP
#define RANGE_HPP

#include "symbol.hpp"

class range : public symbol_impl_proxy<range> {
public :
    symbol begin, end;

    range(symbol&& begin, symbol&& end);

    range* clone() const override;
    range* 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;

    static void reg(interpreter_context& context);
};

#endif
