Source

						public function testFindingTokenPatterns() {
		$code = file_get_contents(Libraries::path('lithium\analysis\Parser'));

		$expected = array('tokenize', 'matchToken', '_prepareMatchParams', 'token');
		$results = array_values(array_unique(array_map(function($i) { return $i[0]; }, Parser::find(
			$code, 'static::_(*)', array('capture' => array('T_STRING'), 'return' => 'content')
		))));

		$this->assertEqual($expected, $results);

		$expected = array('lithium\util\Set', 'lithium\util\Collection');
		$results = array_map(
			function ($i) { return join('', $i); },
			$results = Parser::find($code, 'use *;', array(
				'return'      => 'content',
				'lineBreaks'  => true,
				'startOfLine' => true,
				'capture'     => array('T_STRING', 'T_NS_SEPARATOR')
			))
		);
		$this->assertEqual($expected, $results);

		$code = 'function test($options) { return function($foo) use ($options) {';
		$code .= ' ClassName::method($options); ' . "\n" . ' $foo->method($options); }; }';
		list($results) = Parser::find($code, '_::_(', array(
			'capture' => array('T_STRING'), 'return' => 'content'
		));
		$expected = array('ClassName', 'method');
		$this->assertEqual($expected, $results);
	}