NaifyView\Dialect\Naify\NaifyStructuralDirectiveParser クラス

NaifyStructuralDirectiveParser — Naify dialect の Naify Structural Directive Parser

Native template 構文の parser / evaluator / runtime contract を担当する。 Twig / Smarty 互換文化を混ぜず、Naify として持つ構文 surface をここで固定する。

使用例

// Naify dialect の parser / expression / runtime helper として使う。
// 通常は NaifyParser や compiler/executor から間接的に呼ばれる。

プロパティ

名前型説明
private $layoutContractGuard NaifyLayoutContractGuard
private $consumeToken Closure
private $currentToken Closure
private $parseNestedNodes Closure
private $parseLayoutScopedNodes Closure
private $readRequiredIdentifierAttribute Closure
private $parseMacroArguments Closure
private $normalizeExpressionSurface Closure
private $assertLayoutNameContract Closure
private $assertLayoutMode Closure
private $assertLayoutModePresence Closure
private $assertLayoutUseSource Closure
private $assertUniqueLayoutDefineSlotNames Closure
private $assertLayoutUseChildren Closure
private $assertUniqueLayoutUseSlotNames Closure
private $assertSlotPlacement Closure
private $mergeSpan Closure
private $buildParserException Closure

メソッド

メソッド説明
public __construct(NaifyLayoutContractGuard $layoutContractGuard, Closure $consumeToken, Closure $currentToken, Closure $parseNestedNodes, Closure $parseLayoutScopedNodes, Closure $readRequiredIdentifierAttribute, Closure $parseMacroArguments, Closure $normalizeExpressionSurface, Closure $assertLayoutNameContract, Closure $assertLayoutMode, Closure $assertLayoutModePresence, Closure $assertLayoutUseSource, Closure $assertUniqueLayoutDefineSlotNames, Closure $assertLayoutUseChildren, Closure $assertUniqueLayoutUseSlotNames, Closure $assertSlotPlacement, Closure $mergeSpan, Closure $buildParserException): void インスタンスを初期化する
public parseBlockNode(): BlockNode `parseBlockNode()` を実行する
public parseLayoutNode(): LayoutNode `parseLayoutNode()` を実行する
public parseSlotNode(): SlotNode `parseSlotNode()` を実行する
public parseMacroNode(): MacroNode `parseMacroNode()` を実行する
private consumeToken(): ?Token `consumeToken()` を実行する
private currentToken(): ?Token `currentToken()` を実行する
private parseNestedNodes(callable $shouldStop): array `parseNestedNodes()` を実行する
private parseLayoutScopedNodes(string $layoutMode, callable $shouldStop): array `parseLayoutScopedNodes()` を実行する
private readRequiredIdentifierAttribute(Token $token, string $attributeName, string $missingMessage, string $invalidMessagePrefix, string $missingCode, string $missingKey, string $invalidCode, string $invalidKey): string `readRequiredIdentifierAttribute()` を実行する
private parseMacroArguments(string $arguments, Token $token): array `parseMacroArguments()` を実行する
private normalizeExpressionSurface(string $expression, Token $token, string $label): string `normalizeExpressionSurface()` を実行する
private assertLayoutNameContract(?string $name, string $attributeName, Token $token): void `assertLayoutNameContract()` を実行する
private assertLayoutMode(?string $defineName, ?string $useName, Token $token): void `assertLayoutMode()` を実行する
private assertLayoutModePresence(?string $defineName, ?string $useName, Token $token): void `assertLayoutModePresence()` を実行する
private assertLayoutUseSource(?string $useName, ?string $source, Token $token): void `assertLayoutUseSource()` を実行する
private assertUniqueLayoutDefineSlotNames(?string $defineName, array $children): void `assertUniqueLayoutDefineSlotNames()` を実行する
private assertLayoutUseChildren(?string $useName, array $children): void `assertLayoutUseChildren()` を実行する
private assertUniqueLayoutUseSlotNames(?string $useName, array $children): void `assertUniqueLayoutUseSlotNames()` を実行する
private assertSlotPlacement(Token $token): void `assertSlotPlacement()` を実行する
private mergeSpan(Token $openToken, Token $closeToken): mixed `mergeSpan()` を実行する
private parserException(string $message, string $errorCode, string $messageKey, ?Token $token, array $payload = '...'): NaifyViewException `parserException()` を実行する