refine blocks detection

This commit is contained in:
2026-08-17 18:22:58 +02:00
parent d963472729
commit c3d5d3541b
3 changed files with 133 additions and 153 deletions
+9
View File
@@ -233,6 +233,9 @@ export class EftlParser {
case TokenType.VALUE_OF:
case TokenType.SIZE_OF:
case TokenType.HEADER:
if (!token.value.endsWith('/]')) {
this.pushBlock(token);
}
this.advance();
break;
@@ -249,6 +252,9 @@ export class EftlParser {
}
private pushBlock(token: Token): void {
if (token.value.endsWith('/]')) {
return; // It's self-closing, don't push to stack
}
this.blockStack.push({ type: token.type, token });
}
@@ -295,6 +301,9 @@ export class EftlParser {
[TokenType.TRIM_OPEN]: '[/TRIM]',
[TokenType.CONTAINS_OPEN]: '[/CONTAINS]',
[TokenType.FORMAT_OPEN]: '[/FORMAT]',
[TokenType.VALUE_OF]: '[/VALUE_OF]',
[TokenType.SIZE_OF]: '[/SIZE_OF]',
[TokenType.HEADER]: '[/HEADER]',
[TokenType.EXPR_OPEN]: '%]',
[TokenType.EXPR_OUTPUT_OPEN]: '%]',
[TokenType.COMMENT_OPEN]: '--]'