NaifyView\Dialect\Naify\NaifyStateDirectiveParser クラス
NaifyStateDirectiveParser — Naify dialect の Naify State Directive Parser
Native template 構文の parser / evaluator / runtime contract を担当する。 Twig / Smarty 互換文化を混ぜず、Naify として持つ構文 surface をここで固定する。
使用例
// Naify dialect の parser / expression / runtime helper として使う。
// 通常は NaifyParser や compiler/executor から間接的に呼ばれる。
プロパティ
| 名前 | 型 | 説明 |
|---|---|---|
private
$consumeToken
|
Closure |
|
private
$currentToken
|
Closure |
|
private
$consumeVoidDirectiveToken
|
Closure |
|
private
$consumeRawDirectiveClose
|
Closure |
|
private
$parseNestedNodes
|
Closure |
|
private
$getLoopDepth
|
Closure |
|
private
$normalizeExpressionSurface
|
Closure |
|
private
$mergeSpan
|
Closure |
|
private
$buildParserException
|
Closure |
メソッド
| メソッド | 説明 |
|---|---|
public
__construct(Closure $consumeToken, Closure $currentToken, Closure $consumeVoidDirectiveToken, Closure $consumeRawDirectiveClose, Closure $parseNestedNodes, Closure $getLoopDepth, Closure $normalizeExpressionSurface, Closure $mergeSpan, Closure $buildParserException): void
|
インスタンスを初期化する |
public
parseSetNode(): SetNode
|
`parseSetNode()` を実行する |
public
parseCaptureNode(): CaptureNode
|
`parseCaptureNode()` を実行する |
public
parseBreakNode(): BreakNode
|
`parseBreakNode()` を実行する |
public
parseContinueNode(): ContinueNode
|
`parseContinueNode()` を実行する |
public
parseCommentNode(): CommentNode
|
`parseCommentNode()` を実行する |
public
parseLiteralNode(): LiteralNode
|
`parseLiteralNode()` を実行する |
private
consumeToken(): ?Token
|
`consumeToken()` を実行する |
private
currentToken(): ?Token
|
`currentToken()` を実行する |
private
consumeVoidDirectiveToken(string $name): Token
|
`consumeVoidDirectiveToken()` を実行する |
private
consumeRawDirectiveClose(string $name, string $rawBody): Token
|
`consumeRawDirectiveClose()` を実行する |
private
parseNestedNodes(callable $shouldStop): array
|
`parseNestedNodes()` を実行する |
private
getLoopDepth(): int
|
`getLoopDepth()` の値を返す |
private
readScopeTargetAttribute(Token $token, string $attribute): ?string
|
Parse destinations independently of value expressions and preserve source diagnostics. |
private
normalizeExpressionSurface(string $expression, ?Token $token, string $label): string
|
`normalizeExpressionSurface()` を実行する |
private
mergeSpan(Token $openToken, Token $closeToken): mixed
|
`mergeSpan()` を実行する |
private
parserException(string $message, string $errorCode, string $messageKey, ?Token $token, array $payload = '...'): NaifyViewException
|
`parserException()` を実行する |