licensing update to APSL 2.0
[org.ibex.js.git] / src / org / ibex / js / Tokens.java
1 // Copyright 2000-2005 the Contributors, as shown in the revision logs.
2 // Licensed under the Apache Public Source License 2.0 ("the License").
3 // You may not use this file except in compliance with the License.
4
5 package org.ibex.js;
6
7 /** this class contains a <tt>public static final int</tt> for each valid token */
8 interface Tokens {
9
10     // Token Constants //////////////////////////////////////////////////////////
11
12     // arithmetic operations; also valid as bytecodes
13     public static final int BITOR         = 0;   // |
14     public static final int ASSIGN_BITOR  = 1;   // |=
15     public static final int BITXOR        = 2;   // ^
16     public static final int ASSIGN_BITXOR = 3;   // ^=
17     public static final int BITAND        = 4;   // &
18     public static final int ASSIGN_BITAND = 5;   // &=
19     public static final int LSH           = 6;   // <<
20     public static final int ASSIGN_LSH    = 7;   // <<=
21     public static final int RSH           = 8;   // >>
22     public static final int ASSIGN_RSH    = 9;   // >>=
23     public static final int URSH          = 10;  // >>>
24     public static final int ASSIGN_URSH   = 11;  // >>>=
25     public static final int ADD           = 12;  // +
26     public static final int ASSIGN_ADD    = 13;  // +=
27     public static final int SUB           = 14;  // -
28     public static final int ASSIGN_SUB    = 15;  // -=
29     public static final int MUL           = 16;  // *
30     public static final int ASSIGN_MUL    = 17;  // *=
31     public static final int DIV           = 18;  // /
32     public static final int ASSIGN_DIV    = 19;  // /=
33     public static final int MOD           = 20;  // %
34     public static final int ASSIGN_MOD    = 21;  // %=
35     public static final int BITNOT        = 22;  // ~
36     public static final int ASSIGN_BITNOT = 23;  // ~=
37
38     // logical operations; also valid as bytecodes
39     public static final int OR            = 24;  // ||
40     public static final int AND           = 25;  // &&
41     public static final int BANG          = 26;  // !
42
43     // equality operations; also valid as bytecodes
44     public static final int EQ            = 27;  // ==
45     public static final int NE            = 28;  // !=
46     public static final int LT            = 29;  // <
47     public static final int LE            = 30;  // <=
48     public static final int GT            = 31;  // >
49     public static final int GE            = 32;  // >=
50     public static final int SHEQ          = 33;  // ===
51     public static final int SHNE          = 34;  // !==
52
53     // other permissible bytecode tokens
54     public static final int RETURN        = 35;  // return
55     public static final int TYPEOF        = 36;  // typeof
56     public static final int BREAK         = 37;  // break keyword
57     public static final int CONTINUE      = 38;  // continue keyword
58     public static final int TRY           = 39;  // try
59     public static final int THROW         = 40;  // throw
60     public static final int ASSERT        = 41;  // assert keyword
61
62     public static final int NAME          = 42;  // *** identifiers ***
63     public static final int NUMBER        = 43;  // *** numeric literals ***
64     public static final int STRING        = 44;  // *** string literals ***
65     public static final int NULL          = 45;  // null
66     public static final int THIS          = 46;  // this
67     public static final int FALSE         = 47;  // false
68     public static final int TRUE          = 48;  // true
69     public static final int IN            = 49;  // in
70
71     public static final int SEMI          = 50;  // ;
72     public static final int LB            = 51;  // [
73     public static final int RB            = 52;  // ]
74     public static final int LC            = 53;  // {
75     public static final int RC            = 54;  // }
76     public static final int LP            = 55;  // (
77     public static final int RP            = 56;  // )
78     public static final int COMMA         = 57;  // ,
79     public static final int ASSIGN        = 58;  // =
80     public static final int HOOK          = 59;  // ?
81     public static final int COLON         = 60;  // :
82     public static final int INC           = 61;  // ++
83     public static final int DEC           = 62;  // --
84     public static final int DOT           = 63;  // .
85     public static final int FUNCTION      = 64;  // function
86     public static final int IF            = 65;  // if keyword
87     public static final int ELSE          = 66;  // else keyword
88     public static final int SWITCH        = 67;  // switch keyword
89     public static final int CASE          = 68;  // case keyword
90     public static final int DEFAULT       = 69;  // default keyword
91     public static final int WHILE         = 70;  // while keyword
92     public static final int DO            = 71;  // do keyword
93     public static final int FOR           = 72;  // for keyword
94     public static final int VAR           = 73;  // var keyword
95     public static final int WITH          = 74;  // with keyword
96     public static final int CATCH         = 75;  // catch keyword
97     public static final int FINALLY       = 76;  // finally keyword
98     public static final int RESERVED      = 77;  // reserved keyword
99     public static final int GRAMMAR       = 78;  // the grammar-definition operator (::=)
100     public static final int ADD_TRAP      = 79;  // the add-trap operator (++=)
101     public static final int DEL_TRAP      = 80;  // the del-trap operator (--=)
102     public static final int CASCADE       = 81;  // cascade expression - arg==true for write cascade
103  
104     public static final int MAX_TOKEN = DEL_TRAP;
105
106     public final static String[] codeToString = new String[] {
107         "BITOR", "ASSIGN_BITOR", "BITXOR", "ASSIGN_BITXOR", "BITAND",
108         "ASSIGN_BITAND", "LSH", "ASSIGN_LSH", "RSH", "ASSIGN_RSH",
109         "URSH", "ASSIGN_URSH", "ADD", "ASSIGN_ADD", "SUB",
110         "ASSIGN_SUB", "MUL", "ASSIGN_MUL", "DIV", "ASSIGN_DIV", "MOD",
111         "ASSIGN_MOD", "BITNOT", "ASSIGN_BITNOT", "OR", "AND", "BANG",
112         "EQ", "NE", "LT", "LE", "GT", "GE", "SHEQ", "SHNE", "RETURN",
113         "TYPEOF", "BREAK", "CONTINUE", "TRY", "THROW", "ASSERT", "NAME",
114         "NUMBER", "STRING", "NULL", "THIS", "FALSE", "TRUE", "IN",
115         "SEMI", "LB", "RB", "LC", "RC", "LP", "RP", "COMMA", "ASSIGN",
116         "HOOK", "COLON", "INC", "DEC", "DOT", "FUNCTION", "IF",
117         "ELSE", "SWITCH", "CASE", "DEFAULT", "WHILE", "DO", "FOR",
118         "VAR", "WITH", "CATCH", "FINALLY", "RESERVED", "GRAMMAR",
119         "ADD_TRAP", "DEL_TRAP", "CASCADE"
120     };
121
122 }
123
124