function var_or_func() { global $type, $val, $next, $nextval; if (JS_DEBUG) { echo "_VAR\n"; } jsc::assert(JS_WORD, 0, "var_or_func"); #-- plain var $var = array(JS_VAR, $val); #-- array if ($next == JS_SQBRCKT1) { jsc::array_var($var); } #-- actual type if ($next == JS_BRACE1) { return jsc::function_call(); } elseif ($next == JS_ASSIGN) { jsc::get(); return jsc::assign($var); } elseif ($next == JS_OP_PFIX) { jsc::get(); return array(JS_ASSIGN, $var, array(JS_MATH, $var, $val[0], 1)); } else { return $var; } }