ljr/wcmtools/s2/danga/s2/TokenKeyword.java

71 lines
3.2 KiB
Java
Executable File

package danga.s2;
class TokenKeyword extends TokenIdent {
public final static TokenKeyword CLASS = new TokenKeyword("class");
public final static TokenKeyword ELSE = new TokenKeyword("else");
public final static TokenKeyword ELSEIF = new TokenKeyword("elseif");
public final static TokenKeyword FUNCTION = new TokenKeyword("function");
public final static TokenKeyword IF = new TokenKeyword("if");
public final static TokenKeyword BUILTIN = new TokenKeyword("builtin");
public final static TokenKeyword PROPERTY = new TokenKeyword("property");
public final static TokenKeyword SET = new TokenKeyword("set");
public final static TokenKeyword STATIC = new TokenKeyword("static");
public final static TokenKeyword VAR = new TokenKeyword("var");
public final static TokenKeyword WHILE = new TokenKeyword("while");
public final static TokenKeyword FOREACH = new TokenKeyword("foreach");
public final static TokenKeyword PRINT = new TokenKeyword("print");
public final static TokenKeyword PRINTLN = new TokenKeyword("println");
public final static TokenKeyword NOT = new TokenKeyword("not");
public final static TokenKeyword AND = new TokenKeyword("and");
public final static TokenKeyword OR = new TokenKeyword("or");
public final static TokenKeyword XOR = new TokenKeyword("xor");
public final static TokenKeyword LAYERINFO = new TokenKeyword("layerinfo");
public final static TokenKeyword EXTENDS = new TokenKeyword("extends");
public final static TokenKeyword RETURN = new TokenKeyword("return");
public final static TokenKeyword DELETE = new TokenKeyword("delete");
public final static TokenKeyword DEFINED = new TokenKeyword("defined");
public final static TokenKeyword NEW = new TokenKeyword("new");
public final static TokenKeyword TRUE = new TokenKeyword("true");
public final static TokenKeyword FALSE = new TokenKeyword("false");
public final static TokenKeyword REVERSE = new TokenKeyword("reverse");
public final static TokenKeyword SIZE = new TokenKeyword("size");
public final static TokenKeyword ISNULL = new TokenKeyword("isnull");
public final static TokenKeyword NULL = new TokenKeyword("null");
public final static TokenKeyword READONLY = new TokenKeyword("readonly");
static TokenKeyword[] keywords = {
CLASS, ELSE, ELSEIF, FUNCTION, IF, BUILTIN, PROPERTY, SET,
STATIC, VAR, WHILE, FOREACH, PRINT, PRINTLN, NEW, TRUE, FALSE,
NOT, AND, OR, XOR, LAYERINFO, EXTENDS, RETURN, DELETE, DEFINED,
REVERSE, SIZE, ISNULL, NULL, READONLY
};
public TokenKeyword () {
this.ident = null;
}
public TokenKeyword (String ident) {
this.ident = ident;
}
public static TokenKeyword tokenFromString (String ident) {
// FIXME: this is O(n). do binary search or use hash
for (int i=0; i<keywords.length; i++) {
if (keywords[i].ident.equals(ident))
return keywords[i];
}
return null;
}
public String toString() {
return ("[TokenKeyword] = " + ident);
}
public void asHTML (Output o)
{
o.write("<span class=\"k\">" + ident + "</span>");
}
}