|
Scala example source code file (Precedence.scala)
The Precedence.scala Scala example source codepackage scala package reflect package internal import scala.annotation.switch import Chars._ final class Precedence private (val level: Int) extends AnyVal with Ordered[Precedence] { def compare(that: Precedence): Int = level compare that.level override def toString = s"Precedence($level)" } object Precedence extends (Int => Precedence) { private val ErrorName = "<error>" private def isAssignmentOp(name: String) = name match { case "!=" | "<=" | ">=" | "" => false case _ => name.last == '=' && name.head != '=' && isOperatorPart(name.head) } private def firstChar(ch: Char): Precedence = apply((ch: @switch) match { case '|' => 2 case '^' => 3 case '&' => 4 case '=' | '!' => 5 case '<' | '>' => 6 case ':' => 7 case '+' | '-' => 8 case '*' | '/' | '%' => 9 case _ => if (isScalaLetter(ch)) 1 else 10 }) def apply(level: Int): Precedence = new Precedence(level) def apply(name: String): Precedence = name match { case "" | ErrorName => this(-1) case _ if isAssignmentOp(name) => this(0) case _ => firstChar(name charAt 0) } } Other Scala source code examplesHere is a short list of links related to this Scala Precedence.scala source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.