package scala.dbc2.syntax import statement.AnyValueDef._ object TokenVal extends Enumeration { type TokenValue = Value def anyValueToTokenValue(anyValue: AnyValue): TokenValue = anyValue match { case AnyValue(Some(s), None) => STRING case AnyValue(None, Some(a)) => a match { case s: Short => SMALLINT case i: Int => INTEGER case l: Long => BIGINT case f: Float => REAL case d: Double => DOUBLE } case _ => BAD } //Keywords val CONSTRAINT = Value("CONSTRAINT") val AS = Value("AS") val OF = Value("OF") val IS = Value("IS") val IN = Value("IN") val WITH = Value("WITH") val NO = Value("NO") val DATA = Value("DATA") val DEFAULT = Value("DEFAULT") val NULLVAL = Value("NULL") val CAST = Value("CAST") val UNION = Value("UNION") val EXCEPT = Value("EXCEPT") val INTERSECT = Value("INTERSECT") val PRECISION = Value("PRECISION") val BETWEEN = Value("BETWEEN") val LOCAL = Value("LOCAL") val GLOBAL = Value("GLOBAL") val TEMPORARY = Value("TEMPORARY") val SET = Value("SET") //Functions val COUNT = Value("COUNT") val AVG = Value("AVG") val MIN = Value("MIN") val MAX = Value("MAX") val SUM = Value("SUM") val EVERY = Value("EVERY") val ANY = Value("ANY") val SOME = Value("SOME") val FILTER = Value("FILTER") val NULL = Value("NULL") val UNIQUE = Value("UNIQUE") val PRIMARY = Value("PRIMARY") val KEY = Value("KEY") val FOREIGN = Value("FOREIGN") val REFERENCES = Value("REFERENCES") val CHECK = Value("CHECK") val PERIOD = Value(".") val COMMA = Value(",") val CREATE = Value("CREATE") val TABLE = Value("TABLE") val UPDATE = Value("UPDATE") val DELETE = Value("DELETE") val FROM = Value("FROM") val WHERE = Value("WHERE") val DROP = Value("DROP") val CASCADE = Value("CASCADE") val RESTRICT = Value("RESTRICT") val INSERT = Value("INSERT") val INTO = Value("INTO") val VALUES = Value("VALUES") val SELECT = Value("SELECT") val GROUP = Value("GROUP") val BY = Value("BY") val HAVING = Value("HAVING") val ALL = Value("ALL") val DISTINCT = Value("DISTINCT") val INNER = Value("INNER") val OUTER = Value("OUTER") val LEFT = Value("LEFT") val RIGHT = Value("RIGHT") val FULL = Value("FULL") val JOIN = Value("JOIN") //Different DataType val NUMERIC = Value("NUMERIC") val BOOLEAN = Value("BOOLEAN") val DECIMAL = Value("DECIMAL") val SMALLINT= Value("SMALLINT") val INTEGER = Value("INTEGER") val BIGINT = Value("BIGINT") val REAL = Value("REAL") val DOUBLE = Value("DOUBLE") val STRING = Value("STRING") val CHARACTER = Value("CHARACTER") val VARYING = Value("VARYING") val LARGE = Value("LARGE") val OBJECT = Value("OBJECT") val SYMBOL = Value("SYMBOL") val GT = Value(">") val GE = Value(">=") val LT = Value("<") val LE = Value("<=") val EQ = Value("=") val DIFF = Value("<>") val AND = Value("AND") val OR = Value("OR") val NOT = Value("NOT") val PLUS = Value("+") val MINUS = Value("-") val ASTERISK = Value("*") val DIV = Value("/") val CONCAT = Value("||") val TRUE = Value("TRUE") val FALSE = Value("FALSE") val UNKNOWN = Value("UNKNOWN") val LPAREN = Value("(") val RPAREN = Value(")") val BAD = Value("BAD") }