13#if !defined(VITA_SRC_CONSTANT_H)
14#define VITA_SRC_CONSTANT_H
17#include "utility/utility.h"
30 :
terminal(c, t), val_(lexical_cast<T>(c)) {}
40 {
return std::to_string(val_); }
48 value_t eval()
const {
return val_; }
59 :
terminal(quote_str(c), t), val_(c) {}
65 return quote_str(val_);
76 value_t eval()
const {
return val_; }
79 static std::string quote_str(
const std::string &s) {
return "\"" + s +
"\"";}
value_t eval(symbol_params &) const override
std::string display(terminal_param_t, format) const final
A constant value in a given domain.
std::string display(terminal_param_t, format) const final
value_t eval(symbol_params &) const override
An interface for parameter passing to functions / terminals.
format
Symbol rendering format.
A symbol with zero-arity.
The main namespace for the project.
std::size_t category_t
A category provide operations which supplement or supersede those of the domain but which are restric...
std::variant< D_VOID, D_INT, D_DOUBLE, D_STRING > value_t
A variant containing the data types used by the interpreter for internal calculations / output value ...