brogue
Version:
A Grammar based generative text library based on Tracery.
34 lines (33 loc) • 1.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Brogue = void 0;
const expand_1 = require("./expand");
const parse_1 = require("./parse");
class Brogue {
loadGrammar(grammarFileName) {
this.grammar = parse_1.parseGrammarFile(grammarFileName);
parse_1.postParseGrammar(this.grammar);
}
parseGrammar(grammar) {
if (typeof grammar === 'string') {
this.grammar = parse_1.parseGrammarString(grammar);
}
else {
this.grammar = parse_1.parseGrammarObject(grammar);
}
parse_1.postParseGrammar(this.grammar);
}
registerModifier(name, modifier) {
if (!this.grammar) {
throw new Error('No grammar loaded.');
}
this.grammar.modifiers.set(name, modifier);
}
expand(text) {
if (!this.grammar) {
throw new Error('No grammar loaded.');
}
return expand_1.expand(this.grammar, text);
}
}
exports.Brogue = Brogue;