132 lines
3.6 KiB
Java
132 lines
3.6 KiB
Java
package jxl.biff.formula;
|
|
|
|
import java.util.HashMap;
|
|
|
|
class Token {
|
|
public final int[] value;
|
|
|
|
private static HashMap tokens = new HashMap(20);
|
|
|
|
private Token(int v) {
|
|
this.value = new int[] { v };
|
|
tokens.put(new Integer(v), this);
|
|
}
|
|
|
|
private Token(int v1, int v2) {
|
|
this.value = new int[] { v1, v2 };
|
|
tokens.put(new Integer(v1), this);
|
|
tokens.put(new Integer(v2), this);
|
|
}
|
|
|
|
private Token(int v1, int v2, int v3) {
|
|
this.value = new int[] { v1, v2, v3 };
|
|
tokens.put(new Integer(v1), this);
|
|
tokens.put(new Integer(v2), this);
|
|
tokens.put(new Integer(v3), this);
|
|
}
|
|
|
|
private Token(int v1, int v2, int v3, int v4) {
|
|
this.value = new int[] { v1, v2, v3, v4 };
|
|
tokens.put(new Integer(v1), this);
|
|
tokens.put(new Integer(v2), this);
|
|
tokens.put(new Integer(v3), this);
|
|
tokens.put(new Integer(v4), this);
|
|
}
|
|
|
|
private Token(int v1, int v2, int v3, int v4, int v5) {
|
|
this.value = new int[] { v1, v2, v3, v4, v5 };
|
|
tokens.put(new Integer(v1), this);
|
|
tokens.put(new Integer(v2), this);
|
|
tokens.put(new Integer(v3), this);
|
|
tokens.put(new Integer(v4), this);
|
|
tokens.put(new Integer(v5), this);
|
|
}
|
|
|
|
public byte getCode() {
|
|
return (byte)this.value[0];
|
|
}
|
|
|
|
public byte getCode2() {
|
|
return (byte)((this.value.length > 0) ? this.value[1] : this.value[0]);
|
|
}
|
|
|
|
public static Token getToken(int v) {
|
|
Token t = (Token)tokens.get(new Integer(v));
|
|
return (t != null) ? t : UNKNOWN;
|
|
}
|
|
|
|
public static final Token REF = new Token(68, 36, 100);
|
|
|
|
public static final Token REF3D = new Token(90, 58, 122);
|
|
|
|
public static final Token MISSING_ARG = new Token(22);
|
|
|
|
public static final Token STRING = new Token(23);
|
|
|
|
public static final Token BOOL = new Token(29);
|
|
|
|
public static final Token INTEGER = new Token(30);
|
|
|
|
public static final Token DOUBLE = new Token(31);
|
|
|
|
public static final Token REFERR = new Token(42, 74, 106);
|
|
|
|
public static final Token REFV = new Token(44, 76, 108);
|
|
|
|
public static final Token AREAV = new Token(45, 77, 109);
|
|
|
|
public static final Token AREA = new Token(37, 101, 69);
|
|
|
|
public static final Token NAMED_RANGE = new Token(67, 35, 99);
|
|
|
|
public static final Token NAME = new Token(57);
|
|
|
|
public static final Token AREA3D = new Token(59, 91);
|
|
|
|
public static final Token UNARY_PLUS = new Token(18);
|
|
|
|
public static final Token UNARY_MINUS = new Token(19);
|
|
|
|
public static final Token PERCENT = new Token(20);
|
|
|
|
public static final Token PARENTHESIS = new Token(21);
|
|
|
|
public static final Token ADD = new Token(3);
|
|
|
|
public static final Token SUBTRACT = new Token(4);
|
|
|
|
public static final Token MULTIPLY = new Token(5);
|
|
|
|
public static final Token DIVIDE = new Token(6);
|
|
|
|
public static final Token POWER = new Token(7);
|
|
|
|
public static final Token CONCAT = new Token(8);
|
|
|
|
public static final Token LESS_THAN = new Token(9);
|
|
|
|
public static final Token LESS_EQUAL = new Token(10);
|
|
|
|
public static final Token EQUAL = new Token(11);
|
|
|
|
public static final Token GREATER_EQUAL = new Token(12);
|
|
|
|
public static final Token GREATER_THAN = new Token(13);
|
|
|
|
public static final Token NOT_EQUAL = new Token(14);
|
|
|
|
public static final Token UNION = new Token(16);
|
|
|
|
public static final Token RANGE = new Token(17);
|
|
|
|
public static final Token FUNCTION = new Token(65, 33, 97);
|
|
|
|
public static final Token FUNCTIONVARARG = new Token(66, 34, 98);
|
|
|
|
public static final Token ATTRIBUTE = new Token(25);
|
|
|
|
public static final Token MEM_FUNC = new Token(41, 73, 105);
|
|
|
|
public static final Token UNKNOWN = new Token(65535);
|
|
}
|