xo-reader2 stack: constants for operator primitive names
This commit is contained in:
parent
4601e824bc
commit
d288c4ff1e
2 changed files with 35 additions and 10 deletions
|
|
@ -17,31 +17,56 @@ namespace xo {
|
||||||
using AAllocator = xo::mm::AAllocator;
|
using AAllocator = xo::mm::AAllocator;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
/** name for multiply primitive. Used for op* **/
|
||||||
|
static constexpr const char * c_multiply_pm_name = "_mul";
|
||||||
/** polymorphic (in both arguments1) multiply **/
|
/** polymorphic (in both arguments1) multiply **/
|
||||||
static DPrimitive_gco_2_gco_gco * make_multiply_pm(obj<AAllocator> mm,
|
static DPrimitive_gco_2_gco_gco * make_multiply_pm(obj<AAllocator> mm,
|
||||||
StringTable * stbl);
|
StringTable * stbl);
|
||||||
|
|
||||||
|
/** name for divide primitives. Used for op/ **/
|
||||||
|
static constexpr const char * c_divide_pm_name = "_div";
|
||||||
/** polymorphic (in both arguments) divide **/
|
/** polymorphic (in both arguments) divide **/
|
||||||
static DPrimitive_gco_2_gco_gco * make_divide_pm(obj<AAllocator> mm,
|
static DPrimitive_gco_2_gco_gco * make_divide_pm(obj<AAllocator> mm,
|
||||||
StringTable * stbl);
|
StringTable * stbl);
|
||||||
|
|
||||||
|
/** name for add primitives. Used for op+ **/
|
||||||
|
static constexpr const char * c_add_pm_name = "_add";
|
||||||
/** polymorphic (in both arguments) add **/
|
/** polymorphic (in both arguments) add **/
|
||||||
static DPrimitive_gco_2_gco_gco * make_add_pm(obj<AAllocator> mm,
|
static DPrimitive_gco_2_gco_gco * make_add_pm(obj<AAllocator> mm,
|
||||||
StringTable * stbl);
|
StringTable * stbl);
|
||||||
|
|
||||||
|
/** name for sub primitives. Used for op- **/
|
||||||
|
static constexpr const char * c_sub_pm_name = "_sub";
|
||||||
/** polymorphic (in both arguments) subtract **/
|
/** polymorphic (in both arguments) subtract **/
|
||||||
static DPrimitive_gco_2_gco_gco * make_subtract_pm(obj<AAllocator> mm,
|
static DPrimitive_gco_2_gco_gco * make_subtract_pm(obj<AAllocator> mm,
|
||||||
StringTable * stbl);
|
StringTable * stbl);
|
||||||
|
|
||||||
|
/** name for equality-comparison primitive. Used for op== **/
|
||||||
|
static constexpr const char * c_cmpeq_pm_name = "_cmpeq";
|
||||||
/** polymorphic (in both arguments) compare (==) **/
|
/** polymorphic (in both arguments) compare (==) **/
|
||||||
static DPrimitive_gco_2_gco_gco * make_cmpeq_pm(obj<AAllocator> mm,
|
static DPrimitive_gco_2_gco_gco * make_cmpeq_pm(obj<AAllocator> mm,
|
||||||
StringTable * stbl);
|
StringTable * stbl);
|
||||||
|
|
||||||
|
/** name for inequality-comparison prmitive. Used for op!= **/
|
||||||
|
static constexpr const char * c_cmpne_pm_name = "_cmpne";
|
||||||
/** polymorphic (in both arguments) compare (!=) **/
|
/** polymorphic (in both arguments) compare (!=) **/
|
||||||
static DPrimitive_gco_2_gco_gco * make_cmpne_pm(obj<AAllocator> mm,
|
static DPrimitive_gco_2_gco_gco * make_cmpne_pm(obj<AAllocator> mm,
|
||||||
StringTable * stbl);
|
StringTable * stbl);
|
||||||
|
|
||||||
|
/** name for less-comparison primitive. Used for op< **/
|
||||||
|
static constexpr const char * c_cmplt_pm_name = "_cmplt";
|
||||||
/** polymorphic (in both arguments) compare (<) **/
|
/** polymorphic (in both arguments) compare (<) **/
|
||||||
static DPrimitive_gco_2_gco_gco * make_cmplt_pm(obj<AAllocator> mm,
|
static DPrimitive_gco_2_gco_gco * make_cmplt_pm(obj<AAllocator> mm,
|
||||||
StringTable * stbl);
|
StringTable * stbl);
|
||||||
|
|
||||||
|
/** name for lesser-or-equal-comparison primitive. Used for op<= **/
|
||||||
|
static constexpr const char * c_cmple_pm_name = "_cmple";
|
||||||
/** polymorphic (in both arguments) compare (<=) **/
|
/** polymorphic (in both arguments) compare (<=) **/
|
||||||
static DPrimitive_gco_2_gco_gco * make_cmple_pm(obj<AAllocator> mm,
|
static DPrimitive_gco_2_gco_gco * make_cmple_pm(obj<AAllocator> mm,
|
||||||
StringTable * stbl);
|
StringTable * stbl);
|
||||||
|
|
||||||
|
/** name for greater-comparison primitive. Used for op> **/
|
||||||
|
static constexpr const char * c_cmpgt_pm_name = "_cmpgt";
|
||||||
/** polymorphic (in both arguments) compare (>) **/
|
/** polymorphic (in both arguments) compare (>) **/
|
||||||
static DPrimitive_gco_2_gco_gco * make_cmpgt_pm(obj<AAllocator> mm,
|
static DPrimitive_gco_2_gco_gco * make_cmpgt_pm(obj<AAllocator> mm,
|
||||||
StringTable * stbl);
|
StringTable * stbl);
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ namespace xo {
|
||||||
|
|
||||||
auto pm_ty = obj<AType>();
|
auto pm_ty = obj<AType>();
|
||||||
|
|
||||||
return DPrimitive_gco_2_gco_gco::_make(mm, "_mul", pm_ty,
|
return DPrimitive_gco_2_gco_gco::_make(mm, c_multiply_pm_name, pm_ty,
|
||||||
&NumericDispatch::multiply);
|
&NumericDispatch::multiply);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -48,7 +48,7 @@ namespace xo {
|
||||||
auto pm_ty = obj<AType,DFunctionType>
|
auto pm_ty = obj<AType,DFunctionType>
|
||||||
(DFunctionType::_make(mm, numeric_ty, numeric_ty, numeric_ty));
|
(DFunctionType::_make(mm, numeric_ty, numeric_ty, numeric_ty));
|
||||||
|
|
||||||
return DPrimitive_gco_2_gco_gco::_make(mm, "_div", pm_ty,
|
return DPrimitive_gco_2_gco_gco::_make(mm, c_divide_pm_name, pm_ty,
|
||||||
&NumericDispatch::divide);
|
&NumericDispatch::divide);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -63,7 +63,7 @@ namespace xo {
|
||||||
auto pm_ty = obj<AType,DFunctionType>
|
auto pm_ty = obj<AType,DFunctionType>
|
||||||
(DFunctionType::_make(mm, numeric_ty, numeric_ty, numeric_ty));
|
(DFunctionType::_make(mm, numeric_ty, numeric_ty, numeric_ty));
|
||||||
|
|
||||||
return DPrimitive_gco_2_gco_gco::_make(mm, "_add", pm_ty,
|
return DPrimitive_gco_2_gco_gco::_make(mm, c_add_pm_name, pm_ty,
|
||||||
&NumericDispatch::add);
|
&NumericDispatch::add);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -78,7 +78,7 @@ namespace xo {
|
||||||
auto pm_ty = obj<AType,DFunctionType>
|
auto pm_ty = obj<AType,DFunctionType>
|
||||||
(DFunctionType::_make(mm, numeric_ty, numeric_ty, numeric_ty));
|
(DFunctionType::_make(mm, numeric_ty, numeric_ty, numeric_ty));
|
||||||
|
|
||||||
return DPrimitive_gco_2_gco_gco::_make(mm, "_sub", pm_ty,
|
return DPrimitive_gco_2_gco_gco::_make(mm, c_sub_pm_name, pm_ty,
|
||||||
&NumericDispatch::subtract);
|
&NumericDispatch::subtract);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -94,7 +94,7 @@ namespace xo {
|
||||||
auto pm_ty = obj<AType,DFunctionType>
|
auto pm_ty = obj<AType,DFunctionType>
|
||||||
(DFunctionType::_make(mm, booleic_ty, numeric_ty, numeric_ty));
|
(DFunctionType::_make(mm, booleic_ty, numeric_ty, numeric_ty));
|
||||||
|
|
||||||
return DPrimitive_gco_2_gco_gco::_make(mm, "_cmpeq", pm_ty,
|
return DPrimitive_gco_2_gco_gco::_make(mm, c_cmpeq_pm_name, pm_ty,
|
||||||
&NumericDispatch::cmp_equal);
|
&NumericDispatch::cmp_equal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -110,7 +110,7 @@ namespace xo {
|
||||||
auto pm_ty = obj<AType,DFunctionType>
|
auto pm_ty = obj<AType,DFunctionType>
|
||||||
(DFunctionType::_make(mm, booleic_ty, numeric_ty, numeric_ty));
|
(DFunctionType::_make(mm, booleic_ty, numeric_ty, numeric_ty));
|
||||||
|
|
||||||
return DPrimitive_gco_2_gco_gco::_make(mm, "_cmpne", pm_ty,
|
return DPrimitive_gco_2_gco_gco::_make(mm, c_cmpne_pm_name, pm_ty,
|
||||||
&NumericDispatch::cmp_notequal);
|
&NumericDispatch::cmp_notequal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -126,7 +126,7 @@ namespace xo {
|
||||||
auto pm_ty = obj<AType,DFunctionType>
|
auto pm_ty = obj<AType,DFunctionType>
|
||||||
(DFunctionType::_make(mm, booleic_ty, numeric_ty, numeric_ty));
|
(DFunctionType::_make(mm, booleic_ty, numeric_ty, numeric_ty));
|
||||||
|
|
||||||
return DPrimitive_gco_2_gco_gco::_make(mm, "_cmplt", pm_ty,
|
return DPrimitive_gco_2_gco_gco::_make(mm, c_cmplt_pm_name, pm_ty,
|
||||||
&NumericDispatch::cmp_less);
|
&NumericDispatch::cmp_less);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -142,7 +142,7 @@ namespace xo {
|
||||||
auto pm_ty = obj<AType,DFunctionType>
|
auto pm_ty = obj<AType,DFunctionType>
|
||||||
(DFunctionType::_make(mm, booleic_ty, numeric_ty, numeric_ty));
|
(DFunctionType::_make(mm, booleic_ty, numeric_ty, numeric_ty));
|
||||||
|
|
||||||
return DPrimitive_gco_2_gco_gco::_make(mm, "_cmple", pm_ty,
|
return DPrimitive_gco_2_gco_gco::_make(mm, c_cmple_pm_name, pm_ty,
|
||||||
&NumericDispatch::cmp_lessequal);
|
&NumericDispatch::cmp_lessequal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -158,7 +158,7 @@ namespace xo {
|
||||||
auto pm_ty = obj<AType,DFunctionType>
|
auto pm_ty = obj<AType,DFunctionType>
|
||||||
(DFunctionType::_make(mm, booleic_ty, numeric_ty, numeric_ty));
|
(DFunctionType::_make(mm, booleic_ty, numeric_ty, numeric_ty));
|
||||||
|
|
||||||
return DPrimitive_gco_2_gco_gco::_make(mm, "_cmpgt", pm_ty,
|
return DPrimitive_gco_2_gco_gco::_make(mm, c_cmpgt_pm_name, pm_ty,
|
||||||
&NumericDispatch::cmp_greater);
|
&NumericDispatch::cmp_greater);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -174,7 +174,7 @@ namespace xo {
|
||||||
auto pm_ty = obj<AType,DFunctionType>
|
auto pm_ty = obj<AType,DFunctionType>
|
||||||
(DFunctionType::_make(mm, booleic_ty, numeric_ty, numeric_ty));
|
(DFunctionType::_make(mm, booleic_ty, numeric_ty, numeric_ty));
|
||||||
|
|
||||||
return DPrimitive_gco_2_gco_gco::_make(mm, "_cmpge", pm_ty,
|
return DPrimitive_gco_2_gco_gco::_make(mm, c_cmpge_pm_name, pm_ty,
|
||||||
&NumericDispatch::cmp_greatequal);
|
&NumericDispatch::cmp_greatequal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue