完成世界书、骰子、apiconfig页面处理
This commit is contained in:
4
frontend/node_modules/@chevrotain/gast/lib/src/api.js
generated
vendored
Normal file
4
frontend/node_modules/@chevrotain/gast/lib/src/api.js
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
export { Rule, Terminal, NonTerminal, Option, Repetition, RepetitionMandatory, RepetitionMandatoryWithSeparator, RepetitionWithSeparator, Alternation, Alternative, serializeGrammar, serializeProduction, } from "./model.js";
|
||||
export { GAstVisitor } from "./visitor.js";
|
||||
export { getProductionDslName, isOptionalProd, isBranchingProd, isSequenceProd, } from "./helpers.js";
|
||||
//# sourceMappingURL=api.js.map
|
||||
79
frontend/node_modules/@chevrotain/gast/lib/src/helpers.js
generated
vendored
Normal file
79
frontend/node_modules/@chevrotain/gast/lib/src/helpers.js
generated
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
import { every, includes, some } from "lodash-es";
|
||||
import { AbstractProduction, Alternation, Alternative, NonTerminal, Option, Repetition, RepetitionMandatory, RepetitionMandatoryWithSeparator, RepetitionWithSeparator, Rule, Terminal, } from "./model.js";
|
||||
export function isSequenceProd(prod) {
|
||||
return (prod instanceof Alternative ||
|
||||
prod instanceof Option ||
|
||||
prod instanceof Repetition ||
|
||||
prod instanceof RepetitionMandatory ||
|
||||
prod instanceof RepetitionMandatoryWithSeparator ||
|
||||
prod instanceof RepetitionWithSeparator ||
|
||||
prod instanceof Terminal ||
|
||||
prod instanceof Rule);
|
||||
}
|
||||
export function isOptionalProd(prod, alreadyVisited = []) {
|
||||
const isDirectlyOptional = prod instanceof Option ||
|
||||
prod instanceof Repetition ||
|
||||
prod instanceof RepetitionWithSeparator;
|
||||
if (isDirectlyOptional) {
|
||||
return true;
|
||||
}
|
||||
// note that this can cause infinite loop if one optional empty TOP production has a cyclic dependency with another
|
||||
// empty optional top rule
|
||||
// may be indirectly optional ((A?B?C?) | (D?E?F?))
|
||||
if (prod instanceof Alternation) {
|
||||
// for OR its enough for just one of the alternatives to be optional
|
||||
return some(prod.definition, (subProd) => {
|
||||
return isOptionalProd(subProd, alreadyVisited);
|
||||
});
|
||||
}
|
||||
else if (prod instanceof NonTerminal && includes(alreadyVisited, prod)) {
|
||||
// avoiding stack overflow due to infinite recursion
|
||||
return false;
|
||||
}
|
||||
else if (prod instanceof AbstractProduction) {
|
||||
if (prod instanceof NonTerminal) {
|
||||
alreadyVisited.push(prod);
|
||||
}
|
||||
return every(prod.definition, (subProd) => {
|
||||
return isOptionalProd(subProd, alreadyVisited);
|
||||
});
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
export function isBranchingProd(prod) {
|
||||
return prod instanceof Alternation;
|
||||
}
|
||||
export function getProductionDslName(prod) {
|
||||
/* istanbul ignore else */
|
||||
if (prod instanceof NonTerminal) {
|
||||
return "SUBRULE";
|
||||
}
|
||||
else if (prod instanceof Option) {
|
||||
return "OPTION";
|
||||
}
|
||||
else if (prod instanceof Alternation) {
|
||||
return "OR";
|
||||
}
|
||||
else if (prod instanceof RepetitionMandatory) {
|
||||
return "AT_LEAST_ONE";
|
||||
}
|
||||
else if (prod instanceof RepetitionMandatoryWithSeparator) {
|
||||
return "AT_LEAST_ONE_SEP";
|
||||
}
|
||||
else if (prod instanceof RepetitionWithSeparator) {
|
||||
return "MANY_SEP";
|
||||
}
|
||||
else if (prod instanceof Repetition) {
|
||||
return "MANY";
|
||||
}
|
||||
else if (prod instanceof Terminal) {
|
||||
return "CONSUME";
|
||||
/* c8 ignore next 3 */
|
||||
}
|
||||
else {
|
||||
throw Error("non exhaustive match");
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=helpers.js.map
|
||||
1
frontend/node_modules/@chevrotain/gast/lib/src/helpers.js.map
generated
vendored
Normal file
1
frontend/node_modules/@chevrotain/gast/lib/src/helpers.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,WAAW,EACX,MAAM,EACN,UAAU,EACV,mBAAmB,EACnB,gCAAgC,EAChC,uBAAuB,EACvB,IAAI,EACJ,QAAQ,GACT,MAAM,YAAY,CAAC;AAGpB,MAAM,UAAU,cAAc,CAC5B,IAAiB;IAEjB,OAAO,CACL,IAAI,YAAY,WAAW;QAC3B,IAAI,YAAY,MAAM;QACtB,IAAI,YAAY,UAAU;QAC1B,IAAI,YAAY,mBAAmB;QACnC,IAAI,YAAY,gCAAgC;QAChD,IAAI,YAAY,uBAAuB;QACvC,IAAI,YAAY,QAAQ;QACxB,IAAI,YAAY,IAAI,CACrB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,IAAiB,EACjB,iBAAgC,EAAE;IAElC,MAAM,kBAAkB,GACtB,IAAI,YAAY,MAAM;QACtB,IAAI,YAAY,UAAU;QAC1B,IAAI,YAAY,uBAAuB,CAAC;IAC1C,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mHAAmH;IACnH,0BAA0B;IAC1B,mDAAmD;IACnD,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QAChC,oEAAoE;QACpE,OAAO,IAAI,CAAe,IAAK,CAAC,UAAU,EAAE,CAAC,OAAoB,EAAE,EAAE;YACnE,OAAO,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,IAAI,YAAY,WAAW,IAAI,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC;QACzE,oDAAoD;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;SAAM,IAAI,IAAI,YAAY,kBAAkB,EAAE,CAAC;QAC9C,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;YAChC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,KAAK,CACW,IAAK,CAAC,UAAU,EACrC,CAAC,OAAoB,EAAE,EAAE;YACvB,OAAO,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACjD,CAAC,CACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAiB;IAEjB,OAAO,IAAI,YAAY,WAAW,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAA+B;IAClE,0BAA0B;IAC1B,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QAChC,OAAO,SAAS,CAAC;IACnB,CAAC;SAAM,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;SAAM,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,IAAI,YAAY,mBAAmB,EAAE,CAAC;QAC/C,OAAO,cAAc,CAAC;IACxB,CAAC;SAAM,IAAI,IAAI,YAAY,gCAAgC,EAAE,CAAC;QAC5D,OAAO,kBAAkB,CAAC;IAC5B,CAAC;SAAM,IAAI,IAAI,YAAY,uBAAuB,EAAE,CAAC;QACnD,OAAO,UAAU,CAAC;IACpB,CAAC;SAAM,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;SAAM,IAAI,IAAI,YAAY,QAAQ,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC;QACjB,sBAAsB;IACxB,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;AACH,CAAC"}
|
||||
52
frontend/node_modules/@chevrotain/gast/lib/src/visitor.js
generated
vendored
Normal file
52
frontend/node_modules/@chevrotain/gast/lib/src/visitor.js
generated
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
import { Alternation, Alternative, NonTerminal, Option, Repetition, RepetitionMandatory, RepetitionMandatoryWithSeparator, RepetitionWithSeparator, Rule, Terminal, } from "./model.js";
|
||||
export class GAstVisitor {
|
||||
visit(node) {
|
||||
const nodeAny = node;
|
||||
switch (nodeAny.constructor) {
|
||||
case NonTerminal:
|
||||
return this.visitNonTerminal(nodeAny);
|
||||
case Alternative:
|
||||
return this.visitAlternative(nodeAny);
|
||||
case Option:
|
||||
return this.visitOption(nodeAny);
|
||||
case RepetitionMandatory:
|
||||
return this.visitRepetitionMandatory(nodeAny);
|
||||
case RepetitionMandatoryWithSeparator:
|
||||
return this.visitRepetitionMandatoryWithSeparator(nodeAny);
|
||||
case RepetitionWithSeparator:
|
||||
return this.visitRepetitionWithSeparator(nodeAny);
|
||||
case Repetition:
|
||||
return this.visitRepetition(nodeAny);
|
||||
case Alternation:
|
||||
return this.visitAlternation(nodeAny);
|
||||
case Terminal:
|
||||
return this.visitTerminal(nodeAny);
|
||||
case Rule:
|
||||
return this.visitRule(nodeAny);
|
||||
/* c8 ignore next 2 */
|
||||
default:
|
||||
throw Error("non exhaustive match");
|
||||
}
|
||||
}
|
||||
/* c8 ignore next */
|
||||
visitNonTerminal(node) { }
|
||||
/* c8 ignore next */
|
||||
visitAlternative(node) { }
|
||||
/* c8 ignore next */
|
||||
visitOption(node) { }
|
||||
/* c8 ignore next */
|
||||
visitRepetition(node) { }
|
||||
/* c8 ignore next */
|
||||
visitRepetitionMandatory(node) { }
|
||||
/* c8 ignore next 3 */
|
||||
visitRepetitionMandatoryWithSeparator(node) { }
|
||||
/* c8 ignore next */
|
||||
visitRepetitionWithSeparator(node) { }
|
||||
/* c8 ignore next */
|
||||
visitAlternation(node) { }
|
||||
/* c8 ignore next */
|
||||
visitTerminal(node) { }
|
||||
/* c8 ignore next */
|
||||
visitRule(node) { }
|
||||
}
|
||||
//# sourceMappingURL=visitor.js.map
|
||||
Reference in New Issue
Block a user