public function analyze()
{
// $a == 2 ? doThis() : doThis();
$this->atomIs('Ternary')->outIs('THEN')->savePropertyAs('fullcode', 'cdt')->inIs('THEN')->outIs('ELSE')->samePropertyAs('fullcode', 'cdt', true)->back('first');
$this->prepareQuery();
// $a == 2 ?: doThis();
$this->atomIs('Ternary')->raw('where( __.out("THEN").hasLabel("Void").count().is(eq(1)) )')->outIs('CONDITION')->atomIs(self::$CONTAINERS)->savePropertyAs('fullcode', 'cdt')->inIs('CONDITION')->outIs('ELSE')->atomIs(self::$CONTAINERS)->samePropertyAs('fullcode', 'cdt', true)->back('first');
$this->prepareQuery();
// if ($a == 2) Then doThis(); else doThis();
$this->atomIs('Ifthen')->outIs('THEN')->atomIs('Sequence')->raw('sideEffect{ sthen = []; it.get().vertices(OUT, "ELEMENT").sort{it.value("rank")}.each{ sthen.add(it.value("fullcode"));} }')->inIs('THEN')->outIs('ELSE')->atomIs('Sequence')->raw('sideEffect{ selse = []; it.get().vertices(OUT, "ELEMENT").sort{it.value("rank")}.each{ selse.add(it.value("fullcode"));} }')->filter('sthen.join(";") == selse.join(";")')->back('first');
$this->prepareQuery();
}