private static int stringToKeywordForJS()

in rhino/src/main/java/org/mozilla/javascript/TokenStream.java [94:353]


    private static int stringToKeywordForJS(String name) {
        // The following assumes that Token.EOF == 0
        final int Id_break = Token.BREAK,
                Id_case = Token.CASE,
                Id_continue = Token.CONTINUE,
                Id_default = Token.DEFAULT,
                Id_delete = Token.DELPROP,
                Id_do = Token.DO,
                Id_else = Token.ELSE,
                Id_export = Token.RESERVED,
                Id_false = Token.FALSE,
                Id_for = Token.FOR,
                Id_function = Token.FUNCTION,
                Id_if = Token.IF,
                Id_in = Token.IN,
                Id_let = Token.LET, // reserved ES5 strict
                Id_new = Token.NEW,
                Id_null = Token.NULL,
                Id_return = Token.RETURN,
                Id_switch = Token.SWITCH,
                Id_this = Token.THIS,
                Id_true = Token.TRUE,
                Id_typeof = Token.TYPEOF,
                Id_var = Token.VAR,
                Id_void = Token.VOID,
                Id_while = Token.WHILE,
                Id_with = Token.WITH,
                Id_yield = Token.YIELD, // reserved ES5 strict

                // the following are #ifdef RESERVE_JAVA_KEYWORDS in jsscan.c
                Id_abstract = Token.RESERVED, // ES3 only
                Id_boolean = Token.RESERVED, // ES3 only
                Id_byte = Token.RESERVED, // ES3 only
                Id_catch = Token.CATCH,
                Id_char = Token.RESERVED, // ES3 only
                Id_class = Token.RESERVED,
                Id_const = Token.CONST, // reserved
                Id_debugger = Token.DEBUGGER,
                Id_double = Token.RESERVED, // ES3 only
                Id_enum = Token.RESERVED,
                Id_extends = Token.RESERVED,
                Id_final = Token.RESERVED, // ES3 only
                Id_finally = Token.FINALLY,
                Id_float = Token.RESERVED, // ES3 only
                Id_goto = Token.RESERVED, // ES3 only
                Id_implements = Token.RESERVED, // ES3, ES5 strict
                Id_import = Token.RESERVED,
                Id_instanceof = Token.INSTANCEOF,
                Id_int = Token.RESERVED, // ES3
                Id_interface = Token.RESERVED, // ES3, ES5 strict
                Id_long = Token.RESERVED, // ES3 only
                Id_native = Token.RESERVED, // ES3 only
                Id_package = Token.RESERVED, // ES3, ES5 strict
                Id_private = Token.RESERVED, // ES3, ES5 strict
                Id_protected = Token.RESERVED, // ES3, ES5 strict
                Id_public = Token.RESERVED, // ES3, ES5 strict
                Id_short = Token.RESERVED, // ES3 only
                Id_static = Token.RESERVED, // ES3, ES5 strict
                Id_super = Token.RESERVED,
                Id_synchronized = Token.RESERVED, // ES3 only
                Id_throw = Token.THROW,
                Id_throws = Token.RESERVED, // ES3 only
                Id_transient = Token.RESERVED, // ES3 only
                Id_try = Token.TRY,
                Id_volatile = Token.RESERVED; // ES3 only

        int id;
        switch (name) {
            case "break":
                id = Id_break;
                break;
            case "case":
                id = Id_case;
                break;
            case "continue":
                id = Id_continue;
                break;
            case "default":
                id = Id_default;
                break;
            case "delete":
                id = Id_delete;
                break;
            case "do":
                id = Id_do;
                break;
            case "else":
                id = Id_else;
                break;
            case "export":
                id = Id_export;
                break;
            case "false":
                id = Id_false;
                break;
            case "for":
                id = Id_for;
                break;
            case "function":
                id = Id_function;
                break;
            case "if":
                id = Id_if;
                break;
            case "in":
                id = Id_in;
                break;
            case "let":
                id = Id_let;
                break;
            case "new":
                id = Id_new;
                break;
            case "null":
                id = Id_null;
                break;
            case "return":
                id = Id_return;
                break;
            case "switch":
                id = Id_switch;
                break;
            case "this":
                id = Id_this;
                break;
            case "true":
                id = Id_true;
                break;
            case "typeof":
                id = Id_typeof;
                break;
            case "var":
                id = Id_var;
                break;
            case "void":
                id = Id_void;
                break;
            case "while":
                id = Id_while;
                break;
            case "with":
                id = Id_with;
                break;
            case "yield":
                id = Id_yield;
                break;
            case "abstract":
                id = Id_abstract;
                break;
            case "boolean":
                id = Id_boolean;
                break;
            case "byte":
                id = Id_byte;
                break;
            case "catch":
                id = Id_catch;
                break;
            case "char":
                id = Id_char;
                break;
            case "class":
                id = Id_class;
                break;
            case "const":
                id = Id_const;
                break;
            case "debugger":
                id = Id_debugger;
                break;
            case "double":
                id = Id_double;
                break;
            case "enum":
                id = Id_enum;
                break;
            case "extends":
                id = Id_extends;
                break;
            case "final":
                id = Id_final;
                break;
            case "finally":
                id = Id_finally;
                break;
            case "float":
                id = Id_float;
                break;
            case "goto":
                id = Id_goto;
                break;
            case "implements":
                id = Id_implements;
                break;
            case "import":
                id = Id_import;
                break;
            case "instanceof":
                id = Id_instanceof;
                break;
            case "int":
                id = Id_int;
                break;
            case "interface":
                id = Id_interface;
                break;
            case "long":
                id = Id_long;
                break;
            case "native":
                id = Id_native;
                break;
            case "package":
                id = Id_package;
                break;
            case "private":
                id = Id_private;
                break;
            case "protected":
                id = Id_protected;
                break;
            case "public":
                id = Id_public;
                break;
            case "short":
                id = Id_short;
                break;
            case "static":
                id = Id_static;
                break;
            case "super":
                id = Id_super;
                break;
            case "synchronized":
                id = Id_synchronized;
                break;
            case "throw":
                id = Id_throw;
                break;
            case "throws":
                id = Id_throws;
                break;
            case "transient":
                id = Id_transient;
                break;
            case "try":
                id = Id_try;
                break;
            case "volatile":
                id = Id_volatile;
                break;
            default:
                id = 0;
                break;
        }
        if (id == 0) {
            return Token.EOF;
        }
        return id & 0xff;
    }