|null $lineNumber */ public function __construct(string $type, string $arguments = '', ?int $lineNumber = null) { parent::__construct($lineNumber); $this->type = $type; $this->arguments = $arguments; } /** * @return non-empty-string */ public function atRuleName() : string { return $this->type; } public function atRuleArgs() : string { return $this->arguments; } /** * @return non-empty-string */ public function render(OutputFormat $outputFormat) : string { $formatter = $outputFormat->getFormatter(); $result = $formatter->comments($this); $arguments = $this->arguments; if ($arguments !== '') { $arguments = ' ' . $arguments; } $result .= "@{$this->type}{$arguments}{$formatter->spaceBeforeOpeningBrace()}{"; $result .= $this->renderDeclarations($outputFormat); $result .= '}'; return $result; } /** * @return array|null> * * @internal */ public function getArrayRepresentation() : array { $arrayRepresentation = parent::getArrayRepresentation(); $arrayRepresentation['atRuleName'] = $this->type; $arrayRepresentation['arguments'] = $this->arguments; return $arrayRepresentation; } }