onelang
Version:
OneLang transpiler framework core
54 lines (53 loc) • 1.51 kB
TypeScript
import { ExprLangAst as ExprAst } from "../ExprLang/ExprLangAst";
export declare namespace TemplateAst {
interface Node {
}
interface BlockItem extends Node {
inline: boolean;
}
interface LineItem extends Node {
}
interface ItemContainer extends Node {
}
class Block implements ItemContainer {
kind: string;
lines: BlockItem[];
}
class Line implements BlockItem, ItemContainer {
kind: string;
inline: boolean;
indentLen: number;
items: LineItem[];
}
class TextNode implements LineItem {
value: string;
kind: string;
constructor(value: string);
}
class TemplateNode implements LineItem {
expr: ExprAst.Expression;
kind: string;
constructor(expr: ExprAst.Expression);
}
class ForNode implements BlockItem {
itemName: string;
arrayExpr: ExprAst.Expression;
inline: boolean;
separator: string;
kind: string;
body: ItemContainer;
else: ItemContainer;
constructor(itemName: string, arrayExpr: ExprAst.Expression, inline: boolean, separator?: string);
}
class IfItem {
condition: ExprAst.Expression;
body?: ItemContainer;
constructor(condition: ExprAst.Expression, body?: ItemContainer);
}
class IfNode implements LineItem, BlockItem {
kind: string;
items: IfItem[];
else: ItemContainer;
inline: boolean;
}
}