X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fxwt%2Fjs%2FTokens.java;h=28e57af4db0841c6108a44fda9c55d8cbe659a0d;hb=de378041d5ca2aca1a2b5a31ef15ae90a86c977f;hp=3f9065c660413532762811856ff35157f782f86e;hpb=56387d062db4aca0510daa34579aa139570bac87;p=org.ibex.core.git diff --git a/src/org/xwt/js/Tokens.java b/src/org/xwt/js/Tokens.java index 3f9065c..28e57af 100644 --- a/src/org/xwt/js/Tokens.java +++ b/src/org/xwt/js/Tokens.java @@ -1,111 +1,120 @@ -// Copyright 2002 Adam Megacz, see the COPYING file for licensing [GPL] +// Copyright 2004 Adam Megacz, see the COPYING file for licensing [GPL] package org.xwt.js; -public interface Tokens { +/** this class contains a public static final int for each valid token */ +interface Tokens { + // Token Constants ////////////////////////////////////////////////////////// - public final static int - EOL = 1, // end of line - RETURN = 2, // return - GOTO = 3, // goto - BITOR = 4, // | - ASSIGN_BITOR = 5, // |= - BITXOR = 6, // ^ - ASSIGN_BITXOR= 7, // ^= - BITAND = 8, // & - ASSIGN_BITAND= 9, // &= - EQ = 10, // == - NE = 11, // != - LT = 12, // < - LE = 13, // <= - GT = 14, // > - GE = 15, // >= - LSH = 16, // << - ASSIGN_LSH = 17, // <<= - RSH = 18, // >> - ASSIGN_RSH = 19, // >>= - URSH = 20, // >>> - ASSIGN_URSH = 21, // >>>= - ADD = 22, // + - ASSIGN_ADD = 23, // += - SUB = 24, // - - ASSIGN_SUB = 25, // -= - MUL = 26, // * - ASSIGN_MUL = 27, // *= - DIV = 28, // / - ASSIGN_DIV = 29, // /= - MOD = 30, // % - ASSIGN_MOD = 31, // %= - BITNOT = 32, // ~ - ASSIGN_BITNOT= 33, // ~= - DELPROP = 34, // delete - TYPEOF = 35, // typeof - NAME = 36, // *** identifiers *** - NUMBER = 37, // *** numeric literals *** - STRING = 38, // *** string literals *** - NULL = 39, // null - THIS = 40, // this - FALSE = 41, // false - TRUE = 42, // true - SHEQ = 43, // === - SHNE = 44, // !== - THROW = 45, // throw - IN = 46, // in - INSTANCEOF = 47, // instanceof - TRY = 48, // try - SEMI = 49, // ; - LB = 50, // [ - RB = 51, // ] - LC = 52, // { - RC = 53, // } - LP = 54, // ( - RP = 55, // ) - COMMA = 56, // , - ASSIGN = 57, // = - HOOK = 58, // ? - COLON = 59, // : - OR = 60, // || - AND = 61, // && - INC = 62, // ++ - DEC = 63, // -- - DOT = 64, // . - FUNCTION = 65, // function - IF = 66, // if keyword - ELSE = 67, // else keyword - SWITCH = 68, // switch keyword - CASE = 69, // case keyword - DEFAULT = 70, // default keyword - WHILE = 71, // while keyword - DO = 72, // do keyword - FOR = 73, // for keyword - BREAK = 74, // break keyword - CONTINUE = 75, // continue keyword - VAR = 76, // var keyword - WITH = 77, // with keyword - CATCH = 78, // catch keyword - FINALLY = 79, // finally keyword - RESERVED = 80, // reserved keywords - NOP = 81, // NOP - VOID = 82, // void keyword - MOD_ASSIGN = 83, // %= - BANG = 84, // %= - ASSERT = 85; // assert keyword + // arithmetic operations; also valid as bytecodes + public static final int BITOR = 0; // | + public static final int ASSIGN_BITOR = 1; // |= + public static final int BITXOR = 2; // ^ + public static final int ASSIGN_BITXOR = 3; // ^= + public static final int BITAND = 4; // & + public static final int ASSIGN_BITAND = 5; // &= + public static final int LSH = 6; // << + public static final int ASSIGN_LSH = 7; // <<= + public static final int RSH = 8; // >> + public static final int ASSIGN_RSH = 9; // >>= + public static final int URSH = 10; // >>> + public static final int ASSIGN_URSH = 11; // >>>= + public static final int ADD = 12; // + + public static final int ASSIGN_ADD = 13; // += + public static final int SUB = 14; // - + public static final int ASSIGN_SUB = 15; // -= + public static final int MUL = 16; // * + public static final int ASSIGN_MUL = 17; // *= + public static final int DIV = 18; // / + public static final int ASSIGN_DIV = 19; // /= + public static final int MOD = 20; // % + public static final int ASSIGN_MOD = 21; // %= + public static final int BITNOT = 22; // ~ + public static final int ASSIGN_BITNOT = 23; // ~= + + // logical operations; also valid as bytecodes + public static final int OR = 24; // || + public static final int AND = 25; // && + public static final int BANG = 26; // ! + + // equality operations; also valid as bytecodes + public static final int EQ = 27; // == + public static final int NE = 28; // != + public static final int LT = 29; // < + public static final int LE = 30; // <= + public static final int GT = 31; // > + public static final int GE = 32; // >= + public static final int SHEQ = 33; // === + public static final int SHNE = 34; // !== + + // other permissible bytecode tokens + public static final int RETURN = 35; // return + public static final int TYPEOF = 36; // typeof + public static final int BREAK = 37; // break keyword + public static final int CONTINUE = 38; // continue keyword + public static final int TRY = 39; // try + public static final int THROW = 40; // throw + public static final int ASSERT = 41; // assert keyword - public static final int MAX_TOKEN = ASSERT; + public static final int NAME = 42; // *** identifiers *** + public static final int NUMBER = 43; // *** numeric literals *** + public static final int STRING = 44; // *** string literals *** + public static final int NULL = 45; // null + public static final int THIS = 46; // this + public static final int FALSE = 47; // false + public static final int TRUE = 48; // true + public static final int IN = 49; // in + + public static final int SEMI = 50; // ; + public static final int LB = 51; // [ + public static final int RB = 52; // ] + public static final int LC = 53; // { + public static final int RC = 54; // } + public static final int LP = 55; // ( + public static final int RP = 56; // ) + public static final int COMMA = 57; // , + public static final int ASSIGN = 58; // = + public static final int HOOK = 59; // ? + public static final int COLON = 60; // : + public static final int INC = 61; // ++ + public static final int DEC = 62; // -- + public static final int DOT = 63; // . + public static final int FUNCTION = 64; // function + public static final int IF = 65; // if keyword + public static final int ELSE = 66; // else keyword + public static final int SWITCH = 67; // switch keyword + public static final int CASE = 68; // case keyword + public static final int DEFAULT = 69; // default keyword + public static final int WHILE = 70; // while keyword + public static final int DO = 71; // do keyword + public static final int FOR = 72; // for keyword + public static final int VAR = 73; // var keyword + public static final int WITH = 74; // with keyword + public static final int CATCH = 75; // catch keyword + public static final int FINALLY = 76; // finally keyword + public static final int RESERVED = 77; // reserved keyword + public static final int GRAMMAR = 78; // the grammar-definition operator (::=) + public static final int ADD_TRAP = 79; // the add-trap operator (++=) + public static final int DEL_TRAP = 80; // the del-trap operator (--=) + + public static final int MAX_TOKEN = DEL_TRAP; public final static String[] codeToString = new String[] { - "0", "EOL", "RETURN", "GOTO", "BITOR", "ASSIGN_BITOR", - "BITXOR", "ASSIGN_BITXOR", "BITAND", "ASSIGN_BITAND", "EQ", - "NE", "LT", "LE", "GT", "GE", "LSH", "ASSIGN_LSH", "RSH", - "ASSIGN_RSH", "URSH", "ASSIGN_URSH", "ADD", "ASSIGN_ADD", - "SUB", "ASSIGN_SUB", "MUL", "ASSIGN_MUL", "DIV", "ASSIGN_DIV", - "MOD", "ASSIGN_MOD", "BITNOT", "ASSIGN_BITNOT=", "DELPROP", - "TYPEOF", "NAME", "NUMBER", "STRING", "NULL", "THIS", "FALSE", - "TRUE", "SHEQ", "SHNE", "THROW", "IN", "INSTANCEOF", "TRY", - "SEMI", "LB", "RB", "LC", "RC", "LP", "RP", "COMMA", "ASSIGN", - "HOOK", "COLON", "OR", "AND", "INC", "DEC", "DOT", "FUNCTION", - "IF", "ELSE", "SWITCH", "CASE", "DEFAULT", "WHILE", "DO", - "FOR", "BREAK", "CONTINUE", "VAR", "WITH", "CATCH", "FINALLY", - "RESERVED", "NOP", "VOID", "MOD_ASSIGN", "BANG", "ASSERT" }; + "BITOR", "ASSIGN_BITOR", "BITXOR", "ASSIGN_BITXOR", "BITAND", + "ASSIGN_BITAND", "LSH", "ASSIGN_LSH", "RSH", "ASSIGN_RSH", + "URSH", "ASSIGN_URSH", "ADD", "ASSIGN_ADD", "SUB", + "ASSIGN_SUB", "MUL", "ASSIGN_MUL", "DIV", "ASSIGN_DIV", "MOD", + "ASSIGN_MOD", "BITNOT", "ASSIGN_BITNOT", "OR", "AND", "BANG", + "EQ", "NE", "LT", "LE", "GT", "GE", "SHEQ", "SHNE", "RETURN", + "TYPEOF", "BREAK", "CONTINUE", "TRY", "THROW", "ASSERT", "NAME", + "NUMBER", "STRING", "NULL", "THIS", "FALSE", "TRUE", "IN", + "SEMI", "LB", "RB", "LC", "RC", "LP", "RP", "COMMA", "ASSIGN", + "HOOK", "COLON", "INC", "DEC", "DOT", "FUNCTION", "IF", + "ELSE", "SWITCH", "CASE", "DEFAULT", "WHILE", "DO", "FOR", + "VAR", "WITH", "CATCH", "FINALLY", "RESERVED", "GRAMMAR", + "ADD_TRAP", "DEL_TRAP" + }; } + +