Type.NodeSetDTM);
Type.NodeSet);
    private void initSymbolTable() {	MethodType I_V  = new MethodType(Type.Int, Type.Void);	MethodType I_R  = new MethodType(Type.Int, Type.Real);	MethodType I_S  = new MethodType(Type.Int, Type.String);	MethodType I_D  = new MethodType(Type.Int, Type.NodeSetDTM);	MethodType R_I  = new MethodType(Type.Real, Type.Int);	MethodType R_V  = new MethodType(Type.Real, Type.Void);	MethodType R_R  = new MethodType(Type.Real, Type.Real);	MethodType R_D  = new MethodType(Type.Real, Type.NodeSetDTM);	MethodType R_O  = new MethodType(Type.Real, Type.Reference);	MethodType I_I  = new MethodType(Type.Int, Type.Int);	MethodType D_O  = new MethodType(Type.NodeSetDTM, Type.Reference);	MethodType D_SS = new MethodType(Type.NodeSetDTM,					 Type.String, Type.String);	MethodType D_SD = new MethodType(Type.NodeSetDTM,					 Type.String, Type.NodeSetDTM);	MethodType D_S  = new MethodType(Type.NodeSetDTM, Type.String);	MethodType D_D  = new MethodType(Type.NodeSetDTM, Type.NodeSetDTM);	MethodType A_V  = new MethodType(Type.Node, Type.Void);	MethodType S_V  = new MethodType(Type.String, Type.Void);	MethodType S_S  = new MethodType(Type.String, Type.String);	MethodType S_A  = new MethodType(Type.String, Type.Node);	MethodType S_D  = new MethodType(Type.String, Type.NodeSetDTM);	MethodType S_O  = new MethodType(Type.String, Type.Reference);	MethodType B_O  = new MethodType(Type.Boolean, Type.Reference);	MethodType B_V  = new MethodType(Type.Boolean, Type.Void);	MethodType B_B  = new MethodType(Type.Boolean, Type.Boolean);	MethodType B_S  = new MethodType(Type.Boolean, Type.String);	MethodType R_RR = new MethodType(Type.Real, Type.Real, Type.Real);	MethodType I_II = new MethodType(Type.Int, Type.Int, Type.Int);	MethodType B_RR = new MethodType(Type.Boolean, Type.Real, Type.Real);	MethodType B_II = new MethodType(Type.Boolean, Type.Int, Type.Int);	MethodType B_BB = new MethodType(Type.Boolean, Type.Boolean,					 Type.Boolean);	MethodType B_SS = new MethodType(Type.Boolean, Type.String,					 Type.String);	MethodType S_SS = new MethodType(Type.String, Type.String,					 Type.String);	MethodType S_SD = new MethodType(Type.String, Type.String,					 Type.NodeSetDTM);	MethodType S_DS  = new MethodType(Type.String, Type.Real, Type.String);	MethodType S_DSS = new MethodType(Type.String, Type.Real, Type.String,					  Type.String);	MethodType S_SR  = new MethodType(Type.String, Type.String, Type.Real);	MethodType S_SRR = new MethodType(Type.String, Type.String, Type.Real,					  Type.Real);	MethodType S_SSS = new MethodType(Type.String, Type.String,					  Type.String, Type.String);	/*	 * Standard functions: implemented but not in this table concat().	 * When adding a new function make sure to uncomment	 * the corresponding line in <tt>FunctionAvailableCall</tt>.	 */	// The following functions are inlined	_symbolTable.addPrimop("current", A_V);	_symbolTable.addPrimop("last", I_V);	_symbolTable.addPrimop("position", I_V);	_symbolTable.addPrimop("true", B_V);	_symbolTable.addPrimop("false", B_V);	_symbolTable.addPrimop("not", B_B);	_symbolTable.addPrimop("name", S_V);	_symbolTable.addPrimop("name", S_A);	_symbolTable.addPrimop("generate-id", S_V);	_symbolTable.addPrimop("generate-id", S_A);	_symbolTable.addPrimop("ceiling", R_R);	_symbolTable.addPrimop("floor", R_R);	_symbolTable.addPrimop("round", I_R);	_symbolTable.addPrimop("contains", B_SS);	_symbolTable.addPrimop("number", R_O);	_symbolTable.addPrimop("number", R_V);	_symbolTable.addPrimop("boolean", B_O);	_symbolTable.addPrimop("string", S_O);	_symbolTable.addPrimop("string", S_V);	_symbolTable.addPrimop("translate", S_SSS);	_symbolTable.addPrimop("string-length", I_V);	_symbolTable.addPrimop("string-length", I_S);	_symbolTable.addPrimop("starts-with", B_SS);	_symbolTable.addPrimop("format-number", S_DS);	_symbolTable.addPrimop("format-number", S_DSS);	_symbolTable.addPrimop("unparsed-entity-uri", S_S);	_symbolTable.addPrimop("key", D_SS);	_symbolTable.addPrimop("key", D_SD);	_symbolTable.addPrimop("id", D_S);	_symbolTable.addPrimop("id", D_D);	_symbolTable.addPrimop("namespace-uri", S_V);	// The following functions are implemented in the basis library	_symbolTable.addPrimop("count", I_D);	_symbolTable.addPrimop("sum", R_D);	_symbolTable.addPrimop("local-name", S_V);	_symbolTable.addPrimop("local-name", S_D);	_symbolTable.addPrimop("namespace-uri", S_V);	_symbolTable.addPrimop("namespace-uri", S_D);	_symbolTable.addPrimop("substring", S_SR);	_symbolTable.addPrimop("substring", S_SRR);	_symbolTable.addPrimop("substring-after", S_SS);	_symbolTable.addPrimop("substring-before", S_SS);	_symbolTable.addPrimop("normalize-space", S_V);	_symbolTable.addPrimop("normalize-space", S_S);	_symbolTable.addPrimop("function-available", B_S);	_symbolTable.addPrimop("system-property", S_S);	// Operators +, -, *, /, % defined on real types.	_symbolTable.addPrimop("+", R_RR);		_symbolTable.addPrimop("-", R_RR);		_symbolTable.addPrimop("*", R_RR);		_symbolTable.addPrimop("/", R_RR);		_symbolTable.addPrimop("%", R_RR);		// Operators +, -, * defined on integer types.	// Operators / and % are not  defined on integers (may cause exception)	_symbolTable.addPrimop("+", I_II);		_symbolTable.addPrimop("-", I_II);		_symbolTable.addPrimop("*", I_II);		 // Operators <, <= >, >= defined on real types.	_symbolTable.addPrimop("<",  B_RR);		_symbolTable.addPrimop("<=", B_RR);		_symbolTable.addPrimop(">",  B_RR);		_symbolTable.addPrimop(">=", B_RR);		// Operators <, <= >, >= defined on int types.	_symbolTable.addPrimop("<",  B_II);		_symbolTable.addPrimop("<=", B_II);		_symbolTable.addPrimop(">",  B_II);		_symbolTable.addPrimop(">=", B_II);		// Operators <, <= >, >= defined on boolean types.	_symbolTable.addPrimop("<",  B_BB);		_symbolTable.addPrimop("<=", B_BB);		_symbolTable.addPrimop(">",  B_BB);		_symbolTable.addPrimop(">=", B_BB);		// Operators 'and' and 'or'.	_symbolTable.addPrimop("or", B_BB);		_symbolTable.addPrimop("and", B_BB);		// Unary minus.	_symbolTable.addPrimop("u-", R_R);		_symbolTable.addPrimop("u-", I_I);	    }