public FuncExpr(int oc , Alist list){
a = 0;
opCode = oc;
argumentList = list;
isBoolean = false;
isString = false;
position = 0;
//isNodeSet = false;
isNumerical = false;
switch(opCode){
case FuncName.LAST: isNumerical = true;break;
case FuncName.POSITION: isNumerical = true;break;
case FuncName.COUNT: isNumerical = true;break;
case FuncName.LOCAL_NAME: isString = true; break;
case FuncName.NAMESPACE_URI: isString = true; break;
case FuncName.NAME: isString = true; break;
case FuncName.STRING: isString = true; break;
case FuncName.CONCAT: isString = true; break;
case FuncName.STARTS_WITH:isBoolean= true;break;
case FuncName.CONTAINS: isBoolean= true;break;
case FuncName.SUBSTRING_BEFORE: isString = true; break;
case FuncName.SUBSTRING_AFTER: isString = true; break;
case FuncName.SUBSTRING: isString = true; break;
case FuncName.STRING_LENGTH: isNumerical = true;break;
case FuncName.NORMALIZE_SPACE: isString = true; break;
case FuncName.TRANSLATE: isString = true;break;
case FuncName.BOOLEAN: isBoolean =true;break;
case FuncName.NOT: isBoolean =true;break;
case FuncName.TRUE: isBoolean = true;break;
case FuncName.FALSE: isBoolean = true;break;
case FuncName.LANG: isBoolean = true;break;
case FuncName.NUMBER:isNumerical = true;break;
case FuncName.SUM: isNumerical = true;break;
case FuncName.FLOOR: isNumerical = true;break;
case FuncName.CEILING: isNumerical = true;break;
case FuncName.ROUND:isNumerical = true;break;
case FuncName.ABS:isNumerical = true;break;
case FuncName.ROUND_HALF_TO_EVEN :
isNumerical = true;break;
case FuncName.ROUND_HALF_TO_ODD:
isNumerical = true;break;
case FuncName.CODE_POINTS_TO_STRING:
isString = true; break;
case FuncName.COMPARE:isBoolean= true;break;
case FuncName.UPPER_CASE:isString = true; break;
case FuncName.LOWER_CASE:isString = true; break;
case FuncName.ENDS_WITH:isBoolean= true;break;
case FuncName.QNAME:isString = true; break;
case FuncName.LOCAL_NAME_FROM_QNAME:
isString = true; break;
case FuncName.NAMESPACE_URI_FROM_QNAME:
isString = true; break;
case FuncName.NAMESPACE_URI_FOR_PREFIX:
isString = true; break;
case FuncName.RESOLVE_QNAME:isString = true; break;
case FuncName.IRI_TO_URI: isString = true; break;
case FuncName.ESCAPE_HTML_URI:isString = true; break;
default:isString = true; break;
}
}