Lines Matching defs:OperatorSpelling

373 struct OperatorSpelling {
377 template <typename A> constexpr OperatorSpelling SpellOperator(const A &) {
378 return OperatorSpelling{};
381 constexpr OperatorSpelling SpellOperator(const Negate<A> &) {
382 return OperatorSpelling{"-", "", ""};
385 constexpr OperatorSpelling SpellOperator(const Parentheses<A> &) {
386 return OperatorSpelling{"(", "", ")"};
389 static OperatorSpelling SpellOperator(const ComplexComponent<KIND> &x) {
393 constexpr OperatorSpelling SpellOperator(const Not<KIND> &) {
394 return OperatorSpelling{".NOT.", "", ""};
397 constexpr OperatorSpelling SpellOperator(const SetLength<KIND> &) {
398 return OperatorSpelling{"%SET_LENGTH(", ",", ")"};
401 constexpr OperatorSpelling SpellOperator(const ComplexConstructor<KIND> &) {
402 return OperatorSpelling{"(", ",", ")"};
404 template <typename A> constexpr OperatorSpelling SpellOperator(const Add<A> &) {
405 return OperatorSpelling{"", "+", ""};
408 constexpr OperatorSpelling SpellOperator(const Subtract<A> &) {
409 return OperatorSpelling{"", "-", ""};
412 constexpr OperatorSpelling SpellOperator(const Multiply<A> &) {
413 return OperatorSpelling{"", "*", ""};
416 constexpr OperatorSpelling SpellOperator(const Divide<A> &) {
417 return OperatorSpelling{"", "/", ""};
420 constexpr OperatorSpelling SpellOperator(const Power<A> &) {
421 return OperatorSpelling{"", "**", ""};
424 constexpr OperatorSpelling SpellOperator(const RealToIntPower<A> &) {
425 return OperatorSpelling{"", "**", ""};
428 static OperatorSpelling SpellOperator(const Extremum<A> &x) {
429 return OperatorSpelling{
433 constexpr OperatorSpelling SpellOperator(const Concat<KIND> &) {
434 return OperatorSpelling{"", "//", ""};
437 static OperatorSpelling SpellOperator(const LogicalOperation<KIND> &x) {
438 return OperatorSpelling{"", AsFortran(x.logicalOperator), ""};
441 static OperatorSpelling SpellOperator(const Relational<T> &x) {
442 return OperatorSpelling{"", AsFortran(x.opr), ""};
449 OperatorSpelling spelling{SpellOperator(derived())};