summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/javac/JavaTokens.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2008-05-20 20:31:20 +0000
committerMartin Odersky <odersky@gmail.com>2008-05-20 20:31:20 +0000
commit00e18ddfec3d3d592b5a140af3a73e4c06a135fe (patch)
tree0142cbb81eafb673eecb1ec8ace361d89818afd0 /src/compiler/scala/tools/nsc/javac/JavaTokens.scala
parent2c7e43ae7adc82438924c2dba9fd725c216c3048 (diff)
downloadscala-00e18ddfec3d3d592b5a140af3a73e4c06a135fe.tar.gz
scala-00e18ddfec3d3d592b5a140af3a73e4c06a135fe.tar.bz2
scala-00e18ddfec3d3d592b5a140af3a73e4c06a135fe.zip
1) Fix in backend to print meaningful filenames...
1) Fix in backend to print meaningful filenames (previously it was "[wrote DataOutputStream@6747]" 2) Treat java varargs as Scala varargs 3) Allow parsing of Java source files
Diffstat (limited to 'src/compiler/scala/tools/nsc/javac/JavaTokens.scala')
-rwxr-xr-xsrc/compiler/scala/tools/nsc/javac/JavaTokens.scala157
1 files changed, 157 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/javac/JavaTokens.scala b/src/compiler/scala/tools/nsc/javac/JavaTokens.scala
new file mode 100755
index 0000000000..53db4060b1
--- /dev/null
+++ b/src/compiler/scala/tools/nsc/javac/JavaTokens.scala
@@ -0,0 +1,157 @@
+/* NSC -- new Scala compiler
+ * Copyright 2005-2006 LAMP/EPFL
+ * @author Martin Odersky
+ */
+// $Id: Tokens.scala 12886 2007-09-17 16:36:10Z mcdirmid $
+
+package scala.tools.nsc.javac
+
+object JavaTokens {
+
+ /** special tokens */
+ final val EMPTY = -3
+ final val UNDEF = -2
+ final val ERROR = -1
+ final val EOF = 0
+
+ /** literals */
+ final val CHARLIT = 1
+ final val INTLIT = 2
+ final val LONGLIT = 3
+ final val FLOATLIT = 4
+ final val DOUBLELIT = 5
+ final val STRINGLIT = 6
+ def isLiteral(code : Int) =
+ code >= CHARLIT && code <= STRINGLIT
+
+ /** identifiers */
+ final val IDENTIFIER = 10
+ def isIdentifier(code : Int) =
+ code == IDENTIFIER
+
+ /** keywords */
+ final val ABSTRACT = 20
+ final val ASSERT = 21
+ final val BOOLEAN = 22
+ final val BREAK = 23
+ final val BYTE = 24
+ final val CASE = 25
+ final val CATCH = 26
+ final val CHAR = 27
+ final val CLASS = 28
+ final val CONST = 29
+ final val CONTINUE = 30
+ final val DEFAULT = 31
+ final val DO = 32
+ final val DOUBLE = 33
+ final val ELSE = 34
+ final val ENUM = 35
+ final val EXTENDS = 36
+ final val FINAL = 37
+ final val FINALLY = 38
+ final val FLOAT = 39
+ final val FOR = 40
+ final val IF = 41
+ final val GOTO = 42
+ final val IMPLEMENTS = 43
+ final val IMPORT = 44
+ final val INSTANCEOF = 45
+ final val INT = 46
+ final val INTERFACE = 47
+ final val LONG = 48
+ final val NATIVE = 49
+ final val NEW = 50
+ final val PACKAGE = 51
+ final val PRIVATE = 52
+ final val PROTECTED = 53
+ final val PUBLIC = 54
+ final val RETURN = 55
+ final val SHORT = 56
+ final val STATIC = 57
+ final val STRICTFP = 58
+ final val SUPER = 59
+ final val SWITCH = 60
+ final val SYNCHRONIZED = 61
+ final val THIS = 62
+ final val THROW = 63
+ final val THROWS = 64
+ final val TRANSIENT = 65
+ final val TRY = 66
+ final val VOID = 67
+ final val VOLATILE = 68
+ final val WHILE = 69
+
+ def isKeyword(code : Int) =
+ code >= ABSTRACT && code <= WHILE
+
+ /** special symbols */
+ final val COMMA = 70
+ final val SEMI = 71
+ final val DOT = 72
+ final val AT = 73
+ final val COLON = 74
+ final val ASSIGN = 75
+ final val EQEQ = 76
+ final val BANGEQ = 77
+ final val LT = 78
+ final val GT = 79
+ final val LTEQ = 80
+ final val GTEQ = 81
+ final val BANG = 82
+ final val QMARK = 83
+ final val AMP = 84
+ final val BAR = 85
+ final val PLUS = 86
+ final val MINUS = 87
+ final val ASTERISK = 88
+ final val SLASH = 89
+ final val PERCENT = 90
+ final val HAT = 91
+ final val LTLT = 92
+ final val GTGT = 93
+ final val GTGTGT = 94
+ final val AMPAMP = 95
+ final val BARBAR = 96
+ final val PLUSPLUS = 97
+ final val MINUSMINUS = 98
+ final val TILDE = 99
+ final val DOTDOTDOT = 100
+ final val AMPEQ = 104
+ final val BAREQ = 105
+ final val PLUSEQ = 106
+ final val MINUSEQ = 107
+ final val ASTERISKEQ = 1010
+ final val SLASHEQ = 109
+ final val PERCENTEQ = 110
+ final val HATEQ = 111
+ final val LTLTEQ = 112
+ final val GTGTEQ = 113
+ final val GTGTGTEQ = 114
+
+ def isSymbol(code : Int) =
+ code >= COMMA && code <= GTGTGTEQ
+
+ /** parenthesis */
+ final val LPAREN = 115
+ final val RPAREN = 116
+ final val LBRACKET = 117
+ final val RBRACKET = 118
+ final val LBRACE = 119
+ final val RBRACE = 120
+
+ def isBrace(code : Int) =
+ code >= LPAREN && code <= RBRACE
+ def isOpenBrace(code : Int) = isBrace(code) && (code % 2 == 0)
+ def isCloseBrace(code : Int) = isBrace(code) && (code % 2 == 1)
+
+ def isSpace(at : Char) = at match {
+ case ' ' | '\t' => true
+ case _ => false
+ }
+ import scala.tools.nsc.util.SourceFile._
+
+ def isNewLine(at : Char) = at match {
+ case CR | LF | FF => true
+ case _ => false
+ }
+}