forked from OSchip/llvm-project
64 lines
1.5 KiB
C++
64 lines
1.5 KiB
C++
//===-- lib/Common/Fortran.cpp --------------------------------------------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "flang/Common/Fortran.h"
|
|
|
|
namespace Fortran::common {
|
|
|
|
const char *AsFortran(NumericOperator opr) {
|
|
switch (opr) {
|
|
SWITCH_COVERS_ALL_CASES
|
|
case NumericOperator::Power:
|
|
return "**";
|
|
case NumericOperator::Multiply:
|
|
return "*";
|
|
case NumericOperator::Divide:
|
|
return "/";
|
|
case NumericOperator::Add:
|
|
return "+";
|
|
case NumericOperator::Subtract:
|
|
return "-";
|
|
}
|
|
}
|
|
|
|
const char *AsFortran(LogicalOperator opr) {
|
|
switch (opr) {
|
|
SWITCH_COVERS_ALL_CASES
|
|
case LogicalOperator::And:
|
|
return ".and.";
|
|
case LogicalOperator::Or:
|
|
return ".or.";
|
|
case LogicalOperator::Eqv:
|
|
return ".eqv.";
|
|
case LogicalOperator::Neqv:
|
|
return ".neqv.";
|
|
case LogicalOperator::Not:
|
|
return ".not.";
|
|
}
|
|
}
|
|
|
|
const char *AsFortran(RelationalOperator opr) {
|
|
switch (opr) {
|
|
SWITCH_COVERS_ALL_CASES
|
|
case RelationalOperator::LT:
|
|
return "<";
|
|
case RelationalOperator::LE:
|
|
return "<=";
|
|
case RelationalOperator::EQ:
|
|
return "==";
|
|
case RelationalOperator::NE:
|
|
return "/=";
|
|
case RelationalOperator::GE:
|
|
return ">=";
|
|
case RelationalOperator::GT:
|
|
return ">";
|
|
}
|
|
}
|
|
|
|
} // namespace Fortran::common
|