44 lines
775 B
TypeScript
44 lines
775 B
TypeScript
export const Placeholder = {
|
|
startToken: "#~",
|
|
endToken: "~#",
|
|
};
|
|
|
|
export interface Node {
|
|
id: string;
|
|
type: "root" | "expression" | "statement" | "block" | "comment" | "ignore";
|
|
content: string;
|
|
preNewLines: number;
|
|
originalText: string;
|
|
index: number;
|
|
length: number;
|
|
nodes: { [id: string]: Node };
|
|
}
|
|
|
|
export interface Expression extends Node {
|
|
type: "expression";
|
|
delimiter: Delimiter;
|
|
}
|
|
|
|
export type Delimiter = "" | "-" | "+";
|
|
|
|
export interface Statement extends Node {
|
|
type: "statement";
|
|
keyword: string;
|
|
delimiter: Delimiter;
|
|
}
|
|
|
|
export interface Block extends Node {
|
|
type: "block";
|
|
start: Statement;
|
|
end: Statement;
|
|
containsNewLines: boolean;
|
|
}
|
|
|
|
export const nonClosingStatements = [
|
|
"else",
|
|
"elif",
|
|
"include",
|
|
"import",
|
|
"from",
|
|
"extends",
|
|
];
|