This commit was manufactured by cvs2svn to create tag 'buildscript'.
[IRC.git] /
1 package Lex;
2
3 import java.util.Hashtable;
4 import java_cup.runtime.Symbol;
5 import Parse.Sym;
6
7 class Operator extends Token {
8   String which;
9   Operator(String which) {
10     this.which = which;
11   }
12
13   public String toString() {
14     return "Operator <"+which+">";
15   }
16
17   Symbol token() {
18     Integer i = (Integer) op_table.get(which);
19     return new Symbol(i.intValue());
20   }
21
22   static private final Hashtable op_table = new Hashtable();
23   static {
24     op_table.put("=", new Integer(Sym.EQ));
25     op_table.put(">", new Integer(Sym.GT));
26     op_table.put("<", new Integer(Sym.LT));
27     op_table.put("!", new Integer(Sym.NOT));
28     op_table.put("~", new Integer(Sym.COMP));
29     op_table.put("?", new Integer(Sym.QUESTION));
30     op_table.put(":", new Integer(Sym.COLON));
31     op_table.put("==", new Integer(Sym.EQEQ));
32     op_table.put("<=", new Integer(Sym.LTEQ));
33     op_table.put(">=", new Integer(Sym.GTEQ));
34     op_table.put("!=", new Integer(Sym.NOTEQ));
35     op_table.put("&&", new Integer(Sym.ANDAND));
36     op_table.put("||", new Integer(Sym.OROR));
37     op_table.put("++", new Integer(Sym.PLUSPLUS));
38     op_table.put("--", new Integer(Sym.MINUSMINUS));
39     op_table.put("+", new Integer(Sym.PLUS));
40     op_table.put("-", new Integer(Sym.MINUS));
41     op_table.put("*", new Integer(Sym.MULT));
42     op_table.put("/", new Integer(Sym.DIV));
43     op_table.put("&", new Integer(Sym.AND));
44     op_table.put("|", new Integer(Sym.OR));
45     op_table.put("^", new Integer(Sym.XOR));
46     op_table.put("%", new Integer(Sym.MOD));
47     op_table.put("<<", new Integer(Sym.LSHIFT));
48     op_table.put(">>", new Integer(Sym.RSHIFT));
49     op_table.put(">>>", new Integer(Sym.URSHIFT));
50     op_table.put("+=", new Integer(Sym.PLUSEQ));
51     op_table.put("-=", new Integer(Sym.MINUSEQ));
52     op_table.put("*=", new Integer(Sym.MULTEQ));
53     op_table.put("/=", new Integer(Sym.DIVEQ));
54     op_table.put("&=", new Integer(Sym.ANDEQ));
55     op_table.put("|=", new Integer(Sym.OREQ));
56     op_table.put("^=", new Integer(Sym.XOREQ));
57     op_table.put("%=", new Integer(Sym.MODEQ));
58     op_table.put("<<=", new Integer(Sym.LSHIFTEQ));
59     op_table.put(">>=", new Integer(Sym.RSHIFTEQ));
60     op_table.put(">>>=", new Integer(Sym.URSHIFTEQ));
61   }
62 }