Newer
Older
zweic / sources / zweic / Operators.scala
@glproj03 glproj03 on 20 Nov 2005 1 KB *** empty log message ***
/*  zweic -- a compiler for zwei
 *
 *  Stephane Micheloud & LAMP
 *
 *  $Id$
 */

package zweic;


/**
 * This class defines all binary operators of zwei.
 */
object Operators extends Enumeration {
  type Operator = Value;

  // binary
  val ADD = Value("+");
  val SUB = Value("-");
  val MUL = Value("*");
  val DIV = Value("/");
  val MOD = Value("%");
  val EQ  = Value("==");
  val NE  = Value("!=");
  val LT  = Value("<");
  val LE  = Value("<=");
  val GT  = Value(">");
  val GE  = Value(">=");
  val AND = Value("&&");

  // unary
  val NEG = Value("-");
  val NOT = Value("!");

  import scala.collection.mutable.HashMap;

  val token2op = new HashMap[Tokens.Token, Operator]();

  token2op += Tokens.ADD -> ADD;
  token2op += Tokens.SUB -> SUB;
  token2op += Tokens.MUL -> MUL;
  token2op += Tokens.DIV -> DIV;
  token2op += Tokens.MOD -> MOD;
  token2op += Tokens.EQ  -> EQ;
  token2op += Tokens.NE  -> NE;
  token2op += Tokens.LT  -> LT;
  token2op += Tokens.LE  -> LE;
  token2op += Tokens.GT  -> GT;
  token2op += Tokens.GE  -> GE;
  token2op += Tokens.AND -> AND;
  token2op += Tokens.NOT -> NOT;
}