@chevrotain/gast
Advanced tools
@@ -1,2 +0,1 @@ | ||
| import { every, includes, some } from "lodash-es"; | ||
| import { AbstractProduction, Alternation, Alternative, NonTerminal, Option, Repetition, RepetitionMandatory, RepetitionMandatoryWithSeparator, RepetitionWithSeparator, Rule, Terminal, } from "./model.js"; | ||
@@ -25,7 +24,7 @@ export function isSequenceProd(prod) { | ||
| // for OR its enough for just one of the alternatives to be optional | ||
| return some(prod.definition, (subProd) => { | ||
| return prod.definition.some((subProd) => { | ||
| return isOptionalProd(subProd, alreadyVisited); | ||
| }); | ||
| } | ||
| else if (prod instanceof NonTerminal && includes(alreadyVisited, prod)) { | ||
| else if (prod instanceof NonTerminal && alreadyVisited.includes(prod)) { | ||
| // avoiding stack overflow due to infinite recursion | ||
@@ -38,3 +37,3 @@ return false; | ||
| } | ||
| return every(prod.definition, (subProd) => { | ||
| return prod.definition.every((subProd) => { | ||
| return isOptionalProd(subProd, alreadyVisited); | ||
@@ -41,0 +40,0 @@ }); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAAA,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,OAAqB,IAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAoB,EAAE,EAAE;YAClE,OAAO,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,IAAI,YAAY,WAAW,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxE,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,OAA4B,IAAK,CAAC,UAAU,CAAC,KAAK,CAChD,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"} |
+21
-20
@@ -1,2 +0,1 @@ | ||
| import { assign, forEach, isRegExp, isString, map, pickBy } from "lodash-es"; | ||
| // TODO: duplicated code to avoid extracting another sub-package -- how to avoid? | ||
@@ -13,3 +12,3 @@ function tokenLabel(tokType) { | ||
| function hasTokenLabel(obj) { | ||
| return isString(obj.LABEL) && obj.LABEL !== ""; | ||
| return typeof obj.LABEL === "string" && obj.LABEL !== ""; | ||
| } | ||
@@ -28,3 +27,3 @@ export class AbstractProduction { | ||
| visitor.visit(this); | ||
| forEach(this.definition, (prod) => { | ||
| this.definition.forEach((prod) => { | ||
| prod.accept(visitor); | ||
@@ -38,3 +37,3 @@ }); | ||
| this.idx = 1; | ||
| assign(this, pickBy(options, (v) => v !== undefined)); | ||
| Object.assign(this, pickOnlyDefined(options)); | ||
| } | ||
@@ -59,3 +58,3 @@ set definition(definition) { | ||
| this.orgText = ""; | ||
| assign(this, pickBy(options, (v) => v !== undefined)); | ||
| Object.assign(this, pickOnlyDefined(options)); | ||
| } | ||
@@ -67,3 +66,3 @@ } | ||
| this.ignoreAmbiguities = false; | ||
| assign(this, pickBy(options, (v) => v !== undefined)); | ||
| Object.assign(this, pickOnlyDefined(options)); | ||
| } | ||
@@ -75,3 +74,3 @@ } | ||
| this.idx = 1; | ||
| assign(this, pickBy(options, (v) => v !== undefined)); | ||
| Object.assign(this, pickOnlyDefined(options)); | ||
| } | ||
@@ -83,3 +82,3 @@ } | ||
| this.idx = 1; | ||
| assign(this, pickBy(options, (v) => v !== undefined)); | ||
| Object.assign(this, pickOnlyDefined(options)); | ||
| } | ||
@@ -91,3 +90,3 @@ } | ||
| this.idx = 1; | ||
| assign(this, pickBy(options, (v) => v !== undefined)); | ||
| Object.assign(this, pickOnlyDefined(options)); | ||
| } | ||
@@ -99,3 +98,3 @@ } | ||
| this.idx = 1; | ||
| assign(this, pickBy(options, (v) => v !== undefined)); | ||
| Object.assign(this, pickOnlyDefined(options)); | ||
| } | ||
@@ -107,3 +106,3 @@ } | ||
| this.idx = 1; | ||
| assign(this, pickBy(options, (v) => v !== undefined)); | ||
| Object.assign(this, pickOnlyDefined(options)); | ||
| } | ||
@@ -123,3 +122,3 @@ } | ||
| this.hasPredicates = false; | ||
| assign(this, pickBy(options, (v) => v !== undefined)); | ||
| Object.assign(this, pickOnlyDefined(options)); | ||
| } | ||
@@ -130,3 +129,3 @@ } | ||
| this.idx = 1; | ||
| assign(this, pickBy(options, (v) => v !== undefined)); | ||
| Object.assign(this, pickOnlyDefined(options)); | ||
| } | ||
@@ -138,7 +137,7 @@ accept(visitor) { | ||
| export function serializeGrammar(topRules) { | ||
| return map(topRules, serializeProduction); | ||
| return topRules.map(serializeProduction); | ||
| } | ||
| export function serializeProduction(node) { | ||
| function convertDefinition(definition) { | ||
| return map(definition, serializeProduction); | ||
| return definition.map(serializeProduction); | ||
| } | ||
@@ -152,3 +151,3 @@ /* istanbul ignore else */ | ||
| }; | ||
| if (isString(node.label)) { | ||
| if (typeof node.label === "string") { | ||
| serializedNonTerminal.label = node.label; | ||
@@ -215,3 +214,3 @@ } | ||
| }; | ||
| if (isString(node.label)) { | ||
| if (typeof node.label === "string") { | ||
| serializedTerminal.terminalLabel = node.label; | ||
@@ -221,5 +220,4 @@ } | ||
| if (node.terminalType.PATTERN) { | ||
| serializedTerminal.pattern = isRegExp(pattern) | ||
| ? pattern.source | ||
| : pattern; | ||
| serializedTerminal.pattern = | ||
| pattern instanceof RegExp ? pattern.source : pattern; | ||
| } | ||
@@ -241,2 +239,5 @@ return serializedTerminal; | ||
| } | ||
| function pickOnlyDefined(obj) { | ||
| return Object.fromEntries(Object.entries(obj).filter(([, v]) => v !== undefined)); | ||
| } | ||
| //# sourceMappingURL=model.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"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"} |
+3
-7
| { | ||
| "name": "@chevrotain/gast", | ||
| "version": "11.2.0", | ||
| "version": "12.0.0", | ||
| "description": "Grammar AST structure for Chevrotain Parsers", | ||
@@ -42,12 +42,8 @@ "keywords": [], | ||
| "dependencies": { | ||
| "@chevrotain/types": "11.2.0", | ||
| "lodash-es": "4.17.23" | ||
| "@chevrotain/types": "12.0.0" | ||
| }, | ||
| "devDependencies": { | ||
| "@types/lodash-es": "4.17.12" | ||
| }, | ||
| "publishConfig": { | ||
| "access": "public" | ||
| }, | ||
| "gitHead": "462f1bc1189c4b5090f4c995a1577d03fb639f41" | ||
| "gitHead": "d3b4d05d5dd53d53d27175119bc7c9ed8056e3d5" | ||
| } |
+3
-5
@@ -1,2 +0,1 @@ | ||
| import { every, includes, some } from "lodash-es"; | ||
| import { | ||
@@ -49,6 +48,6 @@ AbstractProduction, | ||
| // for OR its enough for just one of the alternatives to be optional | ||
| return some((<Alternation>prod).definition, (subProd: IProduction) => { | ||
| return (<Alternation>prod).definition.some((subProd: IProduction) => { | ||
| return isOptionalProd(subProd, alreadyVisited); | ||
| }); | ||
| } else if (prod instanceof NonTerminal && includes(alreadyVisited, prod)) { | ||
| } else if (prod instanceof NonTerminal && alreadyVisited.includes(prod)) { | ||
| // avoiding stack overflow due to infinite recursion | ||
@@ -60,4 +59,3 @@ return false; | ||
| } | ||
| return every( | ||
| (<AbstractProduction>prod).definition, | ||
| return (<AbstractProduction>prod).definition.every( | ||
| (subProd: IProduction) => { | ||
@@ -64,0 +62,0 @@ return isOptionalProd(subProd, alreadyVisited); |
+24
-50
@@ -1,2 +0,1 @@ | ||
| import { assign, forEach, isRegExp, isString, map, pickBy } from "lodash-es"; | ||
| import type { | ||
@@ -23,3 +22,3 @@ IGASTVisitor, | ||
| ): obj is TokenType & Pick<Required<TokenType>, "LABEL"> { | ||
| return isString(obj.LABEL) && obj.LABEL !== ""; | ||
| return typeof obj.LABEL === "string" && obj.LABEL !== ""; | ||
| } | ||
@@ -41,3 +40,3 @@ | ||
| visitor.visit(this); | ||
| forEach(this.definition, (prod) => { | ||
| this.definition.forEach((prod) => { | ||
| prod.accept(visitor); | ||
@@ -64,6 +63,3 @@ }); | ||
| super([]); | ||
| assign( | ||
| this, | ||
| pickBy(options, (v) => v !== undefined), | ||
| ); | ||
| Object.assign(this, pickOnlyDefined(options)); | ||
| } | ||
@@ -98,6 +94,3 @@ | ||
| super(options.definition); | ||
| assign( | ||
| this, | ||
| pickBy(options, (v) => v !== undefined), | ||
| ); | ||
| Object.assign(this, pickOnlyDefined(options)); | ||
| } | ||
@@ -114,6 +107,3 @@ } | ||
| super(options.definition); | ||
| assign( | ||
| this, | ||
| pickBy(options, (v) => v !== undefined), | ||
| ); | ||
| Object.assign(this, pickOnlyDefined(options)); | ||
| } | ||
@@ -135,6 +125,3 @@ } | ||
| super(options.definition); | ||
| assign( | ||
| this, | ||
| pickBy(options, (v) => v !== undefined), | ||
| ); | ||
| Object.assign(this, pickOnlyDefined(options)); | ||
| } | ||
@@ -156,6 +143,3 @@ } | ||
| super(options.definition); | ||
| assign( | ||
| this, | ||
| pickBy(options, (v) => v !== undefined), | ||
| ); | ||
| Object.assign(this, pickOnlyDefined(options)); | ||
| } | ||
@@ -178,6 +162,3 @@ } | ||
| super(options.definition); | ||
| assign( | ||
| this, | ||
| pickBy(options, (v) => v !== undefined), | ||
| ); | ||
| Object.assign(this, pickOnlyDefined(options)); | ||
| } | ||
@@ -200,6 +181,3 @@ } | ||
| super(options.definition); | ||
| assign( | ||
| this, | ||
| pickBy(options, (v) => v !== undefined), | ||
| ); | ||
| Object.assign(this, pickOnlyDefined(options)); | ||
| } | ||
@@ -222,6 +200,3 @@ } | ||
| super(options.definition); | ||
| assign( | ||
| this, | ||
| pickBy(options, (v) => v !== undefined), | ||
| ); | ||
| Object.assign(this, pickOnlyDefined(options)); | ||
| } | ||
@@ -254,6 +229,3 @@ } | ||
| super(options.definition); | ||
| assign( | ||
| this, | ||
| pickBy(options, (v) => v !== undefined), | ||
| ); | ||
| Object.assign(this, pickOnlyDefined(options)); | ||
| } | ||
@@ -272,6 +244,3 @@ } | ||
| }) { | ||
| assign( | ||
| this, | ||
| pickBy(options, (v) => v !== undefined), | ||
| ); | ||
| Object.assign(this, pickOnlyDefined(options)); | ||
| } | ||
@@ -330,3 +299,3 @@ | ||
| export function serializeGrammar(topRules: Rule[]): ISerializedGast[] { | ||
| return map(topRules, serializeProduction); | ||
| return topRules.map(serializeProduction); | ||
| } | ||
@@ -336,3 +305,3 @@ | ||
| function convertDefinition(definition: IProduction[]): ISerializedGast[] { | ||
| return map(definition, serializeProduction); | ||
| return definition.map(serializeProduction); | ||
| } | ||
@@ -347,3 +316,3 @@ /* istanbul ignore else */ | ||
| if (isString(node.label)) { | ||
| if (typeof node.label === "string") { | ||
| serializedNonTerminal.label = node.label; | ||
@@ -408,3 +377,3 @@ } | ||
| if (isString(node.label)) { | ||
| if (typeof node.label === "string") { | ||
| serializedTerminal.terminalLabel = node.label; | ||
@@ -415,5 +384,4 @@ } | ||
| if (node.terminalType.PATTERN) { | ||
| serializedTerminal.pattern = isRegExp(pattern) | ||
| ? (<any>pattern).source | ||
| : pattern; | ||
| serializedTerminal.pattern = | ||
| pattern instanceof RegExp ? (<any>pattern).source : pattern; | ||
| } | ||
@@ -434,1 +402,7 @@ | ||
| } | ||
| function pickOnlyDefined(obj: Object): any { | ||
| return Object.fromEntries( | ||
| Object.entries(obj).filter(([, v]) => v !== undefined), | ||
| ); | ||
| } |
1
-50%0
-100%55925
-1.28%1051
-2.69%+ Added
- Removed
- Removed
- Removed
Updated