public function process(\PHP_CodeSniffer_File $phpcsFile, $comparisonTokenPointer)
{
$tokens = $phpcsFile->getTokens();
$leftSideTokens = $this->getLeftSideTokens($phpcsFile, $tokens, $comparisonTokenPointer);
$rightSideTokens = $this->getRightSideTokens($phpcsFile, $tokens, $comparisonTokenPointer);
$leftDynamism = $this->getDynamismForTokens($leftSideTokens);
$rightDynamism = $this->getDynamismForTokens($rightSideTokens);
if ($leftDynamism !== null) {
if ($rightDynamism === null || $leftDynamism < $rightDynamism) {
$fix = $phpcsFile->addFixableError('Yoda comparisons are prohibited.', $comparisonTokenPointer, self::CODE_YODA_COMPARISON);
if ($fix) {
if (count($leftSideTokens) > 0 & count($rightSideTokens) > 0) {
$phpcsFile->fixer->beginChangeset();
$this->write($phpcsFile, $leftSideTokens, $rightSideTokens);
$this->write($phpcsFile, $rightSideTokens, $leftSideTokens);
$phpcsFile->fixer->endChangeset();
}
}
}
}
}