Refactor parser for some added flexibility.

This commit is contained in:
2021-05-17 19:59:21 -07:00
parent 09e10e94b5
commit 03eddfcd74
9 changed files with 279 additions and 61 deletions

34
terms/Term.ts Normal file
View File

@ -0,0 +1,34 @@
import Player from "../Player.ts";
import Scene from "../Scene.ts";
export type ActionFn = (
player: Player,
scene: Scene,
target?: string,
object?: string
) => string;
export interface Constant {
constant: string;
category: Category;
}
export type Category =
| "action"
| "direction"
| "compound"
| "position"
| "interaction";
export interface Term {
precedesCategories: Category[];
precedesConstants: Constant[];
category: Category;
constant: string;
canPrecedeVariable: boolean;
}
export interface Action extends Term {
action: ActionFn;
category: "action";
}