@glimmer/syntax
Version:
38 lines (37 loc) • 2.03 kB
TypeScript
import type { Nullable } from '@glimmer/interfaces';
import type { SourceOffset, SourceSpan } from '../source/span';
import type * as ASTv1 from '../v1/api';
import type * as HBS from '../v1/handlebars-ast';
import { Parser } from '../parser';
export interface PendingError {
mustache(span: SourceSpan): never;
eof(offset: SourceOffset): never;
}
export declare abstract class HandlebarsNodeVisitors extends Parser {
protected pendingError: Nullable<PendingError>;
abstract appendToCommentData(s: string): void;
abstract beginAttributeValue(quoted: boolean): void;
abstract finishAttributeValue(): void;
parse(program: HBS.UpstreamProgram, blockParams: string[]): ASTv1.Template;
Program(program: HBS.Program, blockParams?: ASTv1.VarHead[]): ASTv1.Block;
private parseProgram;
BlockStatement(block: HBS.UpstreamBlockStatement): ASTv1.BlockStatement | void;
MustacheStatement(rawMustache: HBS.MustacheStatement): ASTv1.MustacheStatement | void;
appendDynamicAttributeValuePart(part: ASTv1.MustacheStatement): void;
finalizeTextPart(): void;
startTextPart(): void;
ContentStatement(content: HBS.ContentStatement): void;
CommentStatement(rawComment: HBS.CommentStatement): Nullable<ASTv1.MustacheCommentStatement>;
PartialStatement(partial: HBS.PartialStatement): never;
PartialBlockStatement(partialBlock: HBS.PartialBlockStatement): never;
Decorator(decorator: HBS.Decorator): never;
DecoratorBlock(decoratorBlock: HBS.DecoratorBlock): never;
SubExpression(sexpr: HBS.SubExpression): ASTv1.SubExpression;
PathExpression(path: HBS.PathExpression): ASTv1.PathExpression;
Hash(hash: HBS.Hash): ASTv1.Hash;
StringLiteral(string: HBS.StringLiteral): ASTv1.StringLiteral;
BooleanLiteral(boolean: HBS.BooleanLiteral): ASTv1.BooleanLiteral;
NumberLiteral(number: HBS.NumberLiteral): ASTv1.NumberLiteral;
UndefinedLiteral(undef: HBS.UndefinedLiteral): ASTv1.UndefinedLiteral;
NullLiteral(nul: HBS.NullLiteral): ASTv1.NullLiteral;
}