public function analyze()
{
$data = new Methods();
$args = $data->getInternalParameterType();
$typeConversion = array('string' => array('Magicconstant', 'Heredoc', 'String'), 'real' => 'Real', 'int' => 'Integer', 'numeric' => array('Real', 'Integer'), 'resource' => '', 'bool' => 'Boolean', 'array' => '', 'void' => 'Void', 'mixed' => '');
foreach ($args as $position => $types) {
foreach ($types as $type => $functions) {
if (strpos($type, ',') !== false) {
continue;
// No support for multiple type yet
}
if (!isset($typeConversion[$type]) || empty($typeConversion[$type])) {
continue;
}
$this->atomIs('Functioncall')->analyzerIs('Functions/IsExtFunction')->fullnspathIs($functions)->outIs('ARGUMENTS')->outIs('ARGUMENT')->is('rank', $position)->isLiteral()->atomIsNot($typeConversion[$type])->back('first');
$this->prepareQuery();
}
}
}