First upload version 0.0.1
This commit is contained in:
34
node_modules/node-llama-cpp/dist/utils/gbnfJson/terminals/GbnfRef.js
generated
vendored
Normal file
34
node_modules/node-llama-cpp/dist/utils/gbnfJson/terminals/GbnfRef.js
generated
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
import { GbnfTerminal } from "../GbnfTerminal.js";
|
||||
export class GbnfRef extends GbnfTerminal {
|
||||
getValueTerminal;
|
||||
defName;
|
||||
def;
|
||||
constructor({ getValueTerminal, defName, def }) {
|
||||
super();
|
||||
this.getValueTerminal = getValueTerminal;
|
||||
this.defName = defName;
|
||||
this.def = def;
|
||||
}
|
||||
getGrammar(grammarGenerator) {
|
||||
return this.generateRuleName(grammarGenerator);
|
||||
}
|
||||
generateRuleName(grammarGenerator) {
|
||||
if (!grammarGenerator.defRuleNames.has([this.defName, this.def])) {
|
||||
const alreadyGeneratingGrammarForThisRef = grammarGenerator.defRuleNames.get([this.defName, this.def]) === null;
|
||||
if (alreadyGeneratingGrammarForThisRef)
|
||||
return grammarGenerator.generateRuleNameForDef(this.defName, this.def);
|
||||
grammarGenerator.defRuleNames.set([this.defName, this.def], null);
|
||||
const grammar = this.getValueTerminal().resolve(grammarGenerator);
|
||||
if (grammarGenerator.rules.has(grammar) && grammarGenerator.defRuleNames.get([this.defName, this.def]) === null) {
|
||||
grammarGenerator.defRuleNames.set([this.defName, this.def], grammar);
|
||||
return grammar;
|
||||
}
|
||||
const ruleName = grammarGenerator.generateRuleNameForDef(this.defName, this.def);
|
||||
grammarGenerator.rules.set(ruleName, grammar);
|
||||
grammarGenerator.ruleContentToRuleName.set(grammar, ruleName);
|
||||
return ruleName;
|
||||
}
|
||||
return grammarGenerator.generateRuleNameForDef(this.defName, this.def);
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=GbnfRef.js.map
|
||||
Reference in New Issue
Block a user