Zephir\Stubs\MethodDocBlock::parseLines PHP Method

parseLines() protected method

protected parseLines ( )
    protected function parseLines()
    {
        $lines = [];
        foreach ($this->lines as $line) {
            if (preg_match('#^@(param|return|var) +(.*)$#', $line, $matches) === 0) {
                $lines[] = $line;
            } else {
                list(, $docType, $tokens) = $matches;
                $tokens = preg_split('/\\s+/', $tokens, 3);
                $type = $tokens[0];
                if ($docType == 'var' && $this->shortcutName == 'set') {
                    $docType = 'param';
                    $name = array_keys($this->parameters);
                    $name = $name[0];
                } elseif ($docType == 'var' && $this->shortcutName == 'get') {
                    $docType = 'return';
                } else {
                    $name = isset($tokens[1]) ? '$' . $tokens[1] : '';
                }
                // TODO: there must be a better way
                if (strpos($type, 'Phalcon\\') === 0) {
                    $type = str_replace('Phalcon\\', '\\Phalcon\\', $type);
                }
                $description = isset($tokens[2]) ? $tokens[2] : '';
                switch ($docType) {
                    case 'param':
                        $this->parameters[$name] = array($type, $description);
                        break;
                    case 'return':
                        $this->return = array($type, $description);
                        break;
                }
            }
        }
        $this->lines = $lines;
    }