Exakat\Analyzer\Structures\pregOptionE::analyze PHP Method

analyze() public method

public analyze ( )
    public function analyze()
    {
        $functions = array('\\preg_replace', '\\mb_eregi');
        // delimiters
        $delimiters = '=~/|`%#\\$\\*!,@\\\\{\\\\(\\\\[';
        $makeDelimiters = ' sideEffect{ 
    if (delimiter == "{") { delimiter = "\\\\{"; delimiterFinal = "\\\\}"; } 
    else if (delimiter == "(") { delimiter = "\\\\("; delimiterFinal = "\\\\)"; } 
    else if (delimiter == "[") { delimiter = "\\\\["; delimiterFinal = "\\\\]"; } 
    else if (delimiter == "*") { delimiter = "\\\\*"; delimiterFinal = "\\\\*"; } 
    else { delimiterFinal = delimiter; } 
}';
        // preg_match with a string
        $this->atomFunctionIs($functions)->outIs('ARGUMENTS')->outWithRank('ARGUMENT', 0)->tokenIs('T_CONSTANT_ENCAPSED_STRING')->raw(' sideEffect{ delimiter = it.get().value("noDelimiter")[0]; }')->raw($makeDelimiters)->regexIs('noDelimiter', '^(" + delimiter + ").*(" + delimiterFinal + ")(.*e.*)\\$')->back('first');
        $this->prepareQuery();
        // With an interpolated string "a $x b"
        $this->atomFunctionIs($functions)->outIs('ARGUMENTS')->outWithRank('ARGUMENT', 0)->atomIs('String')->outWithRank('CONCAT', 0)->raw('sideEffect{delimiter = it.get().value("noDelimiter")[0]; }')->inIs('CONCAT')->raw($makeDelimiters)->regexIs('fullcode', '^.(" + delimiter + ").*(" + delimiterFinal + ")(.*e.*).\\$')->back('first');
        $this->prepareQuery();
        // with a concatenation
        $this->atomFunctionIs($functions)->outIs('ARGUMENTS')->outWithRank('ARGUMENT', 0)->atomIs('Concatenation')->outWithRank('CONCAT', 0)->raw('sideEffect{delimiter = it.get().value("noDelimiter")[0]; }')->inIs('CONCAT')->raw($makeDelimiters)->regexIs('fullcode', '^.(" + delimiter + ").*(" + delimiterFinal + ")(.*e.*).\\$')->back('first');
        $this->prepareQuery();
        // Actual letters used for Options in PHP imsxeuADSUXJ (others may yield an error) case is important
    }
pregOptionE