brogue
Version:
A Grammar based generative text library based on Tracery.
43 lines (42 loc) • 1.02 kB
TypeScript
import { RandomSeed } from 'random-seed';
import { Markov } from './markov';
interface ExpansionModifierCall {
name: string;
args: any[];
}
interface Expansion {
name: string;
isDecorator: boolean;
modifierCalls: ExpansionModifierCall[];
}
interface Lexeme {
originalString: string;
formatString: string;
expansions: Expansion[];
variables: Map<string, Variable> | undefined;
}
interface WeightedLexeme {
lexeme: Lexeme;
weight: number;
}
interface Variable {
name: string;
lexeme: Lexeme;
}
interface Rule {
name: string;
weightedLexemes: WeightedLexeme[];
totalWeight: number;
}
interface MarkovSymbol {
name: string;
markov: Markov;
}
interface Grammar {
random: RandomSeed;
rules: Map<string, Rule>;
variables: Map<string, Variable>;
modifiers: Map<string, Function>;
markovSymbols: Map<string, MarkovSymbol>;
}
export { Grammar, Rule, Variable, Expansion, ExpansionModifierCall, Lexeme, WeightedLexeme, MarkovSymbol, };