': return $v1 > $v2; break; case '<': return $v1 < $v2; break; case '<>': return $v1 <> $v2; break; case '!=': return $v1 != $v2; break; case '<=': return $v1 <= $v2; break; case '>=': return $v1 >= $v2; break; case '*': return $v1 * $v2; break; case '/': return $v1 / $v2; break; case '%': return $v1 % $v2; break; case 'or': return $v1 or $v2; break; case '<<': return $v1 << $v2; break; case '>>': return $v1 >> $v2; break; default: return null; } } public static function single_compute($v, $glue = '+') { switch ($glue) { case '!': return ! $v; break; case '-': return - $v; break; case '~': return ~ $v; break; default: return null; break; } } public static function check_glue($glue = '=') { return in_array($glue, array('=', '<', '<=', '>', '>=', '!=', '+', '-', '|', '&', '<>')) ? $glue : '='; } } ?>