NaifyViewExtension\Dialect\Smarty\SmartyIrBuilder クラス
Smarty first-slice source を Core IR へ直接落とす builder。
まだ full Smarty parser ではなく、代表的な control / interpolation を Native source 文字列へ組み直さず IR document として積むための速い経路。 未対応 surface は null を返し、既存 converter + NativeIrBridge へ fallback する。
プロパティ
| 名前 | 型 | 説明 |
|---|---|---|
private
$localNames
|
array |
|
private
$span
|
SourceSpan |
|
private
$foreachSpecParser
|
SmartyForeachSpecParser |
メソッド
| メソッド | 説明 |
|---|---|
public
__construct(?SmartyForeachSpecParser $foreachSpecParser):
|
|
public
build(string $source, array $additionalLocalNames = '...'): ?IrStructuredNode
|
|
private
appendNode(array $stack, IrStructuredNode $node): void
|
|
private
switchIfBranch(array $stack, string $branchType, ?string $condition): bool
|
|
private
closeIf(array $stack): bool
|
|
private
closeFrame(array $stack, string $kind): bool
|
|
private
parseForeachSpec(string $source): ?array
|
|
private
parseIncludeSpec(string $source): ?array
|
|
private
readAttributes(string $source): array
|
|
private
readAttributeTokens(string $source): array
|
|
private
readPositionalToken(string $source): string
|
|
private
convertFilteredExpression(string $expression): string
|
|
private
convertExpression(string $expression): string
|
|
private
convertSmartyValueToken(string $token): string
|
|
private
isDynamicIncludeToken(string $token): bool
|
|
private
normalizeName(string $value, string $fallback): string
|
|
private
node(string $type, array $payload = '...', array $children = '...'): IrStructuredNode
|