Lines Matching defs:Precedence

278 enum class Precedence { // in increasing order for sane comparisons
293 template <typename A> constexpr Precedence ToPrecedence(const A &) {
294 return Precedence::Top;
297 static Precedence ToPrecedence(const LogicalOperation<KIND> &x) {
301 return Precedence::And;
303 return Precedence::Or;
305 return Precedence::Not;
308 return Precedence::Equivalence;
311 template <int KIND> constexpr Precedence ToPrecedence(const Not<KIND> &) {
312 return Precedence::Not;
314 template <typename T> constexpr Precedence ToPrecedence(const Relational<T> &) {
315 return Precedence::Relational;
317 template <typename T> constexpr Precedence ToPrecedence(const Add<T> &) {
318 return Precedence::Additive;
320 template <typename T> constexpr Precedence ToPrecedence(const Subtract<T> &) {
321 return Precedence::Additive;
323 template <int KIND> constexpr Precedence ToPrecedence(const Concat<KIND> &) {
324 return Precedence::Additive;
326 template <typename T> constexpr Precedence ToPrecedence(const Negate<T> &) {
327 return Precedence::Negate;
329 template <typename T> constexpr Precedence ToPrecedence(const Multiply<T> &) {
330 return Precedence::Multiplicative;
332 template <typename T> constexpr Precedence ToPrecedence(const Divide<T> &) {
333 return Precedence::Multiplicative;
335 template <typename T> constexpr Precedence ToPrecedence(const Power<T> &) {
336 return Precedence::Power;
339 constexpr Precedence ToPrecedence(const RealToIntPower<T> &) {
340 return Precedence::Power;
342 template <typename T> static Precedence ToPrecedence(const Constant<T> &x) {
347 return Precedence::Negate;
351 return Precedence::Top;
353 template <typename T> static Precedence ToPrecedence(const Expr<T> &expr) {
448 Precedence lhsPrec{ToPrecedence(left())};
451 Precedence thisPrec{ToPrecedence(derived())};
453 if (thisPrec != Precedence::Top && lhsPrec < thisPrec) {
459 if (thisPrec != Precedence::Top &&
461 (lhsPrec == Precedence::Power && thisPrec == Precedence::Power))) {
467 Precedence rhsPrec{ToPrecedence(right())};
468 if (thisPrec != Precedence::Top && rhsPrec < thisPrec) {