13#if !defined(ULTRA_STRING_PRIMITIVE_H)
14#define ULTRA_STRING_PRIMITIVE_H
28 explicit literal(
const std::string &s,
50 Expects(pt.size() == 4);
52 Expects(pt[0] == pt[1]);
53 Expects(pt[2] == pt[3]);
60 case python_format:
return "({2} if {0} == {1} else {3})";
61 default:
return "({0}=={1} ? {2} : {3})";
67 const auto v0(pars[0]);
70 const auto v1(pars[1]);
73 return v0 == v1 ? pars[2] : pars[3];
Definition function.h:108
std::vector< category_t > param_data_types
Definition function.h:49
function(const std::string &, return_type, param_data_types)
Definition function.cc:27
category_t return_type
Type used to describe the return category of the function.
Definition function.h:52
value_t eval(const params &pars) const final
Definition string.h:65
std::string to_string(format f) const final
Definition string.h:56
value_t instance() const final
Definition string.h:35
format
Supported rendering formats for symbol stringification.
Definition symbol.h:72
unsigned category_t
Definition symbol.h:55
static constexpr category_t default_category
Default category assigned when typing is not used.
Definition symbol.h:58
const std::string & name() const noexcept
Definition symbol.cc:51
bool has_value(const value_t &v) noexcept
Definition value.cc:31
std::variant< D_VOID, D_INT, D_DOUBLE, D_STRING, const D_NULLARY *, D_ADDRESS, const D_VARIABLE *, D_IVECTOR > value_t
Definition value.h:54