binary-decision-diagram 1.3.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/main.yml +22 -0
- package/README.md +3 -2
- package/dist/es/abstract-node.d.ts +1 -1
- package/dist/es/abstract-node.js +45 -51
- package/dist/es/abstract-node.js.map +1 -1
- package/dist/es/branches.d.ts +1 -1
- package/dist/es/branches.js +20 -22
- package/dist/es/branches.js.map +1 -1
- package/dist/es/create-bdd-from-truth-table.d.ts +1 -1
- package/dist/es/create-bdd-from-truth-table.js +19 -57
- package/dist/es/create-bdd-from-truth-table.js.map +1 -1
- package/dist/es/ensure-correct-bdd.js +26 -27
- package/dist/es/ensure-correct-bdd.js.map +1 -1
- package/dist/es/fill-truth-table.d.ts +1 -1
- package/dist/es/fill-truth-table.js +3 -3
- package/dist/es/fill-truth-table.js.map +1 -1
- package/dist/es/find-similar-node.js +3 -3
- package/dist/es/find-similar-node.js.map +1 -1
- package/dist/es/index.d.ts +7 -1
- package/dist/es/index.js.map +1 -1
- package/dist/es/internal-node.d.ts +1 -1
- package/dist/es/internal-node.js +15 -33
- package/dist/es/internal-node.js.map +1 -1
- package/dist/es/leaf-node.d.ts +1 -1
- package/dist/es/leaf-node.js +14 -32
- package/dist/es/leaf-node.js.map +1 -1
- package/dist/es/minimal-string/bdd-to-minimal-string.js +15 -15
- package/dist/es/minimal-string/bdd-to-minimal-string.js.map +1 -1
- package/dist/es/minimal-string/bdd-to-simple-bdd.js +2 -2
- package/dist/es/minimal-string/bdd-to-simple-bdd.js.map +1 -1
- package/dist/es/minimal-string/minimal-string-to-simple-bdd.js +27 -27
- package/dist/es/minimal-string/minimal-string-to-simple-bdd.js.map +1 -1
- package/dist/es/minimal-string/resolve-with-simple-bdd.js +4 -4
- package/dist/es/minimal-string/resolve-with-simple-bdd.js.map +1 -1
- package/dist/es/minimal-string/string-format.js +7 -7
- package/dist/es/minimal-string/string-format.js.map +1 -1
- package/dist/es/optimize-brute-force.d.ts +5 -5
- package/dist/es/optimize-brute-force.js +88 -186
- package/dist/es/optimize-brute-force.js.map +1 -1
- package/dist/es/parents.d.ts +1 -1
- package/dist/es/parents.js +19 -47
- package/dist/es/parents.js.map +1 -1
- package/dist/es/root-node.d.ts +1 -1
- package/dist/es/root-node.js +79 -131
- package/dist/es/root-node.js.map +1 -1
- package/dist/es/types.d.ts +9 -9
- package/dist/es/types.js +1 -0
- package/dist/es/util.d.ts +1 -1
- package/dist/es/util.js +21 -39
- package/dist/es/util.js.map +1 -1
- package/dist/lib/abstract-node.d.ts +1 -1
- package/dist/lib/abstract-node.js +48 -56
- package/dist/lib/abstract-node.js.map +1 -1
- package/dist/lib/branches.d.ts +1 -1
- package/dist/lib/branches.js +21 -26
- package/dist/lib/branches.js.map +1 -1
- package/dist/lib/create-bdd-from-truth-table.d.ts +1 -1
- package/dist/lib/create-bdd-from-truth-table.js +24 -65
- package/dist/lib/create-bdd-from-truth-table.js.map +1 -1
- package/dist/lib/ensure-correct-bdd.js +27 -32
- package/dist/lib/ensure-correct-bdd.js.map +1 -1
- package/dist/lib/fill-truth-table.d.ts +1 -1
- package/dist/lib/fill-truth-table.js +6 -9
- package/dist/lib/fill-truth-table.js.map +1 -1
- package/dist/lib/find-similar-node.js +4 -7
- package/dist/lib/find-similar-node.js.map +1 -1
- package/dist/lib/index.d.ts +7 -1
- package/dist/lib/index.js +13 -18
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/internal-node.d.ts +1 -1
- package/dist/lib/internal-node.js +18 -38
- package/dist/lib/internal-node.js.map +1 -1
- package/dist/lib/leaf-node.d.ts +1 -1
- package/dist/lib/leaf-node.js +17 -37
- package/dist/lib/leaf-node.js.map +1 -1
- package/dist/lib/minimal-string/bdd-to-minimal-string.js +21 -25
- package/dist/lib/minimal-string/bdd-to-minimal-string.js.map +1 -1
- package/dist/lib/minimal-string/bdd-to-simple-bdd.js +4 -8
- package/dist/lib/minimal-string/bdd-to-simple-bdd.js.map +1 -1
- package/dist/lib/minimal-string/index.js +5 -10
- package/dist/lib/minimal-string/index.js.map +1 -1
- package/dist/lib/minimal-string/minimal-string-to-simple-bdd.js +30 -33
- package/dist/lib/minimal-string/minimal-string-to-simple-bdd.js.map +1 -1
- package/dist/lib/minimal-string/resolve-with-simple-bdd.js +6 -9
- package/dist/lib/minimal-string/resolve-with-simple-bdd.js.map +1 -1
- package/dist/lib/minimal-string/string-format.js +12 -18
- package/dist/lib/minimal-string/string-format.js.map +1 -1
- package/dist/lib/optimize-brute-force.d.ts +5 -5
- package/dist/lib/optimize-brute-force.js +93 -197
- package/dist/lib/optimize-brute-force.js.map +1 -1
- package/dist/lib/parents.d.ts +1 -1
- package/dist/lib/parents.js +19 -49
- package/dist/lib/parents.js.map +1 -1
- package/dist/lib/root-node.d.ts +1 -1
- package/dist/lib/root-node.js +84 -138
- package/dist/lib/root-node.js.map +1 -1
- package/dist/lib/types.d.ts +9 -9
- package/dist/lib/types.js +1 -2
- package/dist/lib/util.d.ts +1 -1
- package/dist/lib/util.js +36 -71
- package/dist/lib/util.js.map +1 -1
- package/package.json +16 -11
- package/renovate.json +3 -2
- package/src/abstract-node.ts +1 -1
- package/src/branches.ts +1 -2
- package/src/create-bdd-from-truth-table.ts +1 -1
- package/src/ensure-correct-bdd.ts +1 -1
- package/src/fill-truth-table.ts +1 -1
- package/src/index.ts +19 -1
- package/src/internal-node.ts +1 -1
- package/src/leaf-node.ts +1 -1
- package/src/optimize-brute-force.ts +1 -1
- package/src/parents.ts +1 -1
- package/src/root-node.ts +1 -1
- package/src/types.ts +1 -1
- package/src/util.ts +1 -1
- package/tsconfig.json +2 -2
- package/.travis.yml +0 -13
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var util_1 = require("./util");
|
|
1
|
+
import { minBinaryWithLength, maxBinaryWithLength, getNextStateSet } from './util';
|
|
4
2
|
/**
|
|
5
3
|
* fills each missing row of a table
|
|
6
4
|
* with the given value
|
|
7
5
|
*/
|
|
8
|
-
function fillTruthTable(truthTable, inputLength, value) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
export function fillTruthTable(truthTable, inputLength, value) {
|
|
7
|
+
const endInput = maxBinaryWithLength(inputLength);
|
|
8
|
+
let currentInput = minBinaryWithLength(inputLength);
|
|
9
|
+
let done = false;
|
|
12
10
|
while (!done) {
|
|
13
11
|
if (!truthTable.has(currentInput)) {
|
|
14
12
|
truthTable.set(currentInput, value);
|
|
@@ -17,9 +15,8 @@ function fillTruthTable(truthTable, inputLength, value) {
|
|
|
17
15
|
done = true;
|
|
18
16
|
}
|
|
19
17
|
else {
|
|
20
|
-
currentInput =
|
|
18
|
+
currentInput = getNextStateSet(currentInput);
|
|
21
19
|
}
|
|
22
20
|
}
|
|
23
21
|
}
|
|
24
|
-
exports.fillTruthTable = fillTruthTable;
|
|
25
22
|
//# sourceMappingURL=fill-truth-table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fill-truth-table.js","sourceRoot":"","sources":["../../src/fill-truth-table.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fill-truth-table.js","sourceRoot":"","sources":["../../src/fill-truth-table.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EAClB,MAAM,QAAQ,CAAC;AAGhB;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC1B,UAAsB,EACtB,WAAmB,EACnB,KAAa;IAEb,MAAM,QAAQ,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAClD,IAAI,YAAY,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACpD,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,OAAO,CAAC,IAAI,EAAE;QACV,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YAC/B,UAAU,CAAC,GAAG,CACV,YAAY,EACZ,KAAK,CACR,CAAC;SACL;QACD,IAAI,YAAY,KAAK,QAAQ,EAAE;YAC3B,IAAI,GAAG,IAAI,CAAC;SACf;aAAM;YACH,YAAY,GAAG,eAAe,CAC1B,YAAY,CACf,CAAC;SACL;KACJ;AACL,CAAC"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
1
|
/**
|
|
4
2
|
* find an simliar node in a list of nodes
|
|
5
3
|
* which is not exactly the same node
|
|
6
4
|
* @hotpath
|
|
7
5
|
*/
|
|
8
|
-
function findSimilarNode(own, others) {
|
|
9
|
-
|
|
10
|
-
for (
|
|
11
|
-
|
|
6
|
+
export function findSimilarNode(own, others) {
|
|
7
|
+
const ownString = own.toString();
|
|
8
|
+
for (let i = 0; i < others.length; i++) {
|
|
9
|
+
const other = others[i];
|
|
12
10
|
if (own !== other &&
|
|
13
11
|
!other.deleted &&
|
|
14
12
|
own.isEqualToOtherNode(other, ownString)) {
|
|
@@ -17,5 +15,4 @@ function findSimilarNode(own, others) {
|
|
|
17
15
|
}
|
|
18
16
|
return null;
|
|
19
17
|
}
|
|
20
|
-
exports.findSimilarNode = findSimilarNode;
|
|
21
18
|
//# sourceMappingURL=find-similar-node.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-similar-node.js","sourceRoot":"","sources":["../../src/find-similar-node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"find-similar-node.js","sourceRoot":"","sources":["../../src/find-similar-node.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC3B,GAAM,EACN,MAAW;IAEX,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,IACI,GAAG,KAAK,KAAK;YACb,CAAC,KAAK,CAAC,OAAO;YACd,GAAG,CAAC,kBAAkB,CAClB,KAAY,EACZ,SAAS,CACZ,EACH;YACE,OAAO,KAAK,CAAC;SAChB;KACJ;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -10,5 +10,11 @@ export * from './leaf-node';
|
|
|
10
10
|
export * from './optimize-brute-force';
|
|
11
11
|
export * from './parents';
|
|
12
12
|
export * from './root-node';
|
|
13
|
-
export * from './types';
|
|
14
13
|
export * from './util';
|
|
14
|
+
/**
|
|
15
|
+
* There is no "export type * from 'xxx'"
|
|
16
|
+
* So we have to export each type by its own
|
|
17
|
+
* to ensure the types js file is not included
|
|
18
|
+
* into the bundle.
|
|
19
|
+
*/
|
|
20
|
+
export type { NodeType, NonLeafNode, NonRootNode, TruthTable, BooleanString, ResolverFunction, ResolverFunctions, SimpleBddLeafNode, SimpleBdd } from './types';
|
package/dist/lib/index.js
CHANGED
|
@@ -1,19 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
__export(require("./leaf-node"));
|
|
15
|
-
__export(require("./optimize-brute-force"));
|
|
16
|
-
__export(require("./parents"));
|
|
17
|
-
__export(require("./root-node"));
|
|
18
|
-
__export(require("./util"));
|
|
1
|
+
export * from './minimal-string/index';
|
|
2
|
+
export * from './abstract-node';
|
|
3
|
+
export * from './branches';
|
|
4
|
+
export * from './create-bdd-from-truth-table';
|
|
5
|
+
export * from './ensure-correct-bdd';
|
|
6
|
+
export * from './fill-truth-table';
|
|
7
|
+
export * from './find-similar-node';
|
|
8
|
+
export * from './internal-node';
|
|
9
|
+
export * from './leaf-node';
|
|
10
|
+
export * from './optimize-brute-force';
|
|
11
|
+
export * from './parents';
|
|
12
|
+
export * from './root-node';
|
|
13
|
+
export * from './util';
|
|
19
14
|
//# sourceMappingURL=index.js.map
|
package/dist/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { Branches } from './branches';
|
|
|
2
2
|
import { Parents } from './parents';
|
|
3
3
|
import { RootNode } from './root-node';
|
|
4
4
|
import { AbstractNode } from './abstract-node';
|
|
5
|
-
import { NonLeafNode } from './types';
|
|
5
|
+
import type { NonLeafNode } from './types';
|
|
6
6
|
export declare class InternalNode extends AbstractNode {
|
|
7
7
|
branches: Branches;
|
|
8
8
|
parents: Parents;
|
|
@@ -1,50 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
extendStatics(d, b);
|
|
11
|
-
function __() { this.constructor = d; }
|
|
12
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
13
|
-
};
|
|
14
|
-
})();
|
|
15
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
var branches_1 = require("./branches");
|
|
17
|
-
var parents_1 = require("./parents");
|
|
18
|
-
var abstract_node_1 = require("./abstract-node");
|
|
19
|
-
var InternalNode = /** @class */ (function (_super) {
|
|
20
|
-
__extends(InternalNode, _super);
|
|
21
|
-
function InternalNode(level, rootNode, parent) {
|
|
22
|
-
var _this = _super.call(this, level, rootNode, 'InternalNode') || this;
|
|
23
|
-
_this.branches = new branches_1.Branches(_this);
|
|
24
|
-
_this.parents = new parents_1.Parents(_this);
|
|
25
|
-
_this.parents.add(parent);
|
|
26
|
-
return _this;
|
|
1
|
+
import { Branches } from './branches';
|
|
2
|
+
import { Parents } from './parents';
|
|
3
|
+
import { AbstractNode } from './abstract-node';
|
|
4
|
+
export class InternalNode extends AbstractNode {
|
|
5
|
+
constructor(level, rootNode, parent) {
|
|
6
|
+
super(level, rootNode, 'InternalNode');
|
|
7
|
+
this.branches = new Branches(this);
|
|
8
|
+
this.parents = new Parents(this);
|
|
9
|
+
this.parents.add(parent);
|
|
27
10
|
}
|
|
28
11
|
/**
|
|
29
12
|
* by the reduction-rule of bdd,
|
|
30
13
|
* if both branches are equal,
|
|
31
14
|
* we can remove this node from the bdd
|
|
32
15
|
*/
|
|
33
|
-
|
|
16
|
+
applyReductionRule() {
|
|
34
17
|
// console.log('applyReductionRule() ' + this.id);
|
|
35
|
-
var _this = this;
|
|
36
18
|
if (this.branches.hasEqualBranches()) {
|
|
37
19
|
this.ensureNotDeleted('applyReductionRule');
|
|
38
|
-
|
|
20
|
+
const keepBranch = this.branches.getBranch('0');
|
|
39
21
|
// move own parents to keepBranch
|
|
40
|
-
|
|
41
|
-
ownParents.forEach(
|
|
22
|
+
const ownParents = this.parents.getAll();
|
|
23
|
+
ownParents.forEach(parent => {
|
|
42
24
|
// console.log('ownParent: ' + parent.id);
|
|
43
|
-
|
|
44
|
-
parent.branches.setBranch(branchKey,
|
|
25
|
+
const branchKey = parent.branches.getKeyOfNode(this);
|
|
26
|
+
parent.branches.setBranch(branchKey, keepBranch);
|
|
45
27
|
// remove parents from own list
|
|
46
28
|
// this will auto-remove the connection to the other '1'-branch
|
|
47
|
-
|
|
29
|
+
this.parents.remove(parent);
|
|
48
30
|
// if parent has now two equal branches,
|
|
49
31
|
// we have to apply the reduction again
|
|
50
32
|
// to ensure we end in a valid state
|
|
@@ -55,8 +37,6 @@ var InternalNode = /** @class */ (function (_super) {
|
|
|
55
37
|
return true;
|
|
56
38
|
}
|
|
57
39
|
return false;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
}(abstract_node_1.AbstractNode));
|
|
61
|
-
exports.InternalNode = InternalNode;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
62
42
|
//# sourceMappingURL=internal-node.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-node.js","sourceRoot":"","sources":["../../src/internal-node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"internal-node.js","sourceRoot":"","sources":["../../src/internal-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,MAAM,OAAO,YAAa,SAAQ,YAAY;IAI1C,YACI,KAAa,EACb,QAAkB,EAClB,MAAmB;QAEnB,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;QARpC,aAAQ,GAAa,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxC,YAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAQ/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAID;;;;OAIG;IACH,kBAAkB;QAEd,kDAAkD;QAElD,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE;YAClC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;YAC5C,MAAM,UAAU,GAAgB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAE7D,iCAAiC;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACzC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACxB,0CAA0C;gBAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACrD,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBAEjD,+BAA+B;gBAC/B,+DAA+D;gBAC/D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE5B,wCAAwC;gBACxC,uCAAuC;gBACvC,oCAAoC;gBACpC,IAAI,MAAM,CAAC,QAAQ,CAAC,sBAAsB,EAAE,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE;oBACpE,MAAuB,CAAC,kBAAkB,EAAE,CAAC;iBACjD;YACL,CAAC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CAEJ"}
|
package/dist/lib/leaf-node.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Parents } from './parents';
|
|
2
2
|
import { AbstractNode } from './abstract-node';
|
|
3
3
|
import { RootNode } from './root-node';
|
|
4
|
-
import { NonLeafNode } from './types';
|
|
4
|
+
import type { NonLeafNode } from './types';
|
|
5
5
|
export declare class LeafNode extends AbstractNode {
|
|
6
6
|
value: number;
|
|
7
7
|
parents: Parents;
|
package/dist/lib/leaf-node.js
CHANGED
|
@@ -1,49 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
extendStatics(d, b);
|
|
11
|
-
function __() { this.constructor = d; }
|
|
12
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
13
|
-
};
|
|
14
|
-
})();
|
|
15
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
var parents_1 = require("./parents");
|
|
17
|
-
var abstract_node_1 = require("./abstract-node");
|
|
18
|
-
var util_1 = require("./util");
|
|
19
|
-
var LeafNode = /** @class */ (function (_super) {
|
|
20
|
-
__extends(LeafNode, _super);
|
|
21
|
-
function LeafNode(level, rootNode, value, parent) {
|
|
22
|
-
var _this = _super.call(this, level, rootNode, 'LeafNode') || this;
|
|
23
|
-
_this.value = value;
|
|
24
|
-
_this.parents = new parents_1.Parents(_this);
|
|
25
|
-
_this.parents.add(parent);
|
|
26
|
-
return _this;
|
|
1
|
+
import { Parents } from './parents';
|
|
2
|
+
import { AbstractNode } from './abstract-node';
|
|
3
|
+
import { oppositeBoolean } from './util';
|
|
4
|
+
export class LeafNode extends AbstractNode {
|
|
5
|
+
constructor(level, rootNode, value, parent) {
|
|
6
|
+
super(level, rootNode, 'LeafNode');
|
|
7
|
+
this.value = value;
|
|
8
|
+
this.parents = new Parents(this);
|
|
9
|
+
this.parents.add(parent);
|
|
27
10
|
}
|
|
28
|
-
|
|
29
|
-
var _this = this;
|
|
11
|
+
removeIfValueEquals(value) {
|
|
30
12
|
this.ensureNotDeleted();
|
|
31
13
|
if (this.value !== value) {
|
|
32
14
|
return false;
|
|
33
15
|
}
|
|
34
|
-
|
|
35
|
-
parents.forEach(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
16
|
+
const parents = this.parents.getAll();
|
|
17
|
+
parents.forEach(parent => {
|
|
18
|
+
const branchKey = parent.branches.getKeyOfNode(this);
|
|
19
|
+
const otherBranch = parent.branches.getBranch(oppositeBoolean(branchKey));
|
|
20
|
+
this.parents.remove(parent);
|
|
39
21
|
parent.branches.setBranch(branchKey, otherBranch);
|
|
40
22
|
if (parent.isInternalNode()) {
|
|
41
23
|
parent.applyReductionRule();
|
|
42
24
|
}
|
|
43
25
|
});
|
|
44
26
|
return true;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
}(abstract_node_1.AbstractNode));
|
|
48
|
-
exports.LeafNode = LeafNode;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
49
29
|
//# sourceMappingURL=leaf-node.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leaf-node.js","sourceRoot":"","sources":["../../src/leaf-node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"leaf-node.js","sourceRoot":"","sources":["../../src/leaf-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAGzC,MAAM,OAAO,QAAS,SAAQ,YAAY;IAGtC,YACI,KAAa,EACb,QAAkB,EACX,KAAa,EACpB,MAAmB;QAEnB,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAH5B,UAAK,GAAL,KAAK,CAAQ;QALjB,YAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAS/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,mBAAmB,CAAC,KAAa;QAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;YACtB,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACrB,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;YAC1E,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAClD,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE;gBACxB,MAAuB,CAAC,kBAAkB,EAAE,CAAC;aACjD;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;CAGJ"}
|
|
@@ -1,22 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var ret = '';
|
|
7
|
-
var currentCharCode = string_format_2.FIRST_CHAR_CODE_FOR_ID;
|
|
1
|
+
import { getCharOfLevel, getCharOfValue, getNextCharId } from './string-format';
|
|
2
|
+
import { FIRST_CHAR_CODE_FOR_ID } from './string-format';
|
|
3
|
+
export function bddToMinimalString(bdd) {
|
|
4
|
+
let ret = '';
|
|
5
|
+
let currentCharCode = FIRST_CHAR_CODE_FOR_ID;
|
|
8
6
|
// add leaf node count
|
|
9
|
-
|
|
7
|
+
const leafNodeAmount = bdd.getLeafNodes().length;
|
|
10
8
|
if (leafNodeAmount > 99) {
|
|
11
9
|
throw new Error('cannot build string with too many leaf nodes');
|
|
12
10
|
}
|
|
13
11
|
ret += leafNodeAmount.toString().padStart(2, '0');
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
levelsHighestFirst.forEach(
|
|
17
|
-
|
|
18
|
-
nodes.forEach(
|
|
19
|
-
|
|
12
|
+
const levelsHighestFirst = bdd.levels.slice().reverse();
|
|
13
|
+
const idByNode = new Map();
|
|
14
|
+
levelsHighestFirst.forEach(level => {
|
|
15
|
+
const nodes = bdd.getNodesOfLevel(level);
|
|
16
|
+
nodes.forEach(node => {
|
|
17
|
+
const stringRep = nodeToString(node, idByNode, currentCharCode);
|
|
20
18
|
currentCharCode = stringRep.nextCode;
|
|
21
19
|
idByNode.set(node, stringRep.id);
|
|
22
20
|
ret += stringRep.str;
|
|
@@ -24,36 +22,34 @@ function bddToMinimalString(bdd) {
|
|
|
24
22
|
});
|
|
25
23
|
return ret;
|
|
26
24
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
var nextId = string_format_1.getNextCharId(lastCode);
|
|
25
|
+
export function nodeToString(node, idByNode, lastCode) {
|
|
26
|
+
const nextId = getNextCharId(lastCode);
|
|
30
27
|
switch (node.type) {
|
|
31
28
|
case 'LeafNode':
|
|
32
|
-
|
|
29
|
+
const valueChar = getCharOfValue(node.asLeafNode().value);
|
|
33
30
|
return {
|
|
34
31
|
id: nextId.char,
|
|
35
32
|
nextCode: nextId.nextCode,
|
|
36
33
|
str: nextId.char + valueChar
|
|
37
34
|
};
|
|
38
35
|
case 'InternalNode':
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
const branch0Id = idByNode.get(node.asInternalNode().branches.getBranch('0'));
|
|
37
|
+
const branch1Id = idByNode.get(node.asInternalNode().branches.getBranch('1'));
|
|
41
38
|
return {
|
|
42
39
|
id: nextId.char,
|
|
43
40
|
nextCode: nextId.nextCode,
|
|
44
|
-
str: nextId.char + branch0Id + branch1Id +
|
|
41
|
+
str: nextId.char + branch0Id + branch1Id + getCharOfLevel(node.level)
|
|
45
42
|
};
|
|
46
43
|
case 'RootNode':
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
const branch0IdRoot = idByNode.get(node.asRootNode().branches.getBranch('0'));
|
|
45
|
+
const branch1IdRoot = idByNode.get(node.asRootNode().branches.getBranch('1'));
|
|
49
46
|
return {
|
|
50
47
|
id: nextId.char,
|
|
51
48
|
nextCode: nextId.nextCode,
|
|
52
|
-
str: '' + branch0IdRoot + branch1IdRoot +
|
|
49
|
+
str: '' + branch0IdRoot + branch1IdRoot + getCharOfLevel(node.level)
|
|
53
50
|
};
|
|
54
51
|
default:
|
|
55
52
|
throw new Error('unknown node type');
|
|
56
53
|
}
|
|
57
54
|
}
|
|
58
|
-
exports.nodeToString = nodeToString;
|
|
59
55
|
//# sourceMappingURL=bdd-to-minimal-string.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bdd-to-minimal-string.js","sourceRoot":"","sources":["../../../src/minimal-string/bdd-to-minimal-string.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bdd-to-minimal-string.js","sourceRoot":"","sources":["../../../src/minimal-string/bdd-to-minimal-string.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,19 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
1
|
/**
|
|
4
2
|
* @recursive
|
|
5
3
|
*/
|
|
6
|
-
function bddToSimpleBdd(bdd) {
|
|
4
|
+
export function bddToSimpleBdd(bdd) {
|
|
7
5
|
return nodeToSimpleBddNode(bdd);
|
|
8
6
|
}
|
|
9
|
-
exports.bddToSimpleBdd = bddToSimpleBdd;
|
|
10
7
|
/**
|
|
11
8
|
* @recursive
|
|
12
9
|
*/
|
|
13
|
-
function nodeToSimpleBddNode(node) {
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
export function nodeToSimpleBddNode(node) {
|
|
11
|
+
const branch0 = node.branches.getBranch('0');
|
|
12
|
+
const branch1 = node.branches.getBranch('1');
|
|
16
13
|
return {
|
|
17
14
|
l: node.level,
|
|
18
15
|
0: branch0.isLeafNode() ? branch0.asLeafNode().value : nodeToSimpleBddNode(branch0),
|
|
19
16
|
1: branch1.isLeafNode() ? branch1.asLeafNode().value : nodeToSimpleBddNode(branch1),
|
|
20
17
|
};
|
|
21
18
|
}
|
|
22
|
-
exports.nodeToSimpleBddNode = nodeToSimpleBddNode;
|
|
23
19
|
//# sourceMappingURL=bdd-to-simple-bdd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bdd-to-simple-bdd.js","sourceRoot":"","sources":["../../../src/minimal-string/bdd-to-simple-bdd.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bdd-to-simple-bdd.js","sourceRoot":"","sources":["../../../src/minimal-string/bdd-to-simple-bdd.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAa;IACxC,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAGD;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAC/B,IAAkB;IAGlB,MAAM,OAAO,GAAkB,IAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAkB,IAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAE7E,OAAO;QACH,CAAC,EAAE,IAAI,CAAC,KAAK;QACb,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC;QACnF,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC;KACtF,CAAC;AACN,CAAC"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
__export(require("./bdd-to-minimal-string"));
|
|
7
|
-
__export(require("./minimal-string-to-simple-bdd"));
|
|
8
|
-
__export(require("./resolve-with-simple-bdd"));
|
|
9
|
-
__export(require("./string-format"));
|
|
10
|
-
__export(require("./bdd-to-simple-bdd"));
|
|
1
|
+
export * from './bdd-to-minimal-string';
|
|
2
|
+
export * from './minimal-string-to-simple-bdd';
|
|
3
|
+
export * from './resolve-with-simple-bdd';
|
|
4
|
+
export * from './string-format';
|
|
5
|
+
export * from './bdd-to-simple-bdd';
|
|
11
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/minimal-string/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/minimal-string/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC"}
|
|
@@ -1,38 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
function minimalStringToSimpleBdd(str) {
|
|
6
|
-
var nodesById = new Map();
|
|
1
|
+
import { splitStringToChunks } from '../util';
|
|
2
|
+
import { getNumberOfChar } from './string-format';
|
|
3
|
+
export function minimalStringToSimpleBdd(str) {
|
|
4
|
+
const nodesById = new Map();
|
|
7
5
|
// parse leaf nodes
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
for (
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
6
|
+
const leafNodeAmount = parseInt(str.charAt(0) + str.charAt(1), 10);
|
|
7
|
+
const lastLeafNodeChar = (2 + leafNodeAmount * 2);
|
|
8
|
+
const leafNodeChars = str.substring(2, lastLeafNodeChar);
|
|
9
|
+
const leafNodeChunks = splitStringToChunks(leafNodeChars, 2);
|
|
10
|
+
for (let i = 0; i < leafNodeChunks.length; i++) {
|
|
11
|
+
const chunk = leafNodeChunks[i];
|
|
12
|
+
const id = chunk.charAt(0);
|
|
13
|
+
const value = getNumberOfChar(chunk.charAt(1));
|
|
16
14
|
nodesById.set(id, value);
|
|
17
15
|
}
|
|
18
16
|
// parse internal nodes
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
for (
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
17
|
+
const internalNodeChars = str.substring(lastLeafNodeChar, str.length - 3);
|
|
18
|
+
const internalNodeChunks = splitStringToChunks(internalNodeChars, 4);
|
|
19
|
+
for (let i = 0; i < internalNodeChunks.length; i++) {
|
|
20
|
+
const chunk = internalNodeChunks[i];
|
|
21
|
+
const id = chunk.charAt(0);
|
|
22
|
+
const idOf0Branch = chunk.charAt(1);
|
|
23
|
+
const idOf1Branch = chunk.charAt(2);
|
|
24
|
+
const level = getNumberOfChar(chunk.charAt(3));
|
|
27
25
|
if (!nodesById.has(idOf0Branch)) {
|
|
28
26
|
throw new Error('missing node with id ' + idOf0Branch);
|
|
29
27
|
}
|
|
30
28
|
if (!nodesById.has(idOf1Branch)) {
|
|
31
29
|
throw new Error('missing node with id ' + idOf1Branch);
|
|
32
30
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
const node0 = nodesById.get(idOf0Branch);
|
|
32
|
+
const node1 = nodesById.get(idOf1Branch);
|
|
33
|
+
const node = {
|
|
36
34
|
l: level,
|
|
37
35
|
0: node0,
|
|
38
36
|
1: node1
|
|
@@ -40,18 +38,17 @@ function minimalStringToSimpleBdd(str) {
|
|
|
40
38
|
nodesById.set(id, node);
|
|
41
39
|
}
|
|
42
40
|
// parse root node
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
41
|
+
const last3 = str.slice(-3);
|
|
42
|
+
const idOf0 = last3.charAt(0);
|
|
43
|
+
const idOf1 = last3.charAt(1);
|
|
44
|
+
const levelOfRoot = getNumberOfChar(last3.charAt(2));
|
|
45
|
+
const nodeOf0 = nodesById.get(idOf0);
|
|
46
|
+
const nodeOf1 = nodesById.get(idOf1);
|
|
47
|
+
const rootNode = {
|
|
50
48
|
l: levelOfRoot,
|
|
51
49
|
0: nodeOf0,
|
|
52
50
|
1: nodeOf1,
|
|
53
51
|
};
|
|
54
52
|
return rootNode;
|
|
55
53
|
}
|
|
56
|
-
exports.minimalStringToSimpleBdd = minimalStringToSimpleBdd;
|
|
57
54
|
//# sourceMappingURL=minimal-string-to-simple-bdd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minimal-string-to-simple-bdd.js","sourceRoot":"","sources":["../../../src/minimal-string/minimal-string-to-simple-bdd.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"minimal-string-to-simple-bdd.js","sourceRoot":"","sources":["../../../src/minimal-string/minimal-string-to-simple-bdd.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,UAAU,wBAAwB,CACpC,GAAW;IAEX,MAAM,SAAS,GAA+C,IAAI,GAAG,EAAE,CAAC;IAExE,mBAAmB;IACnB,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnE,MAAM,gBAAgB,GAAG,CAAC,CAAC,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACzD,MAAM,cAAc,GAAG,mBAAmB,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAsB,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;KAC5B;IAED,uBAAuB;IACvB,MAAM,iBAAiB,GAAG,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1E,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;IACrE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAChD,MAAM,KAAK,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAG/C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,WAAW,CAAC,CAAC;SAC1D;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,WAAW,CAAC,CAAC;SAC1D;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAc,CAAC;QACtD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAc,CAAC;QACtD,MAAM,IAAI,GAAc;YACpB,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,KAAK;SACX,CAAC;QACF,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;KAC3B;IAED,kBAAkB;IAClB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAc,CAAC;IAClD,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAc,CAAC;IAClD,MAAM,QAAQ,GAAc;QACxB,CAAC,EAAE,WAAW;QACd,CAAC,EAAE,OAAO;QACV,CAAC,EAAE,OAAO;KACb,CAAC;IAEF,OAAO,QAAQ,CAAC;AACpB,CAAC"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var currentNode = simpleBdd;
|
|
6
|
-
var currentLevel = simpleBdd.l;
|
|
1
|
+
import { booleanToBooleanString } from '../util';
|
|
2
|
+
export function resolveWithSimpleBdd(simpleBdd, fns, input) {
|
|
3
|
+
let currentNode = simpleBdd;
|
|
4
|
+
let currentLevel = simpleBdd.l;
|
|
7
5
|
while (true) {
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
const booleanResult = fns[currentLevel](input);
|
|
7
|
+
const branchKey = booleanToBooleanString(booleanResult);
|
|
10
8
|
currentNode = currentNode[branchKey];
|
|
11
9
|
if (typeof currentNode === 'number' || typeof currentNode === 'string') {
|
|
12
10
|
return currentNode;
|
|
@@ -16,5 +14,4 @@ function resolveWithSimpleBdd(simpleBdd, fns, input) {
|
|
|
16
14
|
}
|
|
17
15
|
}
|
|
18
16
|
}
|
|
19
|
-
exports.resolveWithSimpleBdd = resolveWithSimpleBdd;
|
|
20
17
|
//# sourceMappingURL=resolve-with-simple-bdd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-with-simple-bdd.js","sourceRoot":"","sources":["../../../src/minimal-string/resolve-with-simple-bdd.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolve-with-simple-bdd.js","sourceRoot":"","sources":["../../../src/minimal-string/resolve-with-simple-bdd.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjD,MAAM,UAAU,oBAAoB,CAChC,SAAoB,EACpB,GAAsB,EACtB,KAAU;IAEV,IAAI,WAAW,GAAkC,SAAS,CAAC;IAC3D,IAAI,YAAY,GAAW,SAAS,CAAC,CAAC,CAAC;IACvC,OAAO,IAAI,EAAE;QACT,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;QACxD,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;YACpE,OAAO,WAAkB,CAAC;SAC7B;aAAM;YACH,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC;SAChC;KACJ;AACL,CAAC"}
|