aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/util/Chars.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/dotty/tools/dotc/util/Chars.scala')
-rw-r--r--src/dotty/tools/dotc/util/Chars.scala96
1 files changed, 0 insertions, 96 deletions
diff --git a/src/dotty/tools/dotc/util/Chars.scala b/src/dotty/tools/dotc/util/Chars.scala
deleted file mode 100644
index bae3b4732..000000000
--- a/src/dotty/tools/dotc/util/Chars.scala
+++ /dev/null
@@ -1,96 +0,0 @@
-/* NSC -- new Scala compiler
- * Copyright 2006-2012 LAMP/EPFL
- * @author Martin Odersky
- */
-package dotty.tools.dotc
-package util
-
-import scala.annotation.switch
-import java.lang.{ Character => JCharacter }
-import java.lang.{Character => JCharacter}
-import java.lang.Character.LETTER_NUMBER
-import java.lang.Character.LOWERCASE_LETTER
-import java.lang.Character.OTHER_LETTER
-import java.lang.Character.TITLECASE_LETTER
-import java.lang.Character.UPPERCASE_LETTER
-
-/** Contains constants and classifier methods for characters */
-object Chars {
-
- final val LF = '\u000A'
- final val FF = '\u000C'
- final val CR = '\u000D'
- final val SU = '\u001A'
-
- /** Convert a character digit to an Int according to given base,
- * -1 if no success
- */
- def digit2int(ch: Char, base: Int): Int = {
- val num = (
- if (ch <= '9') ch - '0'
- else if ('a' <= ch && ch <= 'z') ch - 'a' + 10
- else if ('A' <= ch && ch <= 'Z') ch - 'A' + 10
- else -1
- )
- if (0 <= num && num < base) num else -1
- }
- /** Buffer for creating '\ u XXXX' strings. */
- private[this] val char2uescapeArray = Array[Char]('\\', 'u', 0, 0, 0, 0)
-
- /** Convert a character to a backslash-u escape */
- def char2uescape(c: Char): String = {
- @inline def hexChar(ch: Int): Char =
- (( if (ch < 10) '0' else 'A' - 10 ) + ch).toChar
-
- char2uescapeArray(2) = hexChar((c >> 12) )
- char2uescapeArray(3) = hexChar((c >> 8) % 16)
- char2uescapeArray(4) = hexChar((c >> 4) % 16)
- char2uescapeArray(5) = hexChar((c ) % 16)
-
- new String(char2uescapeArray)
- }
-
- /** Is character a line break? */
- def isLineBreakChar(c: Char) = (c: @switch) match {
- case LF|FF|CR|SU => true
- case _ => false
- }
-
- /** Is character a whitespace character (but not a new line)? */
- def isWhitespace(c: Char) =
- c == ' ' || c == '\t' || c == CR
-
- /** Can character form part of a doc comment variable $xxx? */
- def isVarPart(c: Char) =
- '0' <= c && c <= '9' || 'A' <= c && c <= 'Z' || 'a' <= c && c <= 'z'
-
- /** Can character start an alphanumeric Scala identifier? */
- def isIdentifierStart(c: Char): Boolean =
- (c == '_') || (c == '$') || Character.isUnicodeIdentifierStart(c)
-
- /** Can character form part of an alphanumeric Scala identifier? */
- def isIdentifierPart(c: Char) =
- (c == '$') || Character.isUnicodeIdentifierPart(c)
-
- /** Is character a math or other symbol in Unicode? */
- def isSpecial(c: Char) = {
- val chtp = Character.getType(c)
- chtp == Character.MATH_SYMBOL.toInt || chtp == Character.OTHER_SYMBOL.toInt
- }
-
- private final val otherLetters = Set[Char]('\u0024', '\u005F') // '$' and '_'
- private final val letterGroups = {
- import JCharacter._
- Set[Byte](LOWERCASE_LETTER, UPPERCASE_LETTER, OTHER_LETTER, TITLECASE_LETTER, LETTER_NUMBER)
- }
- def isScalaLetter(ch: Char) = letterGroups(JCharacter.getType(ch).toByte) || otherLetters(ch)
-
- /** Can character form part of a Scala operator name? */
- def isOperatorPart(c : Char) : Boolean = (c: @switch) match {
- case '~' | '!' | '@' | '#' | '%' |
- '^' | '*' | '+' | '-' | '<' |
- '>' | '?' | ':' | '=' | '&' |
- '|' | '/' | '\\' => true
- case c => isSpecial(c)
- }
-}