static function assignment($stmt)
 {
     $stmt_part = static::cap($stmt);
     self::debug("assignment({$stmt_part})", self::DEBUG_LEVEL_CONFIGURATION);
     $res = parent::assignment($stmt);
     if (self::$debug_level < self::DEBUG_LEVEL_SCOPE_INSPECTION) {
         return $res;
     }
     $var_pattern = parent::name_pattern('variable');
     preg_match("/^{$var_pattern}/i", $stmt, $m);
     if ($m && in_array($m[0], array_keys(static::$watch_list)) && in_array($m[0], array_keys(static::$scope[count(static::$scope) - 1]['vars']))) {
         $v = static::$scope[count(static::$scope) - 1]['vars'][$m[0]];
         self::$watch_list[$m[0]] = $v;
         self::debug('WATCH: $' . $m[0] . '=' . self::cap($v));
     }
     return $res;
 }