コード例 #1
0
ファイル: ArrayType.php プロジェクト: tsufeki/phpcmplr
 public function compare(Type $other)
 {
     $cmp = parent::compare($other);
     if ($cmp !== 0) {
         return $cmp;
     }
     $cmp = $this->getValueType()->compare($other->getValueType());
     if ($cmp !== 0) {
         return $cmp;
     }
     return $this->getKeyType()->compare($other->getKeyType());
 }
コード例 #2
0
ファイル: AlternativesType.php プロジェクト: tsufeki/phpcmplr
 public function compare(Type $other)
 {
     $cmp = parent::compare($other);
     if ($cmp !== 0) {
         return $cmp;
     }
     for ($i = 0;; $i++) {
         if (count($this->alternatives) <= $i && count($other->alternatives) <= $i) {
             return 0;
         }
         if (count($this->alternatives) <= $i) {
             return -1;
         }
         if (count($other->alternatives) <= $i) {
             return 1;
         }
         $cmp = $this->alternatives[$i]->compare($other->alternatives[$i]);
         if ($cmp !== 0) {
             return $cmp;
         }
     }
 }
コード例 #3
0
ファイル: ObjectType.php プロジェクト: tsufeki/phpcmplr
 public function compare(Type $other)
 {
     $cmp = parent::compare($other);
     return $cmp !== 0 ? $cmp : strcasecmp($this->getClass(), $other->getClass());
 }