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 Keyword extends Token {
8   String keyword;
9   Keyword(String s) {
10     keyword = s;
11   }
12
13   Symbol token() {
14     Integer i = (Integer) key_table.get(keyword);
15     return new Symbol(i.intValue());
16   }
17   public String toString() {
18     return "Keyword <"+keyword+">";
19   }
20
21   static private final Hashtable key_table = new Hashtable();
22   static {
23     key_table.put("abstract", new Integer(Sym.ABSTRACT));
24     key_table.put("assert", new Integer(Sym.ASSERT));
25     key_table.put("boolean", new Integer(Sym.BOOLEAN));
26     key_table.put("break", new Integer(Sym.BREAK));
27     key_table.put("byte", new Integer(Sym.BYTE));
28     key_table.put("case", new Integer(Sym.CASE));
29     key_table.put("catch", new Integer(Sym.CATCH));
30     key_table.put("char", new Integer(Sym.CHAR));
31     key_table.put("class", new Integer(Sym.CLASS));
32     key_table.put("const", new Integer(Sym.CONST));
33     key_table.put("continue", new Integer(Sym.CONTINUE));
34     key_table.put("default", new Integer(Sym.DEFAULT));
35     key_table.put("do", new Integer(Sym.DO));
36     key_table.put("double", new Integer(Sym.DOUBLE));
37     key_table.put("else", new Integer(Sym.ELSE));
38     key_table.put("enum", new Integer(Sym.ENUM));
39     key_table.put("extends", new Integer(Sym.EXTENDS));
40     key_table.put("final", new Integer(Sym.FINAL));
41     key_table.put("finally", new Integer(Sym.FINALLY));
42     key_table.put("float", new Integer(Sym.FLOAT));
43     key_table.put("for", new Integer(Sym.FOR));
44     key_table.put("goto", new Integer(Sym.GOTO));
45     key_table.put("if", new Integer(Sym.IF));
46     key_table.put("import", new Integer(Sym.IMPORT));
47     key_table.put("instanceof", new Integer(Sym.INSTANCEOF));
48     key_table.put("int", new Integer(Sym.INT));
49     key_table.put("isavailable", new Integer(Sym.ISAVAILABLE));
50     key_table.put("long", new Integer(Sym.LONG));
51     key_table.put("native", new Integer(Sym.NATIVE));
52     key_table.put("new", new Integer(Sym.NEW));
53     key_table.put("package", new Integer(Sym.PACKAGE));
54     key_table.put("private", new Integer(Sym.PRIVATE));
55     key_table.put("protected", new Integer(Sym.PROTECTED));
56     key_table.put("public", new Integer(Sym.PUBLIC));
57     key_table.put("return", new Integer(Sym.RETURN));
58     key_table.put("short", new Integer(Sym.SHORT));
59     key_table.put("static", new Integer(Sym.STATIC));
60     key_table.put("strictfp", new Integer(Sym.STRICTFP));
61     key_table.put("super", new Integer(Sym.SUPER));
62     key_table.put("switch", new Integer(Sym.SWITCH));
63     key_table.put("synchronized", new Integer(Sym.SYNCHRONIZED));
64     key_table.put("this", new Integer(Sym.THIS));
65     key_table.put("throw", new Integer(Sym.THROW));
66     key_table.put("throws", new Integer(Sym.THROWS));
67     key_table.put("transient", new Integer(Sym.TRANSIENT));
68     key_table.put("try", new Integer(Sym.TRY));
69     key_table.put("void", new Integer(Sym.VOID));
70     key_table.put("volatile", new Integer(Sym.VOLATILE));
71     key_table.put("while", new Integer(Sym.WHILE));
72     //Keywords for failure aware computation
73     key_table.put("flag", new Integer(Sym.FLAG));
74     key_table.put("external", new Integer(Sym.EXTERNAL));
75     key_table.put("optional", new Integer(Sym.OPTIONAL));
76     key_table.put("tag", new Integer(Sym.TAG));
77     key_table.put("task", new Integer(Sym.TASK));
78     key_table.put("taskexit", new Integer(Sym.TASKEXIT));
79     //Keywords for transactions
80     key_table.put("atomic", new Integer(Sym.ATOMIC));
81     key_table.put("global", new Integer(Sym.GLOBAL));
82   }
83 }