final class TemplateParser

Parses Latte template tokens into AST.

Properties

Block[][] $blocks
$blockLayer
$inHead
$strict
$dedent
$lastIndentation

Methods

__construct()

No description

parse(string $template)

Parses tokens to nodes.

parseFragment(Closure $resolver, Closure|null $after = null)

No description

Node|null
inTextResolve()

Resolves the next node in plain text context (text, indentation, Latte tag, or comment).

parseText()

Consumes a text token and returns a TextNode.

parseLatteComment()

Consumes a Latte comment and returns a NopNode.

Node|null
parseLatteStatement(Closure|null $resolver = null)

No description

array
consumeTag()

Consumes all PHP tokens of the current tag body and returns them.

addTags(array $parsers)

No description

void
ensureIsConsumed(Tag $tag)

Throws if the tag parser has not consumed all tokens.

void
checkBlockIsUnique(Block $block)

Validates that the block name is valid and not already declared, then registers it.

setPolicy(Policy|null $policy)

No description

setContentType(string $type)

No description

string
getContentType()

No description

getStream()

No description

getLexer()

No description

Tag|null
peekTag()

Returns the currently parsed tag, or null if no tag is being parsed.

Tag
pushTag(Tag $tag)

No description

void
popTag()

No description

int
generateId()

Generates a unique integer ID for use in compiled output.

bool
isTagAllowed(string $name)

No description

Details

at line 53
__construct()

No description

at line 65
TemplateNode parse(string $template)

Parses tokens to nodes.

Parameters

string $template

Return Value

TemplateNode

Exceptions

CompileException

at line 95
FragmentNode parseFragment(Closure $resolver, Closure|null $after = null)

No description

Parameters

Closure $resolver
Closure|null $after

Return Value

FragmentNode

at line 121
Node|null inTextResolve()

Resolves the next node in plain text context (text, indentation, Latte tag, or comment).

Return Value

Node|null

at line 138
TextNode parseText()

Consumes a text token and returns a TextNode.

Return Value

TextNode

at line 170
NopNode parseLatteComment()

Consumes a Latte comment and returns a NopNode.

Return Value

NopNode

at line 184
Node|null parseLatteStatement(Closure|null $resolver = null)

No description

Parameters

Closure|null $resolver

Return Value

Node|null

at line 322
array consumeTag()

Consumes all PHP tokens of the current tag body and returns them.

Return Value

array

at line 335
TemplateParser addTags(array $parsers)

No description

Parameters

array $parsers

Return Value

TemplateParser

at line 408
void ensureIsConsumed(Tag $tag)

Throws if the tag parser has not consumed all tokens.

Parameters

Tag $tag

Return Value

void

at line 420
void checkBlockIsUnique(Block $block)

Validates that the block name is valid and not already declared, then registers it.

Parameters

Block $block

Return Value

void

at line 437
TemplateParser setPolicy(Policy|null $policy)

No description

Parameters

Policy|null $policy

Return Value

TemplateParser

at line 444
TemplateParser setContentType(string $type)

No description

Parameters

string $type

Return Value

TemplateParser

at line 454
string getContentType()

No description

Return Value

string

at line 461
TokenStream getStream()

internal  
 

No description

Return Value

TokenStream

at line 467
TemplateLexer getLexer()

No description

Return Value

TemplateLexer

at line 476
Tag|null peekTag()

Returns the currently parsed tag, or null if no tag is being parsed.

Return Value

Tag|null

at line 482
Tag pushTag(Tag $tag)

No description

Parameters

Tag $tag

Return Value

Tag

at line 490
void popTag()

No description

Return Value

void

at line 499
int generateId()

Generates a unique integer ID for use in compiled output.

Return Value

int

at line 505
bool isTagAllowed(string $name)

No description

Parameters

string $name

Return Value

bool