예제 #1
0
 function expr(&$bc)
 {
     $o = "";
     if (is_array($bc)) {
         $type = $bc[0];
         switch ($type) {
             case JS_ASSIGN:
                 return jsa::assign($bc);
             case JS_MATH:
                 return jsa::math($bc);
             case JS_CMP:
                 return jsa::cmp($bc);
             case JS_STR:
                 return 'jsrt::ref(' . jsa::expr($bc[1]) . ')';
             case JS_VALUE:
                 return 'jsrt::ref(' . jsa::expr($bc[1]) . ')';
             case JS_VAR:
                 return jsa::variable($bc);
             case JS_FCALL:
                 return jsa::fcall($bc);
             default:
                 jsa::err("expression fault <<" . substr(serialize($bc), 0, 128) . ">>");
         }
     } else {
         return $bc;
         // must be literal value
     }
 }