stdnames.scala

来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 497 行 · 第 1/2 页

SCALA
497
字号
/* NSC -- new Scala compiler * Copyright 2005-2008 LAMP/EPFL * @author  Martin Odersky */// $Id: StdNames.scala 14347 2008-03-10 12:00:03Z odersky $package scala.tools.nsc.symtabimport scala.tools.nsc.util.NameTransformertrait StdNames {  self: SymbolTable =>  object nme {    // Scala keywords; enter them first to minimize scanner.maxKey    val ABSTRACTkw = newTermName("abstract")    val CASEkw = newTermName("case")    val CLASSkw = newTermName("class")    val CATCHkw = newTermName("catch")    val DEFkw = newTermName("def")    val DOkw = newTermName("do")    val ELSEkw = newTermName("else")    val EXTENDSkw = newTermName("extends")    val FALSEkw = newTermName("false")    val FINALkw = newTermName("final")    val FINALLYkw = newTermName("finally")    val FORkw = newTermName("for")    val FORSOMEkw = newTermName("forSome")    val IFkw = newTermName("if")    val IMPLICITkw = newTermName("implicit")    val IMPORTkw = newTermName("import")    val LAZYkw = newTermName("lazy")    val MATCHkw = newTermName("match")    val MIXINkw = newTermName("mixin")    val NEWkw = newTermName("new")    val NULLkw = newTermName("null")    val OBJECTkw = newTermName("object")    val OUTER = newTermName("$outer")    val OVERRIDEkw = newTermName("override")    val PACKAGEkw = newTermName("package")    val PRIVATEkw = newTermName("private")    val PROTECTEDkw = newTermName("protected")    val RETURNkw = newTermName("return")    val REQUIRESkw = newTermName("requires")    val SEALEDkw = newTermName("sealed")    val SUPERkw = newTermName("super")    val THISkw = newTermName("this")    val THROWkw = newTermName("throw")    val TRAITkw = newTermName("trait")    val TRUEkw = newTermName("true")    val TRYkw = newTermName("try")    val TYPEkw = newTermName("type")    val VALkw = newTermName("val")    val VARkw = newTermName("var")    val WITHkw = newTermName("with")    val WHILEkw = newTermName("while")    val YIELDkw = newTermName("yield")    val DOTkw = newTermName(".")    val USCOREkw = newTermName("_")    val COLONkw = newTermName(":")    val EQUALSkw = newTermName("=")    val ARROWkw = newTermName("=>")    val LARROWkw = newTermName("<-")    val SUBTYPEkw = newTermName("<:")    val VIEWBOUNDkw = newTermName("<%")    val SUPERTYPEkw = newTermName(">:")    val HASHkw = newTermName("#")    val ATkw = newTermName("@")    val LOCALDUMMY_PREFIX_STRING = "<local "    val SUPER_PREFIX_STRING = "super$"    val EXPAND_SEPARATOR_STRING = "$$"    val TUPLE_FIELD_PREFIX_STRING = "_"    val CHECK_IF_REFUTABLE_STRING = "check$ifrefutable$"    val INTERPRETER_WRAPPER_SUFFIX = "$object"    val INTERPRETER_LINE_PREFIX = "line"    val INTERPRETER_VAR_PREFIX = "res"    val INTERPRETER_IMPORT_WRAPPER = "$iw"    val INTERPRETER_SYNTHVAR_PREFIX = "synthvar$"    def LOCAL(clazz: Symbol) = newTermName(LOCALDUMMY_PREFIX_STRING + clazz.name+">")    def TUPLE_FIELD(index: Int) = newTermName(TUPLE_FIELD_PREFIX_STRING + index)    val LOCAL_SUFFIX = newTermName(" ")    val SETTER_SUFFIX = encode("_=")    val IMPL_CLASS_SUFFIX = newTermName("$class")    val MODULE_SUFFIX = newTermName("$module")    val LOCALDUMMY_PREFIX = newTermName(LOCALDUMMY_PREFIX_STRING)    val THIS_SUFFIX = newTermName(".this")    val SELECTOR_DUMMY = newTermName("<unapply-selector>")        val MODULE_INSTANCE_FIELD = newTermName("MODULE$")    def isLocalName(name: Name) = name.endsWith(LOCAL_SUFFIX)    def isSetterName(name: Name) = name.endsWith(SETTER_SUFFIX)    def isLocalDummyName(name: Name) = name.startsWith(LOCALDUMMY_PREFIX)    def isOpAssignmentName(name: Name) =       name.endsWith(nme.EQL) && name != nme.EQEQ && !name.endsWith(nme.USCOREEQL)    /** If `name' is an expandedName, the original name. Otherwise `name' itself.     *  @see Symbol.expandedName     */    def originalName(name: Name): Name = {      var i = name.length      while (i >= 2 && !(name(i - 1) == '$' && name(i - 2) == '$')) i -= 1      if (i >= 2) {        while (i >= 3 && name(i - 3) == '$') i -= 1        name.subName(i, name.length)      } else name    }    def localToGetter(name: Name): Name = {      assert(isLocalName(name))//debug      name.subName(0, name.length - LOCAL_SUFFIX.length)    }    def getterToLocal(name: Name): Name = {      assert(!isLocalName(name) && !isSetterName(name))//debug      newTermName(name.toString() + LOCAL_SUFFIX)    }    def getterToSetter(name: Name): Name = {      assert(!isLocalName(name) && !isSetterName(name))//debug      newTermName(name.toString() + SETTER_SUFFIX)    }    def setterToGetter(name: Name): Name = {      name.subName(0, name.length - SETTER_SUFFIX.length)    }    def getterName(name: Name): Name =      if (isLocalName(name)) localToGetter(name) else name;    def isImplClassName(name: Name): Boolean =       name endsWith IMPL_CLASS_SUFFIX;    def implClassName(name: Name): Name =       newTypeName(name.toString() + IMPL_CLASS_SUFFIX)    def interfaceName(implname: Name): Name =       implname.subName(0, implname.length - IMPL_CLASS_SUFFIX.length)    def moduleVarName(name: Name): Name =       newTermName(name.toString() + MODULE_SUFFIX)    def superName(name: Name) = newTermName("super$" + name)       val PROTECTED_PREFIX = "protected$"    def isProtectedAccessor(name: Name) = name.startsWith(PROTECTED_PREFIX)          /** The name of an accessor for protected symbols. */    def protName(name: Name): Name = newTermName(PROTECTED_PREFIX + name)          /** The name of a setter for protected symbols. Used for inherited Java fields. */    def protSetterName(name: Name): Name = newTermName(PROTECTED_PREFIX + "set" + name)        /** The name of bitmaps for initialized lazy vals. */    def bitmapName(n: Int): Name = newTermName("bitmap$" + n)    val ERROR = newTermName("<error>")    val ERRORtype = newTypeName("<error>")    val LOCALCHILD = newTypeName("<local child>")    val NOSYMBOL = newTermName("<none>")    val EMPTY = newTermName("")    val ANYNAME = newTermName("<anyname>")    val WILDCARD = newTermName("_")    val WILDCARD_STAR = newTermName("_*")    val COMPOUND_NAME = newTermName("<ct>")    val ANON_CLASS_NAME = newTermName("$anon")    val ANON_FUN_NAME = newTermName("$anonfun")    val REFINE_CLASS_NAME = newTermName("<refinement>")    val EMPTY_PACKAGE_NAME = newTermName("<empty>")    val IMPORT = newTermName("<import>")    val ZERO = newTermName("<zero>")    val STAR = newTermName("*")    val ROOT = newTermName("<root>")    val ROOTPKG = newTermName("_root_")    val REPEATED_PARAM_CLASS_NAME = newTermName("<repeated>")    val BYNAME_PARAM_CLASS_NAME = newTermName("<byname>")    val EQUALS_PATTERN_NAME = newTermName("<equals>")    val SELF = newTermName("$this")    val THIS = newTermName("_$this")    val CONSTRUCTOR = newTermName("<init>")    val MIXIN_CONSTRUCTOR = newTermName("$init$")    val INITIALIZER = newTermName("<init>")    val INLINED_INITIALIZER = newTermName("$init$")    val MINUS = encode("-")    val PLUS = encode("+")    val PLUSPLUS = encode("++")    val TILDE = encode("~")    val EQEQ = encode("==")    val BANG = encode("!")    val BANGEQ = encode("!=")    val BARBAR = encode("||")    val AMPAMP = encode("&&")    val COLONCOLON = encode("::")    val PERCENT = encode("%")    val EQL = encode("=")    val USCOREEQL = encode("_=")    val Nothing = newTermName("Nothing")    val Null = newTermName("Null")    val Any = newTermName("Any")    val AnyVal = newTermName("AnyVal")    val AnyRef = newTermName("AnyRef")    val Array = newTermName("Array")    val Byte = newTermName("Byte")    val Catch = newTermName("Catch")    val Char = newTermName("Char")    val Boolean = newTermName("Boolean")    val Do = newTermName("Do")    val Double = newTermName("Double")    val Element = newTermName("Element")    val Finally = newTermName("Finally")    val Float = newTermName("Float")    val Function = newTermName("Function")    val Function1 = newTermName("Function1")    val Int = newTermName("Int")    val Labelled = newTermName("Labelled")    val Long = newTermName("Long")    val Nil = newTermName("Nil")    val Object = newTermName("Object")    val PartialFunction = newTermName("PartialFunction")    val Predef = newTermName("Predef")    val Product = newTermName("Product")    def Product_(i:Int) = newTermName("_" + i)    val ScalaObject = newTermName("ScalaObject")    val ScalaRunTime = newTermName("ScalaRunTime")    val Seq = newTermName("Seq")    val Short = newTermName("Short")    val Singleton = newTermName("Singleton")    val Some = newTermName("Some")    val SourceFile = newTermName("SourceFile")    val String = newTermName("String")    val Symbol = newTermName("Symbol")    val Synthetic = newTermName("Synthetic")    val System = newTermName("System")    val Text = newTermName("Text")    val Throwable = newTermName("Throwable")    val Try = newTermName("Try")    val Tuple = newTermName("Tuple")    val Type = newTermName("Type")    val Tuple2 = newTermName("Tuple2")    val Unit = newTermName("Unit")

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?