Exakat\Analyzer\Namespaces\UsedUse::analyze PHP Method

analyze() public method

public analyze ( )
    public function analyze()
    {
        // case of simple subuse in a new with alias :  use a\b; new b\c()
        $this->atomIs('Use')->hasNoClassTrait()->outIs('USE')->_as('result')->savePropertyAs('alias', 'used')->inIs('USE')->inIs('ELEMENT')->inIs(array('CODE', 'BLOCK'))->atomInside('New')->outIs('NEW')->samePropertyAs('code', 'used')->back('result');
        $this->prepareQuery();
        // case of simple use in Typehint
        $this->atomIs('Use')->hasNoClassTrait()->outIs('USE')->_as('result')->savePropertyAs('alias', 'used')->inIs('USE')->inIs('ELEMENT')->inIs(array('CODE', 'BLOCK'))->atomInside('Function')->outIs('ARGUMENTS')->outIs('ARGUMENT')->outIs('TYPEHINT')->samePropertyAs('code', 'used')->back('result');
        $this->prepareQuery();
        // case of alias use in extends or implements
        $this->atomIs('Use')->hasNoClassTrait()->outIs('USE')->_as('result')->savePropertyAs('alias', 'alias')->inIs('USE')->inIs('ELEMENT')->inIs(array('CODE', 'BLOCK'))->atomInside('Class')->outIs(array('EXTENDS', 'IMPLEMENTS'))->samePropertyAs('code', 'alias')->back('result');
        $this->prepareQuery();
        // case of simple use in a Static structure or instanceof
        $this->atomIs('Use')->hasNoClassTrait()->outIs('USE')->_as('result')->savePropertyAs('alias', 'used')->inIs('USE')->inIs('ELEMENT')->inIs(array('CODE', 'BLOCK'))->atomInside(array('Staticconstant', 'Staticproperty', 'Staticmethodcall', 'Instanceof'))->outIs('CLASS')->samePropertyAs('code', 'used')->back('result');
        $this->prepareQuery();
        // case of namespace use used in a class/trait
        $this->atomIs('Use')->hasNoClassTrait()->outIs('USE')->_as('result')->savePropertyAs('alias', 'used')->inIs('USE')->inIs('ELEMENT')->inIs(array('CODE', 'BLOCK'))->atomInside('Use')->hasClassTrait()->outIs('USE')->samePropertyAs('code', 'used')->back('result');
        $this->prepareQuery();
        // As nsname prefix
        $this->atomIs('Use')->hasNoClassTrait()->outIs('USE')->_as('result')->savePropertyAs('alias', 'used')->inIs('USE')->inIs('ELEMENT')->inIs(array('CODE', 'BLOCK'))->atomInside('Nsname')->hasNoIn(array('USE', 'NAME'))->outWithRank('SUBNAME', 0)->samePropertyAs('code', 'used')->back('result');
        $this->prepareQuery();
    }
UsedUse