public var_type mod(var_type rhs) throws SyntaxError{
		var_type v = new var_type();
		keyword returnType = getPromotionForBinaryOp(v_type, rhs.v_type);
		if(isNumber() && rhs.isNumber()){
			if(returnType == keyword.DOUBLE || returnType == keyword.FLOAT){
				sntx_err("mod uses integral types only");
			}
			if(rhs.value.intValue()==0)
				run_err("divide by 0");
			else if(returnType == keyword.INT){
				v.v_type = keyword.INT;
				v.value = value.intValue()%rhs.value.intValue();
			}
		}
		v.lvalue = false;
		v.constant = constant && rhs.constant;
		return v;
	}