protected function parseFusionLine($fusionLine)
    {
        $fusionLine = trim($fusionLine);

        if ($this->currentBlockCommentState === true) {
            $this->parseComment($fusionLine);
        } else {
            if ($fusionLine === '') {
                return;
            } elseif (preg_match(self::SCAN_PATTERN_COMMENT, $fusionLine)) {
                $this->parseComment($fusionLine);
            } elseif (preg_match(self::SCAN_PATTERN_OPENINGCONFINEMENT, $fusionLine)) {
                $this->parseConfinementBlock($fusionLine, true);
            } elseif (preg_match(self::SCAN_PATTERN_CLOSINGCONFINEMENT, $fusionLine)) {
                $this->parseConfinementBlock($fusionLine, false);
            } elseif (preg_match(self::SCAN_PATTERN_DECLARATION, $fusionLine)) {
                $this->parseDeclaration($fusionLine);
            } elseif (preg_match(self::SCAN_PATTERN_OBJECTDEFINITION, $fusionLine)) {
                $this->parseObjectDefinition($fusionLine);
            } else {
                throw new Fusion\Exception('Syntax error in line ' . $this->currentLineNumber . '. (' . $fusionLine . ')', 1180547966);
            }
        }
    }