‪TYPO3CMS  ‪main
TYPO3\CMS\Core\TypoScript\AST\AbstractAstBuilder Class Reference
Inheritance diagram for TYPO3\CMS\Core\TypoScript\AST\AbstractAstBuilder:
TYPO3\CMS\Core\TypoScript\AST\AstBuilder TYPO3\CMS\Core\TypoScript\AST\CommentAwareAstBuilder

Protected Member Functions

 handleIdentifierUnsetLine (IdentifierUnsetLine $line, CurrentObjectPath $currentObjectPath)
 
 handleIdentifierCopyLine (IdentifierCopyLine $line, RootNode $rootNode, CurrentObjectPath $currentObjectPath)
 
 handleIdentifierReferenceLine (IdentifierReferenceLine $line, CurrentObjectPath $currentObjectPath)
 
 getOrAddNodeFromIdentifierStream (CurrentObjectPath $currentObjectPath, IdentifierTokenStream $tokenStream)
 
 evaluateValueModifier (Token $functionNameToken, ?Token $functionArgumentToken, ?string $originalValue)
 

Protected Attributes

array $flatConstants = []
 
EventDispatcherInterface $eventDispatcher
 

Detailed Description

Common methods of both AST builders.

: Internal AST structure.

Definition at line 40 of file AbstractAstBuilder.php.

Member Function Documentation

◆ evaluateValueModifier()

TYPO3\CMS\Core\TypoScript\AST\AbstractAstBuilder::evaluateValueModifier ( Token  $functionNameToken,
?Token  $functionArgumentToken,
?string  $originalValue 
)
protected

◆ getOrAddNodeFromIdentifierStream()

◆ handleIdentifierCopyLine()

◆ handleIdentifierReferenceLine()

TYPO3\CMS\Core\TypoScript\AST\AbstractAstBuilder::handleIdentifierReferenceLine ( IdentifierReferenceLine  $line,
CurrentObjectPath  $currentObjectPath 
)
protected

"foo =< bar": Prepare a reference resolving. Note this does not resolve "=<" itself at this point since this operator can only be evaluated after the full AST has been established. Also, having a full AST-traverser run that does this is very expensive and "=<" is only done for "tt_content.myElement" and "lib.parseFunc" anyways. As such, "=<" is NOT a language construct itself and the AST-parser only marks nodes that use it by using the special node "ObjectReference". Resolving then happens "lazy" and "on demand" in ContentObjectRenderer cObjGetSingle() and mergeTSRef() for frontend "setup" TypoScript.

Definition at line 150 of file AbstractAstBuilder.php.

References TYPO3\CMS\Core\TypoScript\AST\CurrentObjectPath\CurrentObjectPath\getFirst(), TYPO3\CMS\Core\TypoScript\Tokenizer\Line\IdentifierReferenceLine\getIdentifierTokenStream(), and TYPO3\CMS\Core\TypoScript\Tokenizer\Line\IdentifierReferenceLine\getValueTokenStream().

Referenced by TYPO3\CMS\Core\TypoScript\AST\AstBuilder\build(), and TYPO3\CMS\Core\TypoScript\AST\CommentAwareAstBuilder\build().

◆ handleIdentifierUnsetLine()

Member Data Documentation

◆ $eventDispatcher

EventDispatcherInterface TYPO3\CMS\Core\TypoScript\AST\AbstractAstBuilder::$eventDispatcher
protected

◆ $flatConstants

array TYPO3\CMS\Core\TypoScript\AST\AbstractAstBuilder::$flatConstants = []
protected