blob: 69afdcf31444cd6afd057446b5b191ef7f7a814f [file] [log] [blame]
/*
* Copyright 2007 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.gwt.dev.js;
import java.util.HashSet;
import java.util.Set;
/**
* Determines whether or not a particular string is a JavaScript keyword or not.
*/
public class JsKeywords {
private static Set<String> sJavaScriptKeywords = new HashSet<String>();
static {
initJavaScriptKeywords();
}
public static boolean isKeyword(String s) {
return sJavaScriptKeywords.contains(s);
}
private static synchronized void initJavaScriptKeywords() {
String[] keywords = new String[]{
// These are current keywords
//
"break", "delete", "function", "return", "typeof", "case", "do", "if",
"switch", "var", "catch", "else", "in", "this", "void", "continue",
"false", "instanceof", "throw", "while", "debugger",
"finally",
"new",
"true",
"with",
"default",
"for",
"null",
"try",
// These are future keywords
//
"abstract", "double", "goto", "native", "static", "boolean", "enum",
"implements", "package", "super", "byte", "export", "import",
"private", "synchronized", "char", "extends", "int", "protected",
"throws", "class", "final", "interface", "public", "transient",
"const", "float", "long", "short", "volatile"};
for (int i = 0; i < keywords.length; i++) {
sJavaScriptKeywords.add(keywords[i]);
}
}
private JsKeywords() {
}
}