public function analyze()
{
// Commutative operation
$this->atomIs('Assignation')->outIs('LEFT')->savePropertyAs('fullcode', 'receiver')->inIs('LEFT')->outIs('RIGHT')->codeIs(array('+', '*'))->outIs(array('LEFT', 'RIGHT'))->samePropertyAs('fullcode', 'receiver')->back('first');
$this->prepareQuery();
// Non-Commutative operation
$this->atomIs('Assignation')->outIs('LEFT')->savePropertyAs('fullcode', 'receiver')->inIs('LEFT')->outIs('RIGHT')->codeIs(array('-', '/', '%', '<<=', '>>=', '**', '&', '^', '|'))->outIs('LEFT')->samePropertyAs('fullcode', 'receiver')->back('first');
$this->prepareQuery();
// Special case for .
$this->atomIs('Assignation')->outIs('LEFT')->savePropertyAs('fullcode', 'receiver')->inIs('LEFT')->outIs('RIGHT')->atomIs('Concatenation')->outWithRank('CONCAT', 0)->samePropertyAs('fullcode', 'receiver')->back('first');
$this->prepareQuery();
}