public function analyze()
{
// inside functions
$this->atomIs('Label')->outIs('LABEL')->savePropertyAs('code', 'name')->goToFunction()->raw('where( __.out("BLOCK").repeat( __.out()).emit( hasLabel("Goto") ).times(' . self::MAX_LOOPING . ').out("GOTO").filter{ it.get().value("code") == name}.count().is(eq(0)) )')->back('first');
$this->prepareQuery();
// inside namespaces are not processed here.
// in the global space
$this->atomIs('Label')->outIs('LABEL')->savePropertyAs('code', 'name')->hasNoFunction()->raw('where( g.V().hasLabel("Goto").out("GOTO").filter{ it.get().value("code") == name}
.where( repeat(__.in(' . $this->linksDown . '))
.until(hasLabel("File")).emit()
.hasLabel("Function").count().is(eq(0))
).count().is(eq(0)) )')->back('first');
$this->prepareQuery();
}