@trigo/bool-expressions
Advanced tools
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.getAllIdentifiers = exports.tokenize = exports.TokenType = void 0; | ||
| var language_1 = require("../language"); | ||
| var TokenType; | ||
| (function (TokenType) { | ||
| TokenType["operator"] = "operator"; | ||
| TokenType["identifier"] = "identifier"; | ||
| TokenType["separator"] = "separator"; | ||
| TokenType["literal"] = "literal"; | ||
| })(TokenType = exports.TokenType || (exports.TokenType = {})); | ||
| var identifyTokenType = function (token) { | ||
| switch (token) { | ||
| case '(': | ||
| case ')': | ||
| return TokenType.separator; | ||
| default: | ||
| return language_1.identifyOperator(token) !== language_1.Operator.unknown | ||
| ? TokenType.operator | ||
| : TokenType.identifier; | ||
| } | ||
| }; | ||
| var constructToken = function (token) { return [identifyTokenType(token), token]; }; | ||
| var __tokenize = function (tokens, currentIncompleteToken, remainingExpression) { | ||
| if (!remainingExpression || remainingExpression.length === 0) { | ||
| if (currentIncompleteToken.length > 0) { | ||
| var token = constructToken(currentIncompleteToken); | ||
| tokens.push(token); | ||
| } | ||
| return tokens; | ||
| } | ||
| var currentChar = remainingExpression[0]; | ||
| if (language_1.isSeparator(currentChar)) { | ||
| if (currentIncompleteToken.length > 0) { | ||
| var token = constructToken(currentIncompleteToken); | ||
| tokens.push(token); | ||
| } | ||
| if (language_1.isParenthesis(currentChar)) { | ||
| tokens.push(constructToken(currentChar)); | ||
| } | ||
| return __tokenize(tokens, '', remainingExpression.slice(1)); | ||
| } | ||
| return __tokenize(tokens, currentIncompleteToken.concat(currentChar), remainingExpression.slice(1)); | ||
| }; | ||
| exports.tokenize = function (str) { | ||
| return __tokenize([], '', str); | ||
| }; | ||
| exports.getAllIdentifiers = function (expression) { | ||
| var tokens = exports.tokenize(expression); | ||
| var nonDistinctIdentifiers = tokens.filter(function (t) { return t[0] === TokenType.identifier; }).map(function (t) { return t[1]; }); | ||
| return nonDistinctIdentifiers.filter(function (val, i) { return nonDistinctIdentifiers.indexOf(val) === i; }); | ||
| }; | ||
| exports.default = { | ||
| tokenize: exports.tokenize, | ||
| getAllIdentifiers: exports.getAllIdentifiers, | ||
| }; | ||
| //# sourceMappingURL=p1_lexicalAnalyzer.js.map |
| {"version":3,"file":"p1_lexicalAnalyzer.js","sourceRoot":"","sources":["../../../src/compiler/p1_lexicalAnalyzer.ts"],"names":[],"mappings":";;;AAAA,wCAAqF;AAErF,IAAY,SAKX;AALD,WAAY,SAAS;IACjB,kCAAqB,CAAA;IACrB,sCAAyB,CAAA;IACzB,oCAAuB,CAAA;IACvB,gCAAmB,CAAA;AACvB,CAAC,EALW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAKpB;AAID,IAAM,iBAAiB,GAAG,UAAC,KAAa;IACpC,QAAQ,KAAK,EAAE;QACX,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACJ,OAAO,SAAS,CAAC,SAAS,CAAC;QAC/B;YACI,OAAO,2BAAgB,CAAC,KAAK,CAAC,KAAK,mBAAQ,CAAC,OAAO;gBAC/C,CAAC,CAAC,SAAS,CAAC,QAAQ;gBACpB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC;KAClC;AACL,CAAC,CAAA;AAED,IAAM,cAAc,GAAG,UAAC,KAAa,IAAY,OAAA,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAjC,CAAiC,CAAC;AAEnF,IAAM,UAAU,GAAG,UAAC,MAAe,EAAE,sBAA8B,EAAE,mBAA2B;IAC5F,IAAI,CAAC,mBAAmB,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1D,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,IAAM,KAAK,GAAG,cAAc,CAAC,sBAAsB,CAAC,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACtB;QACD,OAAO,MAAM,CAAC;KACjB;IACD,IAAM,WAAW,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAE3C,IAAI,sBAAW,CAAC,WAAW,CAAC,EAAE;QAC1B,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,IAAM,KAAK,GAAG,cAAc,CAAC,sBAAsB,CAAC,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACtB;QACD,IAAI,wBAAa,CAAC,WAAW,CAAC,EAAE;YAC5B,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;SAC5C;QACD,OAAO,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/D;IAED,OAAO,UAAU,CAAC,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,CAAC,CAAC;AAEW,QAAA,QAAQ,GAAG,UAAC,GAAY;IACjC,OAAO,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC,CAAA;AAEY,QAAA,iBAAiB,GAAG,UAAC,UAAkB;IAChD,IAAM,MAAM,GAAG,gBAAQ,CAAC,UAAU,CAAC,CAAC;IACpC,IAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,UAAU,EAA7B,CAA6B,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,CAAC,EAAJ,CAAI,CAAC,CAAC;IAChG,OAAO,sBAAsB,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,CAAC,IAAK,OAAA,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAzC,CAAyC,CAAC,CAAC;AAChG,CAAC,CAAC;AAEF,kBAAe;IACX,QAAQ,kBAAA;IACR,iBAAiB,2BAAA;CACpB,CAAC"} |
| "use strict"; | ||
| var __read = (this && this.__read) || function (o, n) { | ||
| var m = typeof Symbol === "function" && o[Symbol.iterator]; | ||
| if (!m) return o; | ||
| var i = m.call(o), r, ar = [], e; | ||
| try { | ||
| while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); | ||
| } | ||
| catch (error) { e = { error: error }; } | ||
| finally { | ||
| try { | ||
| if (r && !r.done && (m = i["return"])) m.call(i); | ||
| } | ||
| finally { if (e) throw e.error; } | ||
| } | ||
| return ar; | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.validate = exports.isNaryOperator = exports.isBinaryOperator = exports.isUnaryOperator = exports.isIdentifier = exports.isOperator = exports.isSyntaxParsingError = exports.ParenthesisType = void 0; | ||
| var language_1 = require("../language"); | ||
| var p1_lexicalAnalyzer_1 = require("./p1_lexicalAnalyzer"); | ||
| var ParenthesisType; | ||
| (function (ParenthesisType) { | ||
| ParenthesisType["open"] = "open"; | ||
| ParenthesisType["close"] = "close"; | ||
| ParenthesisType["none"] = "none"; | ||
| })(ParenthesisType = exports.ParenthesisType || (exports.ParenthesisType = {})); | ||
| ; | ||
| ; | ||
| exports.isSyntaxParsingError = function (ast) { | ||
| return ast !== null && "error" in ast; | ||
| }; | ||
| exports.isOperator = function (input) { | ||
| return !!input && "operator" in input; | ||
| }; | ||
| exports.isIdentifier = function (input) { | ||
| return !exports.isOperator(input); | ||
| }; | ||
| exports.isUnaryOperator = function (input) { | ||
| return (exports.isOperator(input) && | ||
| (input.operator === language_1.Operator.id || input.operator === language_1.Operator.not)); | ||
| }; | ||
| exports.isBinaryOperator = function (input) { | ||
| return (exports.isOperator(input) && | ||
| (input.operator === language_1.Operator.and || input.operator === language_1.Operator.or)); | ||
| }; | ||
| exports.isNaryOperator = function (input) { | ||
| return exports.isOperator(input) && input.operator === language_1.Operator.xOfy; | ||
| }; | ||
| var registerIdentifier = function (token, symbolTable) { | ||
| if (!token) | ||
| return; | ||
| var identifier = token[1]; | ||
| if (exports.isIdentifier(token) && !symbolTable[identifier]) { | ||
| symbolTable[identifier] = { value: undefined, name: identifier }; | ||
| } | ||
| }; | ||
| var getSymbolTable = function (ast, symbolTable) { | ||
| symbolTable = symbolTable || {}; | ||
| if (exports.isIdentifier(ast)) { | ||
| registerIdentifier(ast, symbolTable); | ||
| } | ||
| else { | ||
| ast.childs.forEach(function (c) { return getSymbolTable(c, symbolTable); }); | ||
| } | ||
| return symbolTable; | ||
| }; | ||
| var isParenthesis = function (token) { | ||
| return language_1.isSeparator(token[1]) && token[1] === "(" | ||
| ? ParenthesisType.open | ||
| : token[1] === ")" | ||
| ? ParenthesisType.close | ||
| : ParenthesisType.none; | ||
| }; | ||
| var createNode = function (parent, level) { return ({ | ||
| operator: language_1.Operator.unknown, | ||
| childs: [], | ||
| parent: parent, | ||
| debug: { | ||
| level: level, | ||
| }, | ||
| }); }; | ||
| var __parse = function (tokens, currentNode, tree) { | ||
| // console.log("▶", { currentNode, tokens }); | ||
| var _a = __read(tokens, 2), nextToken = _a[0], tokenAfterTheNext = _a[1]; | ||
| if (!nextToken) { | ||
| // console.log("🛑", { currentNode }); | ||
| if (currentNode && exports.isOperator(currentNode) && currentNode.operator === language_1.Operator.unknown) | ||
| currentNode.operator = language_1.Operator.id; | ||
| return tree; | ||
| } | ||
| if (isParenthesis(nextToken) === ParenthesisType.close && exports.isOperator(currentNode)) { | ||
| // console.log("⬆⬆⬆⬆⬆⬆ UP ⬆⬆⬆⬆⬆⬆", {currentNode}); | ||
| if (currentNode.childs.length === 1 && exports.isIdentifier(currentNode.childs[0]) && currentNode.operator === language_1.Operator.unknown) { | ||
| // "(a)" | ||
| currentNode.parent.childs.concat(currentNode.childs); | ||
| } | ||
| if (currentNode && exports.isOperator(currentNode) && currentNode.operator === language_1.Operator.unknown) { | ||
| // necessary since we partially skip currentNode processing because of .parent passing | ||
| currentNode.operator = language_1.Operator.id; | ||
| } | ||
| return __parse(tokens.slice(1), currentNode.parent, tree); | ||
| } | ||
| if (isParenthesis(nextToken) === ParenthesisType.open) { | ||
| // console.log("⬇⬇⬇⬇⬇⬇ DOWN ⬇⬇⬇⬇⬇⬇"); | ||
| var nextLevel = createNode(currentNode, currentNode.debug.level + 1); | ||
| currentNode.childs.push(nextLevel); | ||
| return __parse(tokens.slice(1), nextLevel, tree); | ||
| } | ||
| if (exports.isBinaryOperator(currentNode) && language_1.identifyOperator(nextToken[1]) === language_1.Operator.not) { | ||
| // AND NOT, OR NOT (without parenthesis) | ||
| var nextLevel = createNode(currentNode, currentNode.debug.level + 1); | ||
| nextLevel.operator = language_1.Operator.not; | ||
| currentNode.childs.push(nextLevel); | ||
| return __parse(tokens.slice(1), nextLevel, tree); | ||
| } | ||
| // console.log("🔄", { currentNode, tokens }); | ||
| if (nextToken[0] === p1_lexicalAnalyzer_1.TokenType.identifier) { | ||
| currentNode.childs.push(nextToken); | ||
| } | ||
| if (nextToken[0] === p1_lexicalAnalyzer_1.TokenType.operator) { | ||
| if (currentNode.operator !== language_1.Operator.unknown) { | ||
| // Legacy Compatibility for "x AND y AND y" and such | ||
| var lower = createNode(currentNode, currentNode.debug.level + 1); | ||
| lower.operator = currentNode.operator; | ||
| lower.childs = currentNode.childs; | ||
| currentNode.childs = [lower]; | ||
| currentNode.operator = language_1.identifyOperator(nextToken[1]); | ||
| //return pass1(tokens.slice(1), currentNode, tree); | ||
| } | ||
| else { | ||
| currentNode.operator = language_1.identifyOperator(nextToken[1]); | ||
| if (currentNode.operator === language_1.Operator.xOfy) { | ||
| currentNode.operatorParameter = { | ||
| x: Number.parseInt(nextToken[1].match(/^(\d)\/(\d)$/)[1]), | ||
| y: Number.parseInt(nextToken[1].match(/^(\d)\/(\d)$/)[2]), | ||
| }; | ||
| } | ||
| } | ||
| } | ||
| return __parse(tokens.slice(1), currentNode, tree); | ||
| }; | ||
| /** | ||
| * Transform a token array into a syntax tree | ||
| * @param {string[]} tokens - the flat token array | ||
| * @returns {string[]} a nested token array, braces removed | ||
| */ | ||
| var parse = function (tokens) { | ||
| var root = createNode(null, 0); | ||
| try { | ||
| var result = __parse(tokens, root, root); | ||
| return result.childs.length === 0 ? null : result; | ||
| } | ||
| catch (e) { | ||
| return { error: e.message }; | ||
| } | ||
| }; | ||
| var __validate = function (ast) { | ||
| if (exports.isIdentifier(ast)) { | ||
| return true; | ||
| } | ||
| if (exports.isUnaryOperator(ast)) { | ||
| return ast.childs && ast.childs.length === 1 && ast.childs.every(__validate); | ||
| } | ||
| if (exports.isBinaryOperator(ast)) { | ||
| return ast.childs && ast.childs.length === 2 && ast.childs.every(__validate); | ||
| } | ||
| if (exports.isNaryOperator(ast)) { | ||
| return ast.childs && | ||
| ast.childs.length > 0 && | ||
| ast.childs.every(__validate) && | ||
| !!ast.operatorParameter.x && !!ast.operatorParameter.y && | ||
| ast.childs.length === ast.operatorParameter.y && | ||
| ast.operatorParameter.y >= ast.operatorParameter.x; | ||
| } | ||
| return true; | ||
| }; | ||
| exports.validate = function (tokens) { | ||
| try { | ||
| if (tokens.length === 0) | ||
| return true; | ||
| if (tokens.filter(function (t) { return isParenthesis(t) === ParenthesisType.open; }).length !== tokens.filter(function (t) { return isParenthesis(t) === ParenthesisType.close; }).length) | ||
| return false; | ||
| var ast = parse(tokens); | ||
| if (ast === null || exports.isSyntaxParsingError(ast)) | ||
| return false; | ||
| return __validate(ast); | ||
| } | ||
| catch (e) { | ||
| return false; | ||
| } | ||
| }; | ||
| exports.default = { | ||
| parse: parse, | ||
| getSymbolTable: getSymbolTable, | ||
| validate: exports.validate, | ||
| }; | ||
| //# sourceMappingURL=p2_syntaxAnalyzer.js.map |
| {"version":3,"file":"p2_syntaxAnalyzer.js","sourceRoot":"","sources":["../../../src/compiler/p2_syntaxAnalyzer.ts"],"names":[],"mappings":"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"} |
| // Nothing to see here | ||
| //# sourceMappingURL=p3_semanticAnalyzer.js.map |
| {"version":3,"file":"p3_semanticAnalyzer.js","sourceRoot":"","sources":["../../../src/compiler/p3_semanticAnalyzer.ts"],"names":[],"mappings":"AAAA,sBAAsB"} |
| // C'mon! What did you expect? | ||
| //# sourceMappingURL=p4_ilGenerator.js.map |
| {"version":3,"file":"p4_ilGenerator.js","sourceRoot":"","sources":["../../../src/compiler/p4_ilGenerator.ts"],"names":[],"mappings":"AAAA,8BAA8B"} |
| "use strict"; | ||
| var __assign = (this && this.__assign) || function () { | ||
| __assign = Object.assign || function(t) { | ||
| for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
| s = arguments[i]; | ||
| for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
| t[p] = s[p]; | ||
| } | ||
| return t; | ||
| }; | ||
| return __assign.apply(this, arguments); | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.optimize = void 0; | ||
| var language_1 = require("../language"); | ||
| var p2_syntaxAnalyzer_1 = require("./p2_syntaxAnalyzer"); | ||
| // ID(a) => NOT(a) | ||
| // NOT(a) => ID(a) | ||
| // a => NOT(a) | ||
| var invertUnaryOperator = function (input) { | ||
| if (p2_syntaxAnalyzer_1.isUnaryOperator(input)) { | ||
| return __assign(__assign({}, input), { operator: input.operator === language_1.Operator.id ? language_1.Operator.not : language_1.Operator.id }); | ||
| } | ||
| if (p2_syntaxAnalyzer_1.isIdentifier(input)) { | ||
| return { | ||
| operator: language_1.Operator.not, | ||
| childs: [input], | ||
| }; | ||
| } | ||
| }; | ||
| // a AND b => a OR b | ||
| // a OR b => a AND b | ||
| var invertBinaryOperator = function (input) { | ||
| if (!p2_syntaxAnalyzer_1.isBinaryOperator(input)) { | ||
| throw new Error("No binary operator"); | ||
| } | ||
| return __assign(__assign({}, input), { operator: input.operator === language_1.Operator.and ? language_1.Operator.or : language_1.Operator.and }); | ||
| }; | ||
| var __optimize = function (input) { | ||
| if (!p2_syntaxAnalyzer_1.isOperator(input)) | ||
| return input; | ||
| if (p2_syntaxAnalyzer_1.isUnaryOperator(input)) { | ||
| var operand = input.childs[0]; | ||
| // NOT (NOT a) => ID(a), ID(ID(a)) => ID(a) | ||
| if (p2_syntaxAnalyzer_1.isUnaryOperator(operand) && input.operator === operand.operator) { | ||
| return __optimize({ | ||
| operator: language_1.Operator.id, | ||
| childs: operand.childs.map(__optimize), | ||
| }); | ||
| } | ||
| // ID (NOT a) => NOT(a), NOT(ID (a)) => NOT(a) | ||
| if (p2_syntaxAnalyzer_1.isUnaryOperator(operand) && input.operator !== operand.operator) { | ||
| return __optimize({ | ||
| operator: language_1.Operator.not, | ||
| childs: operand.childs.map(__optimize), | ||
| }); | ||
| } | ||
| } | ||
| if (p2_syntaxAnalyzer_1.isBinaryOperator(input)) { | ||
| // a AND a => ID(a), a OR a => ID(a) | ||
| if (input.childs.every(function (c) { return !p2_syntaxAnalyzer_1.isOperator(c); }) && input.childs[0][1] === input.childs[1][1]) { | ||
| return { | ||
| operator: language_1.Operator.id, | ||
| childs: [input.childs[0]].map(__optimize), | ||
| }; | ||
| } | ||
| } | ||
| // NOT (a AND b) => NOT(a) OR NOT(b) | ||
| // NOT (a OR b) => NOT(a) AND NOT(b) | ||
| if (p2_syntaxAnalyzer_1.isUnaryOperator(input) && input.operator === language_1.Operator.not && p2_syntaxAnalyzer_1.isBinaryOperator(input.childs[0])) { | ||
| var operand = input.childs[0]; | ||
| return __optimize({ | ||
| operator: invertBinaryOperator(operand).operator, | ||
| childs: [ | ||
| invertUnaryOperator(operand.childs[0]), | ||
| invertUnaryOperator(operand.childs[1]), | ||
| ] | ||
| }); | ||
| } | ||
| // 1/1 a => a | ||
| if (p2_syntaxAnalyzer_1.isNaryOperator(input) && input.operatorParameter.x === 1 && input.operatorParameter.y === 1) { | ||
| return __optimize(input.childs[0]); | ||
| } | ||
| return __assign(__assign({}, input), { childs: input.childs.map(__optimize) }); | ||
| }; | ||
| exports.optimize = function (input) { | ||
| if (p2_syntaxAnalyzer_1.isSyntaxParsingError(input)) | ||
| throw new Error('cannot-optimize-error'); | ||
| return __optimize(input); | ||
| }; | ||
| exports.default = { | ||
| optimize: exports.optimize, | ||
| }; | ||
| //# sourceMappingURL=p5_optimizer.js.map |
| {"version":3,"file":"p5_optimizer.js","sourceRoot":"","sources":["../../../src/compiler/p5_optimizer.ts"],"names":[],"mappings":"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"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var __simplify = function (result, tokens) { | ||
| return tokens; | ||
| }; | ||
| var simplify = function (tokens) { return __simplify([], tokens); }; | ||
| exports.default = simplify; | ||
| //# sourceMappingURL=simplify.js.map |
| {"version":3,"file":"simplify.js","sourceRoot":"","sources":["../../../src/compiler/simplify.ts"],"names":[],"mappings":";;AAGA,IAAM,UAAU,GAAG,UAAC,MAAgB,EAAE,MAAgB;IAClD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,IAAM,QAAQ,GAAG,UAAC,MAAgB,IAAe,OAAA,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,EAAtB,CAAsB,CAAC;AAExE,kBAAe,QAAQ,CAAC"} |
| "use strict"; | ||
| var __assign = (this && this.__assign) || function () { | ||
| __assign = Object.assign || function(t) { | ||
| for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
| s = arguments[i]; | ||
| for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
| t[p] = s[p]; | ||
| } | ||
| return t; | ||
| }; | ||
| return __assign.apply(this, arguments); | ||
| }; | ||
| var __values = (this && this.__values) || function(o) { | ||
| var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; | ||
| if (m) return m.call(o); | ||
| if (o && typeof o.length === "number") return { | ||
| next: function () { | ||
| if (o && i >= o.length) o = void 0; | ||
| return { value: o && o[i++], done: !o }; | ||
| } | ||
| }; | ||
| throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); | ||
| }; | ||
| var __read = (this && this.__read) || function (o, n) { | ||
| var m = typeof Symbol === "function" && o[Symbol.iterator]; | ||
| if (!m) return o; | ||
| var i = m.call(o), r, ar = [], e; | ||
| try { | ||
| while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); | ||
| } | ||
| catch (error) { e = { error: error }; } | ||
| finally { | ||
| try { | ||
| if (r && !r.done && (m = i["return"])) m.call(i); | ||
| } | ||
| finally { if (e) throw e.error; } | ||
| } | ||
| return ar; | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.identifyOperator = exports.isSeparator = exports.isParenthesis = exports.isWhitespace = exports.Operator = void 0; | ||
| var BooleanOperator; | ||
| (function (BooleanOperator) { | ||
| BooleanOperator["and"] = "AND"; | ||
| BooleanOperator["or"] = "OR"; | ||
| BooleanOperator["not"] = "NOT"; | ||
| BooleanOperator["id"] = "ID"; | ||
| })(BooleanOperator || (BooleanOperator = {})); | ||
| var AdvancedOperator; | ||
| (function (AdvancedOperator) { | ||
| AdvancedOperator["xOfy"] = "X/Y"; | ||
| AdvancedOperator["unknown"] = "UNKNOWN"; | ||
| })(AdvancedOperator || (AdvancedOperator = {})); | ||
| exports.Operator = __assign(__assign({}, BooleanOperator), AdvancedOperator); | ||
| exports.isWhitespace = function (char) { return char === " "; }; | ||
| exports.isParenthesis = function (char) { return char === "(" || char === ")"; }; | ||
| exports.isSeparator = function (char) { return exports.isWhitespace(char) || exports.isParenthesis(char); }; | ||
| var isBooleanOperator = function (token) { return Object.values(BooleanOperator).some(function (o) { return o === token; }); }; | ||
| var advancedOperators = new Map([ | ||
| [exports.Operator.xOfy, function (token) { return token.match(/^\d\/\d$/); }], | ||
| ]); | ||
| var identifyAdvancedOperator = function (token) { | ||
| var e_1, _a; | ||
| try { | ||
| for (var _b = __values(advancedOperators.entries()), _c = _b.next(); !_c.done; _c = _b.next()) { | ||
| var _d = __read(_c.value, 2), operatorType = _d[0], operatorDefinition = _d[1]; | ||
| var opDef = operatorDefinition(token); | ||
| if (opDef) | ||
| return operatorType; | ||
| } | ||
| } | ||
| catch (e_1_1) { e_1 = { error: e_1_1 }; } | ||
| finally { | ||
| try { | ||
| if (_c && !_c.done && (_a = _b.return)) _a.call(_b); | ||
| } | ||
| finally { if (e_1) throw e_1.error; } | ||
| } | ||
| return exports.Operator.unknown; | ||
| }; | ||
| exports.identifyOperator = function (token) { | ||
| return isBooleanOperator(token) | ||
| ? token | ||
| : identifyAdvancedOperator(token); | ||
| }; | ||
| //# sourceMappingURL=index.js.map |
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/language/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAK,eAKJ;AALD,WAAK,eAAe;IAChB,8BAAW,CAAA;IACX,4BAAS,CAAA;IACT,8BAAW,CAAA;IACX,4BAAS,CAAA;AACb,CAAC,EALI,eAAe,KAAf,eAAe,QAKnB;AACD,IAAK,gBAGJ;AAHD,WAAK,gBAAgB;IACjB,gCAAY,CAAA;IACZ,uCAAmB,CAAA;AACvB,CAAC,EAHI,gBAAgB,KAAhB,gBAAgB,QAGpB;AACY,QAAA,QAAQ,yBAAQ,eAAe,GAAK,gBAAgB,EAAG;AAGvD,QAAA,YAAY,GAAG,UAAC,IAAY,IAAyB,OAAA,IAAI,KAAK,GAAG,EAAZ,CAAY,CAAC;AAClE,QAAA,aAAa,GAAG,UAAC,IAAY,IAA0B,OAAA,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAA5B,CAA4B,CAAC;AACpF,QAAA,WAAW,GAAG,UAAC,IAAY,IAAwB,OAAA,oBAAY,CAAC,IAAI,CAAC,IAAI,qBAAa,CAAC,IAAI,CAAC,EAAzC,CAAyC,CAAC;AAE1G,IAAM,iBAAiB,GAAG,UAAC,KAAa,IAAwB,OAAA,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,KAAK,KAAK,EAAX,CAAW,CAAC,EAAvD,CAAuD,CAAC;AAExH,IAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAC9B,CAAC,gBAAQ,CAAC,IAAI,EAAE,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAvB,CAAuB,CAAC;CACtD,CAAC,CAAC;AAEH,IAAM,wBAAwB,GAAG,UAAC,KAAa;;;QAC3C,KAGK,IAAA,KAAA,SAAA,iBAAiB,CAAC,OAAO,EAAE,CAAA,gBAAA,4BAAE;YAHzB,IAAA,KAAA,mBAGR,EAFG,YAAY,QAAA,EACZ,kBAAkB,QAAA;YAElB,IAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,KAAK;gBAAE,OAAO,YAAY,CAAC;SAClC;;;;;;;;;IACD,OAAO,gBAAQ,CAAC,OAAO,CAAC;AAC5B,CAAC,CAAC;AAEW,QAAA,gBAAgB,GAAG,UAAC,KAAa;IAC1C,OAAO,iBAAiB,CAAC,KAAK,CAAC;QAC3B,CAAC,CAAW,KAAK;QACjB,CAAC,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC,CAAC"} |
| "use strict"; | ||
| var __assign = (this && this.__assign) || function () { | ||
| __assign = Object.assign || function(t) { | ||
| for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
| s = arguments[i]; | ||
| for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
| t[p] = s[p]; | ||
| } | ||
| return t; | ||
| }; | ||
| return __assign.apply(this, arguments); | ||
| }; | ||
| var _a; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.runWithTruthArray = exports.importTruthArrayToSymbolTable = exports.run = exports.isExpression = void 0; | ||
| var language_1 = require("../language"); | ||
| var p1_lexicalAnalyzer_1 = require("../compiler/p1_lexicalAnalyzer"); | ||
| var p2_syntaxAnalyzer_1 = require("../compiler/p2_syntaxAnalyzer"); | ||
| var p5_optimizer_1 = require("../compiler/p5_optimizer"); | ||
| var reduce_1 = require("./reduce"); | ||
| exports.isExpression = function (x) { | ||
| return "result" in x; | ||
| }; | ||
| var operatorFunctions = (_a = {}, | ||
| _a[language_1.Operator.id] = function (_, operands) { | ||
| return !!operands[0]; | ||
| }, | ||
| _a[language_1.Operator.not] = function (_, operands) { | ||
| return !operands[0]; | ||
| }, | ||
| _a[language_1.Operator.and] = function (_, operands) { | ||
| return operands[0] && operands[1]; | ||
| }, | ||
| _a[language_1.Operator.or] = function (_, operands) { | ||
| return operands[0] || operands[1]; | ||
| }, | ||
| _a[language_1.Operator.xOfy] = function (params, operands) { | ||
| return operands.filter(function (x) { return !!x; }).length >= params.x; | ||
| }, | ||
| _a); | ||
| var __run = function (symbolTable) { return function (expression) { | ||
| if (expression === null) | ||
| return true; | ||
| if (p2_syntaxAnalyzer_1.isIdentifier(expression)) { | ||
| var symbol = symbolTable[expression[1]]; | ||
| if (!symbol) | ||
| throw new Error('identifier-not-found-in-symbol-table'); | ||
| return !!symbol.value; | ||
| } | ||
| var operatorFunction = operatorFunctions[expression.operator]; | ||
| if (!operatorFunction) | ||
| throw new Error(" operator-function-not-found"); | ||
| expression.result = operatorFunction(expression.operatorParameter, expression.childs.map(__run(symbolTable))); | ||
| return expression.result; | ||
| }; }; | ||
| exports.run = function (expression) { return function (symbolTable) { | ||
| return __run(symbolTable)(expression); | ||
| }; }; | ||
| exports.importTruthArrayToSymbolTable = function (truthArray, symbolTable) { | ||
| var truthifiedSymbolTable = __assign({}, symbolTable); | ||
| truthArray.forEach(function (truth) { return (truthifiedSymbolTable[truth] || {}).value = true; }); | ||
| return truthifiedSymbolTable; | ||
| }; | ||
| exports.runWithTruthArray = function (expression) { return function (state) { | ||
| var tokens = p1_lexicalAnalyzer_1.tokenize(expression); | ||
| var ast = p5_optimizer_1.default.optimize(p2_syntaxAnalyzer_1.default.parse(tokens)); | ||
| var symbolTable = p2_syntaxAnalyzer_1.default.getSymbolTable(ast, {}); | ||
| var result = exports.run(ast)(exports.importTruthArrayToSymbolTable(state, symbolTable)); | ||
| return result; | ||
| }; }; | ||
| exports.default = { | ||
| runWithTruthArray: exports.runWithTruthArray, | ||
| run: exports.run, | ||
| reduce: reduce_1.reduce, | ||
| }; | ||
| //# sourceMappingURL=index.js.map |
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"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"} |
| "use strict"; | ||
| var __assign = (this && this.__assign) || function () { | ||
| __assign = Object.assign || function(t) { | ||
| for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
| s = arguments[i]; | ||
| for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
| t[p] = s[p]; | ||
| } | ||
| return t; | ||
| }; | ||
| return __assign.apply(this, arguments); | ||
| }; | ||
| var _a; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.reduce = void 0; | ||
| var language_1 = require("../language"); | ||
| var p1_lexicalAnalyzer_1 = require("../compiler/p1_lexicalAnalyzer"); | ||
| var p2_syntaxAnalyzer_1 = require("../compiler/p2_syntaxAnalyzer"); | ||
| var p5_optimizer_1 = require("../compiler/p5_optimizer"); | ||
| var _1 = require("."); | ||
| var sourceGenerator_1 = require("../sourceGenerator"); | ||
| var getNodeValue = function (symbolTable, node) { | ||
| if (!node) | ||
| return true; | ||
| if (p2_syntaxAnalyzer_1.isIdentifier(node)) { | ||
| var symbol = symbolTable[node[1]]; | ||
| if (!symbol) | ||
| throw new Error("identifier-not-found-in-symbol-table"); | ||
| return !!symbol.value; | ||
| } | ||
| return node.result; | ||
| }; | ||
| var reduceFunctions = (_a = {}, | ||
| _a[language_1.Operator.id] = function (symbolTable) { return function (_, operands) { | ||
| return getNodeValue(symbolTable, operands[0]) ? [] : operands; | ||
| }; }, | ||
| _a[language_1.Operator.not] = function (symbolTable) { return function (_, operands) { | ||
| return getNodeValue(symbolTable, operands[0]) ? operands : []; | ||
| }; }, | ||
| _a[language_1.Operator.and] = function (symbolTable) { return function (_, operands) { | ||
| var d = operands.map(function (x) { return __reduce(symbolTable)(x); }); | ||
| return d.filter(function (x) { return !getNodeValue(symbolTable, x); }); | ||
| }; }, | ||
| _a[language_1.Operator.or] = function (symbolTable) { return function (_, operands) { | ||
| var d = operands.map(function (x) { return __reduce(symbolTable)(x); }); | ||
| return d.filter(function (x) { return !getNodeValue(symbolTable, x); }).length > 0 ? d : []; | ||
| }; }, | ||
| _a[language_1.Operator.xOfy] = function (symbolTable) { return function (params, operands) { | ||
| var d = operands.map(function (x) { return __reduce(symbolTable)(x); }); | ||
| return d.filter(function (x) { return !getNodeValue(symbolTable, x); }); | ||
| }; }, | ||
| _a); | ||
| var __reduce = function (symbolTable) { return function (expression) { | ||
| if (expression === null) | ||
| return null; | ||
| if (p2_syntaxAnalyzer_1.isIdentifier(expression)) { | ||
| return getNodeValue(symbolTable, expression) ? null : expression; | ||
| } | ||
| if (_1.isExpression(expression) && expression.result) | ||
| return null; | ||
| var reduceFunction = reduceFunctions[expression.operator]; | ||
| if (!reduceFunction) | ||
| throw new Error(" operator-function-not-found"); | ||
| var childs = reduceFunction(symbolTable)(expression.operatorParameter, expression.childs); | ||
| if (childs && childs.length === 1 && p2_syntaxAnalyzer_1.isBinaryOperator(expression)) { | ||
| // only 1 of the 2 childs of a binary operator is false, so the operator is dismissed and only the operand stays | ||
| return childs[0]; | ||
| } | ||
| if (p2_syntaxAnalyzer_1.isNaryOperator(expression)) { | ||
| var diff = expression.childs.length - childs.length; | ||
| return __assign(__assign({}, expression), { operatorParameter: { x: expression.operatorParameter.x - diff, y: expression.operatorParameter.y - diff }, childs: childs }); | ||
| } | ||
| var result = __assign(__assign({}, expression), { childs: childs }); | ||
| return result; | ||
| }; }; | ||
| exports.reduce = function (expression) { return function (state) { | ||
| var tokens = p1_lexicalAnalyzer_1.tokenize(expression); | ||
| var ast = p5_optimizer_1.optimize(p2_syntaxAnalyzer_1.default.parse(tokens)); | ||
| var symbolTable = p2_syntaxAnalyzer_1.default.getSymbolTable(ast, {}); | ||
| var symbolTableWithValues = _1.importTruthArrayToSymbolTable(state, symbolTable); | ||
| _1.run(ast)(_1.importTruthArrayToSymbolTable(state, symbolTable)); | ||
| var result = p5_optimizer_1.optimize(__reduce(symbolTableWithValues)(ast)); | ||
| var str = sourceGenerator_1.default(result); | ||
| return str; | ||
| }; }; | ||
| //# sourceMappingURL=reduce.js.map |
| {"version":3,"file":"reduce.js","sourceRoot":"","sources":["../../../src/runtime/reduce.ts"],"names":[],"mappings":"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"} |
| "use strict"; | ||
| var _a; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var p2_syntaxAnalyzer_1 = require("../compiler/p2_syntaxAnalyzer"); | ||
| var language_1 = require("../language"); | ||
| var stringificationFunctions = (_a = {}, | ||
| _a[language_1.Operator.id] = function (_, node) { | ||
| return node.childs ? node.childs[0][1] : ""; | ||
| }, | ||
| _a[language_1.Operator.not] = function (_, node) { | ||
| return "NOT " + node.childs[0][1]; | ||
| }, | ||
| _a[language_1.Operator.and] = function (_, node) { | ||
| return __toStringNonRoot(node.childs[0]) + " AND " + __toStringNonRoot(node.childs[1]); | ||
| }, | ||
| _a[language_1.Operator.or] = function (_, node) { | ||
| return __toStringNonRoot(node.childs[0]) + " OR " + __toStringNonRoot(node.childs[1]); | ||
| }, | ||
| _a[language_1.Operator.xOfy] = function (params, node) { | ||
| return params.x + "/" + params.y + " " + node.childs | ||
| .map(function (c) { return __toStringNonRoot(c); }) | ||
| .reduce(function (agg, cur) { return agg + " " + cur; }); | ||
| }, | ||
| _a); | ||
| var __toString = function (isRoot) { return function (ast) { | ||
| if (!ast) | ||
| return ""; | ||
| if (p2_syntaxAnalyzer_1.isOperator(ast)) { | ||
| return "" + (!isRoot ? "(" : "") + stringificationFunctions[ast.operator](ast.operatorParameter, ast) + (!isRoot ? ")" : ""); | ||
| } | ||
| return ast[1]; | ||
| }; }; | ||
| var __toStringNonRoot = __toString(false); | ||
| exports.default = __toString(true); | ||
| //# sourceMappingURL=index.js.map |
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sourceGenerator/index.ts"],"names":[],"mappings":";;;AAAA,mEAAqF;AACrF,wCAAuC;AAEvC,IAAM,wBAAwB;IAC1B,GAAC,mBAAQ,CAAC,EAAE,IAAG,UAAC,CAAC,EAAE,IAAkB;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,CAAC;IACD,GAAC,mBAAQ,CAAC,GAAG,IAAG,UAAC,CAAC,EAAE,IAAkB;QAClC,OAAO,SAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAG,CAAC;IACtC,CAAC;IACD,GAAC,mBAAQ,CAAC,GAAG,IAAG,UAAC,CAAC,EAAE,IAAkB;QAClC,OAAU,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAQ,iBAAiB,CAChE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CACf,CAAC;IACR,CAAC;IACD,GAAC,mBAAQ,CAAC,EAAE,IAAG,UAAC,CAAC,EAAE,IAAkB;QACjC,OAAU,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAO,iBAAiB,CAC/D,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CACf,CAAC;IACR,CAAC;IACD,GAAC,mBAAQ,CAAC,IAAI,IAAG,UAAC,MAAM,EAAE,IAAkB;QACxC,OAAU,MAAM,CAAC,CAAC,SAAI,MAAM,CAAC,CAAC,SAAI,IAAI,CAAC,MAAM;aACxC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,iBAAiB,CAAC,CAAC,CAAC,EAApB,CAAoB,CAAC;aAChC,MAAM,CAAC,UAAC,GAAG,EAAE,GAAG,IAAK,OAAA,GAAG,GAAG,GAAG,GAAG,GAAG,EAAf,CAAe,CAAG,CAAC;IACjD,CAAC;OACJ,CAAC;AAEF,IAAM,UAAU,GAAG,UAAC,MAAe,IAAK,OAAA,UAAC,GAAe;IACpD,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,IAAI,8BAAU,CAAC,GAAG,CAAC,EAAE;QACjB,OAAO,MAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAG,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,CACjE,GAAG,CAAC,iBAAiB,EACrB,GAAG,CACN,IAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;KAC5B;IACD,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,EATuC,CASvC,CAAC;AAEF,IAAM,iBAAiB,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AAE5C,kBAAe,UAAU,CAAC,IAAI,CAAC,CAAC"} |
+11
-8
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var reduce_1 = require("./src/reduce"); | ||
| exports.reduce = reduce_1.default; | ||
| var calculate_1 = require("./src/calculate"); | ||
| exports.calculate = calculate_1.default; | ||
| var fetchVariables_1 = require("./src/fetchVariables"); | ||
| exports.fetchVariables = fetchVariables_1.default; | ||
| var validate_1 = require("./src/validate"); | ||
| exports.validate = validate_1.default; | ||
| var p1_lexicalAnalyzer_1 = require("./src/compiler/p1_lexicalAnalyzer"); | ||
| var p2_syntaxAnalyzer_1 = require("./src/compiler/p2_syntaxAnalyzer"); | ||
| var runtime_1 = require("./src/runtime"); | ||
| var utils_1 = require("./utils"); | ||
| exports.default = { | ||
| reduce: runtime_1.default.reduce, | ||
| calculate: runtime_1.default.runWithTruthArray, | ||
| fetchVariables: p1_lexicalAnalyzer_1.default.getAllIdentifiers, | ||
| // legacy support for untokenized string inputs | ||
| validate: function (input) { return utils_1.pipe(p1_lexicalAnalyzer_1.default.tokenize(input), p2_syntaxAnalyzer_1.default.validate)(input); } | ||
| }; | ||
| //# sourceMappingURL=index.js.map |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;AAAA,uCAAkC;AAM9B,iBANG,gBAAM,CAMH;AALV,6CAAwC;AAMpC,oBANG,mBAAS,CAMH;AALb,uDAAkD;AAM9C,yBANG,wBAAc,CAMH;AALlB,2CAAsC;AAMlC,mBANG,kBAAQ,CAMH"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;AAAA,wEAAgE;AAChE,sEAA8D;AAC9D,yCAAoC;AACpC,iCAA+B;AAE/B,kBAAe;IAEX,MAAM,EAAE,iBAAO,CAAC,MAAM;IAEtB,SAAS,EAAE,iBAAO,CAAC,iBAAiB;IAEpC,cAAc,EAAE,4BAAe,CAAC,iBAAiB;IAEjD,+CAA+C;IAC/C,QAAQ,EAAE,UAAC,KAAa,IAAc,OAAA,YAAI,CAAC,4BAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,2BAAc,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAArE,CAAqE;CAE9G,CAAC"} |
+390
-188
| "use strict"; | ||
| var __read = (this && this.__read) || function (o, n) { | ||
| var m = typeof Symbol === "function" && o[Symbol.iterator]; | ||
| if (!m) return o; | ||
| var i = m.call(o), r, ar = [], e; | ||
| try { | ||
| while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); | ||
| } | ||
| catch (error) { e = { error: error }; } | ||
| finally { | ||
| try { | ||
| if (r && !r.done && (m = i["return"])) m.call(i); | ||
| } | ||
| finally { if (e) throw e.error; } | ||
| } | ||
| return ar; | ||
| }; | ||
| var __spread = (this && this.__spread) || function () { | ||
| for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); | ||
| return ar; | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| /* eslint max-len: "off" */ | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var chai_1 = require("chai"); | ||
| var _1 = require("."); | ||
| var calculate_1 = require("./src/calculate"); | ||
| var tokenize_1 = require("./src/compiler/tokenize"); | ||
| var structure_1 = require("./src/compiler/structure"); | ||
| var executeSpec = function (testFunction) { return function (testInput) { | ||
| var expression = testInput[0], state = testInput[1], expectedResult = testInput[2]; | ||
| it("should " + testFunction.name + " \"" + expression + "\" if " + state + " to be " + expectedResult, function () { | ||
| chai_1.expect(testFunction(expression, state)).to.deep.eq(expectedResult); | ||
| }); | ||
| }; }; | ||
| describe('tokenization', function () { | ||
| var chai = require("chai"); | ||
| var chai_exclude_1 = require("chai-exclude"); | ||
| var utils_1 = require("./utils"); | ||
| var p1_lexicalAnalyzer_1 = require("./src/compiler/p1_lexicalAnalyzer"); | ||
| var p2_syntaxAnalyzer_1 = require("./src/compiler/p2_syntaxAnalyzer"); | ||
| var p5_optimizer_1 = require("./src/compiler/p5_optimizer"); | ||
| var runtime_1 = require("./src/runtime"); | ||
| var language_1 = require("./src/language"); | ||
| var sourceGenerator_1 = require("./src/sourceGenerator"); | ||
| chai.use(chai_exclude_1.default); | ||
| var expect = chai.expect; | ||
| var execute = function () { | ||
| var executionPipeline = []; | ||
| for (var _i = 0; _i < arguments.length; _i++) { | ||
| executionPipeline[_i] = arguments[_i]; | ||
| } | ||
| return function (testInput) { | ||
| var hasState = testInput.length > 2; | ||
| var _a = __read(hasState | ||
| ? testInput | ||
| : [testInput[0], null, testInput[1]], 3), expression = _a[0], state = _a[1], expectedResult = _a[2]; | ||
| var spec = executionPipeline[executionPipeline.length - 1]; | ||
| it("should " + spec.name + " \"" + expression + "\" " + (hasState ? "if " + state + " " : "") + " to be " + JSON.stringify(expectedResult, function (k, v) { return k && v && typeof v !== "number" ? (Array.isArray(v) ? "[object Array]" : "" + v) : v; }), function () { | ||
| var result = utils_1.pipe.apply(void 0, __spread(executionPipeline))(testInput[0]); | ||
| if (hasState) | ||
| result = result(state); | ||
| if (result === null) { | ||
| expect(result).to.deep.eq(expectedResult); | ||
| } | ||
| else if (typeof result === 'boolean' || typeof result === 'string') { | ||
| expect(result).to.deep.eq(expectedResult); | ||
| } | ||
| else { | ||
| expect(result).excludingEvery(['debug', 'parent']).to.deep.eq(expectedResult); | ||
| } | ||
| }); | ||
| }; | ||
| }; | ||
| var identifiers = function () { | ||
| var tokenStrings = []; | ||
| for (var _i = 0; _i < arguments.length; _i++) { | ||
| tokenStrings[_i] = arguments[_i]; | ||
| } | ||
| return tokenStrings.map(function (ts) { return p1_lexicalAnalyzer_1.default.tokenize(ts); }).reduce(function (p, cur) { return __spread(p, cur); }); | ||
| }; | ||
| var tokenize = p1_lexicalAnalyzer_1.default.tokenize; | ||
| var Trump = runtime_1.default.reduce; | ||
| describe('Phase 1: Lexical Analysis', function () { | ||
| [ | ||
| ['a AND b', null, ['a', 'AND', 'b']], | ||
| [' a AND b ', null, ['a', 'AND', 'b']], | ||
| ['(a AND b)', null, ['(', 'a', 'AND', 'b', ')']], | ||
| ['2/3 a b c', null, ['2/3', 'a', 'b', 'c']], | ||
| ['((a AND b) OR (c AND d)) OR e', null, ['(', '(', 'a', 'AND', 'b', ')', 'OR', '(', 'c', 'AND', 'd', ')', ')', 'OR', 'e']], | ||
| ['2/3 a b (1/2 c d)', null, ['2/3', 'a', 'b', '(', '1/2', 'c', 'd', ')']], | ||
| ['1/3 b ((3/4 c d e f) AND (g OR h))', null, ['1/3', 'b', '(', '(', '3/4', 'c', 'd', 'e', 'f', ')', 'AND', '(', 'g', 'OR', 'h', ')', ')']], | ||
| ].forEach(executeSpec(tokenize_1.default)); | ||
| ['', []], | ||
| ['a', [[p1_lexicalAnalyzer_1.TokenType.identifier, 'a']]], | ||
| ['NOT a', [[p1_lexicalAnalyzer_1.TokenType.operator, 'NOT'], [p1_lexicalAnalyzer_1.TokenType.identifier, 'a']]], | ||
| ['a AND b', [[p1_lexicalAnalyzer_1.TokenType.identifier, 'a'], [p1_lexicalAnalyzer_1.TokenType.operator, 'AND'], [p1_lexicalAnalyzer_1.TokenType.identifier, 'b']]], | ||
| [' a AND b ', [[p1_lexicalAnalyzer_1.TokenType.identifier, 'a'], [p1_lexicalAnalyzer_1.TokenType.operator, 'AND'], [p1_lexicalAnalyzer_1.TokenType.identifier, 'b']]], | ||
| ['(a AND b)', [[p1_lexicalAnalyzer_1.TokenType.separator, '('], [p1_lexicalAnalyzer_1.TokenType.identifier, 'a'], [p1_lexicalAnalyzer_1.TokenType.operator, 'AND'], [p1_lexicalAnalyzer_1.TokenType.identifier, 'b'], [p1_lexicalAnalyzer_1.TokenType.separator, ')']]], | ||
| ['2/3 a b c', [[p1_lexicalAnalyzer_1.TokenType.operator, '2/3'], [p1_lexicalAnalyzer_1.TokenType.identifier, 'a'], [p1_lexicalAnalyzer_1.TokenType.identifier, 'b'], [p1_lexicalAnalyzer_1.TokenType.identifier, 'c']]], | ||
| ['((a AND b) OR (c AND d)) OR e', [[p1_lexicalAnalyzer_1.TokenType.separator, '('], [p1_lexicalAnalyzer_1.TokenType.separator, '('], [p1_lexicalAnalyzer_1.TokenType.identifier, 'a'], [p1_lexicalAnalyzer_1.TokenType.operator, 'AND'], [p1_lexicalAnalyzer_1.TokenType.identifier, 'b'], [p1_lexicalAnalyzer_1.TokenType.separator, ')'], [p1_lexicalAnalyzer_1.TokenType.operator, 'OR'], [p1_lexicalAnalyzer_1.TokenType.separator, '('], [p1_lexicalAnalyzer_1.TokenType.identifier, 'c'], [p1_lexicalAnalyzer_1.TokenType.operator, 'AND'], [p1_lexicalAnalyzer_1.TokenType.identifier, 'd'], [p1_lexicalAnalyzer_1.TokenType.separator, ')'], [p1_lexicalAnalyzer_1.TokenType.separator, ')'], [p1_lexicalAnalyzer_1.TokenType.operator, 'OR'], [p1_lexicalAnalyzer_1.TokenType.identifier, 'e']]], | ||
| ['2/3 a b (1/2 c d)', [[p1_lexicalAnalyzer_1.TokenType.operator, '2/3'], [p1_lexicalAnalyzer_1.TokenType.identifier, 'a'], [p1_lexicalAnalyzer_1.TokenType.identifier, 'b'], [p1_lexicalAnalyzer_1.TokenType.separator, '('], [p1_lexicalAnalyzer_1.TokenType.operator, '1/2'], [p1_lexicalAnalyzer_1.TokenType.identifier, 'c'], [p1_lexicalAnalyzer_1.TokenType.identifier, 'd'], [p1_lexicalAnalyzer_1.TokenType.separator, ')']]], | ||
| ['1/3 b ((3/4 c d e f) AND (g OR h))', [[p1_lexicalAnalyzer_1.TokenType.operator, '1/3'], [p1_lexicalAnalyzer_1.TokenType.identifier, 'b'], [p1_lexicalAnalyzer_1.TokenType.separator, '('], [p1_lexicalAnalyzer_1.TokenType.separator, '('], [p1_lexicalAnalyzer_1.TokenType.operator, '3/4'], [p1_lexicalAnalyzer_1.TokenType.identifier, 'c'], [p1_lexicalAnalyzer_1.TokenType.identifier, 'd'], [p1_lexicalAnalyzer_1.TokenType.identifier, 'e'], [p1_lexicalAnalyzer_1.TokenType.identifier, 'f'], [p1_lexicalAnalyzer_1.TokenType.separator, ')'], [p1_lexicalAnalyzer_1.TokenType.operator, 'AND'], [p1_lexicalAnalyzer_1.TokenType.separator, '('], [p1_lexicalAnalyzer_1.TokenType.identifier, 'g'], [p1_lexicalAnalyzer_1.TokenType.operator, 'OR'], [p1_lexicalAnalyzer_1.TokenType.identifier, 'h'], [p1_lexicalAnalyzer_1.TokenType.separator, ')'], [p1_lexicalAnalyzer_1.TokenType.separator, ')']]], | ||
| ].forEach(execute(p1_lexicalAnalyzer_1.default.tokenize)); | ||
| }); | ||
| describe('structuring', function () { | ||
| describe("Phase 1 - Get all identifiers", function () { | ||
| [ | ||
| [['a', 'AND', 'b'], null, ['a', 'AND', 'b']], | ||
| [['(', 'a', 'AND', 'b', ')'], null, [['a', 'AND', 'b']]], | ||
| [['2/3', 'a', 'b', 'c'], null, ['2/3', 'X/Y', 'a', 'b', 'c']], | ||
| [['(', '(', 'a', 'AND', 'b', ')', ')', 'OR', 'e'], null, [[['a', 'AND', 'b']], 'OR', 'e']], | ||
| [['(', '(', 'a', 'AND', 'b', ')', 'OR', '(', 'c', 'AND', 'd', ')', ')', 'OR', 'e'], null, [[['a', 'AND', 'b'], 'OR', ['c', 'AND', 'd']], 'OR', 'e']], | ||
| [['2/3', 'a', 'b', '(', '1/2', 'c', 'd', ')'], null, ['2/3', 'X/Y', 'a', 'b', ['1/2', 'X/Y', 'c', 'd']]], | ||
| [['(', '2/3', 'a', 'b', 'c', ')', 'AND', '(', 'd', 'OR', 'e', ')'], null, [['2/3', 'X/Y', 'a', 'b', 'c'], 'AND', ['d', 'OR', 'e']]], | ||
| [['2/3', 'a', 'b', '(', '1/2', 'c', 'd', ')', 'AND', '(', 'd', 'OR', 'e', ')'], null, ['2/3', 'X/Y', 'a', 'b', ['1/2', 'X/Y', 'c', 'd'], 'AND', ['d', 'OR', 'e']]], | ||
| [['1/3', 'b', '(', '(', '3/4', 'c', 'd', 'e', 'f', ')', 'AND', '(', 'g', 'OR', 'h', ')', ')'], null, ['1/3', 'X/Y', 'b', [['3/4', 'X/Y', 'c', 'd', 'e', 'f'], 'AND', ['g', 'OR', 'h']]]], | ||
| ].forEach(executeSpec(structure_1.default)); | ||
| ["a OR b", ["a", "b"]], | ||
| ["a OR b AND (b AND c)", ["a", "b", "c"]], | ||
| ["2/3 a b (b AND c AND d)", ["a", "b", "c", "d"]], | ||
| ["a", ["a"]], | ||
| ["", []], | ||
| [undefined, []], | ||
| [null, []], | ||
| ].forEach(execute(p1_lexicalAnalyzer_1.default.getAllIdentifiers)); | ||
| }); | ||
| describe('evaluation', function () { | ||
| describe('Phase 2: Fill Symbol Table', function () { | ||
| [ | ||
| [[true, 'AND', true], null, true], | ||
| [[false, 'AND', true], null, false], | ||
| [[true, 'AND', false], null, false], | ||
| [[false, 'AND', false], null, false], | ||
| [[true, 'OR', true], null, true], | ||
| [[false, 'OR', true], null, true], | ||
| [[true, 'OR', false], null, true], | ||
| [[false, 'OR', false], null, false], | ||
| [['2/3', 'X/Y', true, true, true], null, true], | ||
| [['2/3', 'X/Y', true, true, false], null, true], | ||
| [['2/3', 'X/Y', true, false, false], null, false], | ||
| ].forEach(executeSpec(calculate_1.evaluate)); | ||
| ['', {}], | ||
| ['a', { a: { value: undefined, name: 'a' } }], | ||
| ['NOT a', { a: { value: undefined, name: 'a' } }], | ||
| ['a AND b', { a: { value: undefined, name: 'a' }, b: { value: undefined, name: 'b' } }], | ||
| [' a AND b ', { a: { value: undefined, name: 'a' }, b: { value: undefined, name: 'b' } }], | ||
| ['(a AND b)', { a: { value: undefined, name: 'a' }, b: { value: undefined, name: 'b' } }], | ||
| ['2/3 a b c', { a: { value: undefined, name: 'a' }, b: { value: undefined, name: 'b' }, c: { value: undefined, name: 'c' } }], | ||
| ].forEach(execute(tokenize, p2_syntaxAnalyzer_1.default.parse, p2_syntaxAnalyzer_1.default.getSymbolTable)); | ||
| }); | ||
| describe('calculate expression result', function () { | ||
| describe("Phase 2 - Syntax Validator", function () { | ||
| [ | ||
| ['', [], true], | ||
| ['a', ['a'], true], | ||
| ['a', ['b'], false], | ||
| ['NOT a', ['a'], false], | ||
| ['NOT a', ['b'], true], | ||
| ['NOT a', [], true], | ||
| ['NOT (a OR b)', ['a'], false], | ||
| ['a AND NOT (b OR c)', ['a'], true], | ||
| ['a AND NOT (b OR c)', ['a', 'b'], false], | ||
| ['a AND b', ['a'], false], | ||
| ['(a AND b)', ['a'], false], | ||
| ['a AND b', ['b'], false], | ||
| ['a AND b', ['a', 'b'], true], | ||
| ['(a AND b)', ['a', 'b'], true], | ||
| ['(a AND b) OR c', ['c'], true], | ||
| ['(a AND b) OR c', ['a', 'b'], true], | ||
| ['(a AND b) OR (c AND d)', ['a', 'c'], false], | ||
| ['(a AND b) OR (c AND d)', ['a', 'b'], true], | ||
| ['((a AND b) OR (c AND d)) OR e', ['e'], true], | ||
| ['2/3 a b c', ['a', 'b'], true], | ||
| ['2/3 a b c', ['a'], false], | ||
| ['2/3 a x y', ['a'], false], | ||
| ['2/3 x a y', ['a'], false], | ||
| ['2/3 x y a', ['a'], false], | ||
| ['(c AND d) OR (2/3 x y a)', ['y'], false], | ||
| ['(RKARR1 AND GKBRSTART1) OR (2/3 GKBRFORT GKBREND JVPST02)', ['GKBREND'], false], | ||
| ['2/3 a (x OR y) c', ['a', 'x'], true], | ||
| ['(2/3 a b c)', ['a'], false], | ||
| ['2/3 a b ((3/4 c d e f) AND (g OR h))', ['a', 'c', 'd', 'e', 'g'], true], | ||
| ['2/3 a b ((3/4 c d e f) AND (g OR h))', ['a', 'b', 'h'], true], | ||
| ['2/3 a b ((3/4 c d e f) AND (g OR h))', ['a', 'c', 'd', 'f'], false], | ||
| ['2/3 a b ((3/4 c d e f) AND (g OR h))', ['a', 'c', 'd', 'f', 'g'], true], | ||
| ['2/3 a b ((3/4 c d e f) OR (g OR h))', ['a', 'c', 'g'], true], | ||
| ['(2/3 a b c) AND (d OR e)', ['a'], false], | ||
| ['(a AND b) OR (c AND d) OR (2/3 a b c)', ['b', 'c'], true], | ||
| ].forEach(executeSpec(_1.calculate)); | ||
| ["", true], | ||
| ["a", true], | ||
| ["a", true], | ||
| ["NOT a", true], | ||
| ["NOT a", true], | ||
| ["NOT a", true], | ||
| ["NOT (a OR b)", true], | ||
| ["NOT (a AND b)", true], | ||
| ["a AND NOT (b OR c)", true], | ||
| ["a AND NOT (b OR c)", true], | ||
| ["a AND b", true], | ||
| ["(a AND b)", true], | ||
| ["a AND b", true], | ||
| ["a AND b", true], | ||
| ["(a AND b)", true], | ||
| ["(a AND b) OR c", true], | ||
| ["(a AND b) OR c", true], | ||
| ["(a AND b) OR (c AND d)", true], | ||
| ["(a AND b) OR (c AND d)", true], | ||
| ["((a AND b) OR (c AND d)) OR e", true], | ||
| ["2/3 a b c", true], | ||
| ["2/3 a (x OR y) c", true], | ||
| ["(2/3 a b c)", true], | ||
| ["2/3 a b ((3/4 c d e f) AND (g OR h))", true], | ||
| ["2/3 a b ((3/4 c d e f) AND (g OR h))", true], | ||
| ["2/3 a b ((3/4 c d e f) AND (g OR h))", true], | ||
| ["2/3 a b ((3/4 c d e f) AND (g OR h))", true], | ||
| ["2/3 a b ((3/4 c d e f) OR (g OR h))", true], | ||
| ["(2/3 a b c) AND (d OR e)", true], | ||
| ["(a AND b) OR (c AND d) OR (2/3 a b c)", true], | ||
| ["a OR", false], | ||
| ["a b c", false], | ||
| ["a AND", false], | ||
| ["a AND b OR", false], | ||
| ["2/3 a b", false], | ||
| ["x/y a b", false], | ||
| ["complete garbage", false], | ||
| ["(a AND b) OR (c AND d", false], | ||
| ["() AND () OR (())", false], | ||
| ["AND", false], | ||
| ].forEach(execute(p1_lexicalAnalyzer_1.default.tokenize, p2_syntaxAnalyzer_1.default.validate)); | ||
| }); | ||
| describe('fetch all variables from expression', function () { | ||
| describe('Phase 2: Parser', function () { | ||
| [ | ||
| ['a OR b', null, ['a', 'b']], | ||
| ['a OR b AND (b AND c)', null, ['a', 'b', 'c']], | ||
| ['2/3 a b (b AND c AND d)', null, ['a', 'b', 'c', 'd']], | ||
| ['a', null, ['a']], | ||
| ['', null, []], | ||
| [undefined, null, []], | ||
| [null, null, []], | ||
| ].forEach(executeSpec(_1.fetchVariables)); | ||
| ['', null], | ||
| ['a', { operator: language_1.Operator.id, childs: tokenize('a') }], | ||
| ['(a)', { operator: language_1.Operator.id, childs: [{ operator: language_1.Operator.id, childs: tokenize('a') }] }], | ||
| ['NOT a', { operator: language_1.Operator.not, childs: identifiers('a') }], | ||
| ['ID a', { operator: language_1.Operator.id, childs: identifiers('a') }], | ||
| ['NOT (NOT a)', { operator: language_1.Operator.not, childs: [{ operator: language_1.Operator.not, childs: identifiers('a') }] }], | ||
| ['a AND b', { operator: language_1.Operator.and, childs: identifiers('a', 'b') }], | ||
| ['(a AND b)', { operator: language_1.Operator.id, childs: [{ operator: language_1.Operator.and, childs: identifiers('a', 'b') }] }], | ||
| ['(a) AND (b)', { operator: language_1.Operator.and, childs: [ | ||
| { operator: language_1.Operator.id, childs: __spread(identifiers('a')) }, | ||
| { operator: language_1.Operator.id, childs: __spread(identifiers('b')) }, | ||
| ] }], | ||
| ['NOT (a AND b)', { operator: language_1.Operator.not, childs: [ | ||
| { operator: language_1.Operator.and, childs: __spread(identifiers('a', 'b')) } | ||
| ] }], | ||
| ['(a AND b) OR c', { operator: language_1.Operator.or, childs: __spread([ | ||
| { operator: language_1.Operator.and, childs: identifiers('a', 'b') } | ||
| ], identifiers('c')) }], | ||
| ['(a AND b) OR (NOT c)', { operator: language_1.Operator.or, childs: [ | ||
| { operator: language_1.Operator.and, childs: identifiers('a', 'b') }, | ||
| { operator: language_1.Operator.not, childs: identifiers('c') } | ||
| ] }], | ||
| ['a AND (b OR c)', { operator: language_1.Operator.and, childs: __spread(identifiers('a'), [ | ||
| { operator: language_1.Operator.or, childs: identifiers('b', 'c') } | ||
| ]) }], | ||
| ['(a AND b) OR (c AND d)', { operator: language_1.Operator.or, childs: [ | ||
| { operator: language_1.Operator.and, childs: identifiers('a', 'b') }, | ||
| { operator: language_1.Operator.and, childs: identifiers('c', 'd') }, | ||
| ] }], | ||
| ['2/3 a b c', { operator: language_1.Operator.xOfy, operatorParameter: { x: 2, y: 3 }, childs: __spread(identifiers('a', 'b', 'c')) }], | ||
| ['2/3 a b (c AND d)', { operator: language_1.Operator.xOfy, operatorParameter: { x: 2, y: 3 }, childs: __spread(identifiers('a', 'b'), [ | ||
| { operator: language_1.Operator.and, childs: __spread(identifiers('c', 'd')) }, | ||
| ]) }], | ||
| ['((a AND b) OR (c AND d)) OR e', { operator: language_1.Operator.or, childs: __spread([ | ||
| { operator: language_1.Operator.or, childs: [ | ||
| { operator: language_1.Operator.and, childs: __spread(identifiers('a', 'b')) }, | ||
| { operator: language_1.Operator.and, childs: __spread(identifiers('c', 'd')) } | ||
| ] } | ||
| ], identifiers('e')) }], | ||
| ['2/3 a b (1/2 c d)', { operator: language_1.Operator.xOfy, operatorParameter: { x: 2, y: 3 }, childs: __spread(identifiers('a', 'b'), [ | ||
| { operator: language_1.Operator.xOfy, operatorParameter: { x: 1, y: 2 }, childs: __spread(identifiers('c', 'd')) } | ||
| ]) }], | ||
| ['1/3 b ((3/4 c d e f) AND (g OR h))', { operator: language_1.Operator.xOfy, operatorParameter: { x: 1, y: 3 }, childs: __spread(identifiers('b'), [ | ||
| { operator: language_1.Operator.and, childs: [ | ||
| { operator: language_1.Operator.xOfy, operatorParameter: { x: 3, y: 4 }, childs: identifiers('c', 'd', 'e', 'f') }, | ||
| { operator: language_1.Operator.or, childs: identifiers('g', 'h') } | ||
| ] } | ||
| ]) }], | ||
| ["a AND NOT b", { operator: language_1.Operator.and, childs: __spread(identifiers('a'), [ | ||
| { operator: language_1.Operator.not, childs: __spread(identifiers('b')) } | ||
| ]) }], | ||
| // Legacy Compatibility | ||
| ["a AND NOT (b OR c)", { operator: language_1.Operator.and, childs: __spread(identifiers('a'), [ | ||
| { operator: language_1.Operator.not, childs: [ | ||
| { operator: language_1.Operator.or, childs: __spread(identifiers('b', 'c')) } | ||
| ] } | ||
| ]) }], | ||
| ["a OR NOT (b OR NOT c)", { operator: language_1.Operator.or, childs: __spread(identifiers('a'), [ | ||
| { operator: language_1.Operator.not, childs: [ | ||
| { operator: language_1.Operator.or, childs: __spread(identifiers('b'), [ | ||
| { operator: language_1.Operator.not, childs: __spread(identifiers('c')) } | ||
| ]) } | ||
| ] } | ||
| ]) }], | ||
| ['a OR b OR c', { operator: language_1.Operator.or, childs: __spread([ | ||
| { operator: language_1.Operator.or, childs: __spread(identifiers('a', 'b')) } | ||
| ], identifiers('c')) }], | ||
| ['a AND b AND c', { operator: language_1.Operator.and, childs: __spread([ | ||
| { operator: language_1.Operator.and, childs: __spread(identifiers('a', 'b')) } | ||
| ], identifiers('c')) }], | ||
| // Highly questionable logic, legacy compatibility | ||
| ['a AND b OR c', { operator: language_1.Operator.or, childs: __spread([ | ||
| { operator: language_1.Operator.and, childs: __spread(identifiers('a', 'b')) } | ||
| ], identifiers('c')) }], | ||
| ].forEach(execute(tokenize, p2_syntaxAnalyzer_1.default.parse)); | ||
| }); | ||
| describe('validate expression', function () { | ||
| describe('Phase 5: Optimization', function () { | ||
| [ | ||
| ['', [], true], | ||
| ['a', ['a'], true], | ||
| ['a', ['b'], true], | ||
| ['NOT a', ['a'], true], | ||
| ['NOT a', ['b'], true], | ||
| ['NOT a', [], true], | ||
| ['NOT (a OR b)', ['a'], true], | ||
| ['a AND NOT (b OR c)', ['a'], true], | ||
| ['a AND NOT (b OR c)', ['a', 'b'], true], | ||
| ['a AND b', ['a'], true], | ||
| ['(a AND b)', ['a'], true], | ||
| ['a AND b', ['b'], true], | ||
| ['a AND b', ['a', 'b'], true], | ||
| ['(a AND b)', ['a', 'b'], true], | ||
| ['(a AND b) OR c', ['c'], true], | ||
| ['(a AND b) OR c', ['a', 'b'], true], | ||
| ['(a AND b) OR (c AND d)', ['a', 'c'], true], | ||
| ['(a AND b) OR (c AND d)', ['a', 'b'], true], | ||
| ['((a AND b) OR (c AND d)) OR e', ['e'], true], | ||
| ['2/3 a b c', ['a', 'b'], true], | ||
| ['2/3 a (x OR y) c', ['a', 'x'], true], | ||
| ['(2/3 a b c)', ['a'], true], | ||
| ['2/3 a b ((3/4 c d e f) AND (g OR h))', ['a', 'c', 'd', 'e', 'g'], true], | ||
| ['2/3 a b ((3/4 c d e f) AND (g OR h))', ['a', 'b', 'h'], true], | ||
| ['2/3 a b ((3/4 c d e f) AND (g OR h))', ['a', 'c', 'd', 'f'], true], | ||
| ['2/3 a b ((3/4 c d e f) AND (g OR h))', ['a', 'c', 'd', 'f', 'g'], true], | ||
| ['2/3 a b ((3/4 c d e f) OR (g OR h))', ['a', 'c', 'g'], true], | ||
| ['(2/3 a b c) AND (d OR e)', ['a'], true], | ||
| ['(a AND b) OR (c AND d) OR (2/3 a b c)', ['b', 'c'], true], | ||
| ['a OR', null, false], | ||
| ['a AND', null, false], | ||
| ['a AND b OR', null, false], | ||
| ['2/3 a b', null, false], | ||
| ['x/y a b', null, false], | ||
| ['complete garbage', null, false], | ||
| ['(a AND b) OR (c AND d', null, false], | ||
| ['() AND () OR (())', null, false] | ||
| ].forEach(executeSpec(_1.validate)); | ||
| // Unnecessary nesting | ||
| ['(a)', { operator: language_1.Operator.id, childs: tokenize('a') }], | ||
| ['((a))', { operator: language_1.Operator.id, childs: tokenize('a') }], | ||
| //['(a) AND (b)', { operator: Op.and, childs: identifiers('a', 'b') }], | ||
| // Double Negation | ||
| ['NOT (NOT a)', { operator: language_1.Operator.id, childs: identifiers('a') }], | ||
| ['NOT (NOT (NOT a)', { operator: language_1.Operator.not, childs: identifiers('a') }], | ||
| ['NOT (NOT (NOT (NOT a)', { operator: language_1.Operator.id, childs: identifiers('a') }], | ||
| // Idempotency Law | ||
| ['a AND a', { operator: language_1.Operator.id, childs: identifiers('a') }], | ||
| ['a OR a', { operator: language_1.Operator.id, childs: identifiers('a') }], | ||
| // De'Morgan Law | ||
| ['NOT (a AND b)', { operator: language_1.Operator.or, childs: [ | ||
| { operator: language_1.Operator.not, childs: identifiers('a') }, | ||
| { operator: language_1.Operator.not, childs: identifiers('b') }, | ||
| ] | ||
| }], | ||
| ['NOT (a OR b)', { operator: language_1.Operator.and, childs: [ | ||
| { operator: language_1.Operator.not, childs: identifiers('a') }, | ||
| { operator: language_1.Operator.not, childs: identifiers('b') }, | ||
| ] | ||
| }] | ||
| ].forEach(execute(tokenize, p2_syntaxAnalyzer_1.default.parse, p5_optimizer_1.default.optimize)); | ||
| }); | ||
| describe('reduce to missing states', function () { | ||
| describe('Phase 5 - optimize all true expressions away', function () { | ||
| [ | ||
| ['', [], []], | ||
| ['', ['a'], []], | ||
| ['a', ['a'], []], | ||
| ['a', [], ['a']], | ||
| ['a', ['a', 'b'], []], | ||
| ['a OR b', ['a'], []], | ||
| ['a OR b', ['b'], []], | ||
| ['NOT a', ['a'], ['NOT', 'a']], | ||
| ['NOT a', ['b'], []], | ||
| ['NOT a', [], []], | ||
| // not supported yet | ||
| // ['NOT (a OR b)', ['a'], ['NOT', ['a', 'OR', 'b']]], | ||
| // ['NOT (a AND b)', ['a'], ['NOT', ['b']]], | ||
| ['a OR b', [], ['a', 'OR', 'b']], | ||
| ['a OR b OR c', [], ['a', 'OR', ['b', 'OR', 'c']]], | ||
| ['a OR b OR c', ['a'], []], | ||
| ['a OR b OR c', ['b'], []], | ||
| ['a OR b OR c', ['c'], []], | ||
| ['a AND b', [], ['a', 'AND', 'b']], | ||
| ['a AND b', ['a'], ['b']], | ||
| ['a AND b', ['b'], ['a']], | ||
| ['a AND b', ['a', 'b'], []], | ||
| ['(a AND b) OR c', [], [['a', 'AND', 'b'], 'OR', 'c']], | ||
| ['(a AND b) OR c', ['a', 'b'], []], | ||
| ['(a AND b) OR c', ['a'], ['b', 'OR', 'c']], | ||
| ['(a AND b) OR c', ['c'], []], | ||
| ['(a AND b) OR c', ['a', 'c'], []], | ||
| ['(a AND b) OR c', ['b', 'c'], []], | ||
| ['a AND b OR c', ['a', 'c'], []], | ||
| ['(a AND b) OR (c AND d)', ['a', 'c'], ['b', 'OR', 'd']], | ||
| ['(a AND b) OR (c AND d) OR e', ['a', 'c'], ['b', 'OR', ['d', 'OR', 'e']]], | ||
| ['(a AND b) OR (c AND d)', ['a', 'b'], []], | ||
| ['2/3 a b c', ['a'], ['1/2', 'b', 'c']], | ||
| ['2/3 a b c', ['a', 'b'], []], | ||
| ['2/3 a b c', ['a', 'c'], []], | ||
| ['2/3 a b c', ['b', 'c'], []], | ||
| ['2/3 a (x OR y) c', ['a', 'x'], []], | ||
| ['2/3 a (x OR y) c', ['a'], ['1/2', ['x', 'OR', 'y'], 'c']], | ||
| ['3/3 a (x OR y) c', [], ['3/3', 'a', ['x', 'OR', 'y'], 'c']], | ||
| ['3/3 a (x OR y) c', ['a'], ['2/2', ['x', 'OR', 'y'], 'c']], | ||
| ['3/3 a (x OR y) c', ['a', 'c'], ['1/1', ['x', 'OR', 'y']]], | ||
| ['2/3 a b ((3/4 c d e f) AND (g OR h))', ['a'], ['1/2', 'b', [['3/4', 'c', 'd', 'e', 'f'], 'AND', ['g', 'OR', 'h']]]], | ||
| ['2/3 a b ((3/4 c d e f) AND (g OR h))', ['a', 'b'], []], | ||
| ['2/3 a b ((3/4 c d e f) AND (g OR h))', ['a', 'c', 'd'], ['1/2', 'b', [['1/2', 'e', 'f'], 'AND', ['g', 'OR', 'h']]]], | ||
| ['2/3 a b ((3/4 c d e f) AND (g OR h))', ['a', 'c', 'd', 'g'], ['1/2', 'b', ['1/2', 'e', 'f']]], | ||
| ['2/3 a b ((3/4 c d e f) AND (g OR h))', ['a', 'c', 'd', 'f', 'g'], []], | ||
| ["", [], ""], | ||
| ["", ["a"], ""], | ||
| ["a", ["a"], ""], | ||
| ["a", [], "a"], | ||
| ["a", ["a", "b"], ""], | ||
| ["a OR b", ["a"], ""], | ||
| ["a OR b", ["b"], ""], | ||
| ["a OR b", [], "a OR b"], | ||
| ["NOT a", ["a"], "NOT a"], | ||
| ["NOT a", ["b"], ""], | ||
| ["NOT a", [], ""], | ||
| ["NOT (a OR b)", ["a"], "NOT a"], | ||
| ["NOT (a AND b)", ["a"], ""], | ||
| ["NOT (a AND b)", ["a", 'b'], "(NOT a) OR (NOT b)"], | ||
| ['a OR b', [], 'a OR b'], | ||
| ['a OR b OR c', [], '(a OR b) OR c'], | ||
| ['a OR b OR c', ['a'], ''], | ||
| ['a OR b OR c', ['b'], ''], | ||
| ['a OR b OR c', ['c'], ''], | ||
| ["a AND b", [], "a AND b"], | ||
| ["a AND b", ["a"], "b"], | ||
| ['a AND b', ['b'], 'a'], | ||
| ['a AND b', ['a', 'b'], ''], | ||
| ['(a AND b) OR c', [], '(a AND b) OR c'], | ||
| ['(a AND b) OR c', ['a', 'b'], ''], | ||
| ['(a AND b) OR c', ['a'], 'b OR c'], | ||
| ['(a AND b) OR c', ['c'], ''], | ||
| ['(a AND b) OR c', ['a', 'c'], ''], | ||
| ['(a AND b) OR c', ['b', 'c'], ''], | ||
| ['a AND b OR c', ['a', 'c'], ''], | ||
| ['(a AND b) OR (c AND d)', ['a', 'c'], 'b OR d'], | ||
| ['(a AND b) OR (c AND d) OR e', ['a', 'c'], '(b OR d) OR e'], | ||
| ['(a AND b) OR (c AND d)', ['a', 'b'], ''], | ||
| ['2/3 a b c', ['a'], '1/2 b c'], | ||
| ['2/3 a b c', ['a', 'b'], ''], | ||
| ['2/3 a b c', ['a', 'c'], ''], | ||
| ['2/3 a b c', ['b', 'c'], ''], | ||
| ['2/3 a (x OR y) c', ['a', 'x'], ''], | ||
| ['2/3 a (x OR y) c', ['a'], '1/2 (x OR y) c'], | ||
| ['3/3 a b c', ['a', 'b'], 'c'], | ||
| ['3/3 a (x OR y) c', [], '3/3 a (x OR y) c'], | ||
| ['3/3 a (x OR y) c', ['a'], '2/2 (x OR y) c'], | ||
| ['3/3 a (x OR y) c', ['a', 'c'], 'x OR y'], | ||
| ['2/3 a b ((3/4 c d e f) AND (g OR h))', ['a'], '1/2 b ((3/4 c d e f) AND (g OR h))'], | ||
| ['2/3 a b ((3/4 c d e f) AND (g OR h))', ['a', 'b'], ''], | ||
| ['2/3 a b ((3/4 c d e f) AND (g OR h))', ['a', 'c', 'd'], '1/2 b ((1/2 e f) AND (g OR h))'], | ||
| ['2/3 a b ((3/4 c d e f) AND (g OR h))', ['a', 'c', 'd', 'g'], '1/2 b (1/2 e f)'], | ||
| ['2/3 a b ((3/4 c d e f) AND (g OR h))', ['a', 'c', 'd', 'f', 'g'], ''], | ||
| // same node in several places | ||
| ['2/3 a a c', ['a'], []], | ||
| ['2/3 a x y', ['a'], ['1/2', 'x', 'y']], | ||
| ['2/3 x a y', ['a'], ['1/2', 'x', 'y']], | ||
| ['2/3 x y a', ['a'], ['1/2', 'x', 'y']], | ||
| ['(c AND d) OR (2/3 x y a)', ['c', 'a'], ['d', 'OR', ['1/2', 'x', 'y']]], | ||
| ['a OR a OR a', ['a'], []], | ||
| ['a AND a AND a', ['a'], []], | ||
| ['2/3 a (x OR y) a', ['a'], []], | ||
| ['2/3 a (x OR a) y', ['a'], []], | ||
| ['2/3 a b ((3/4 a d e f) AND (a OR h))', ['a'], ['1/2', 'b', ['2/3', 'd', 'e', 'f']]], | ||
| ].forEach(executeSpec(_1.reduce)); | ||
| ['2/3 a a c', ['a'], ''], | ||
| ['2/3 a x y', ['a'], '1/2 x y'], | ||
| ['2/3 x a y', ['a'], '1/2 x y'], | ||
| ['2/3 x y a', ['a'], '1/2 x y'], | ||
| ['(c AND d) OR (2/3 x y a)', ['c', 'a'], 'd OR (1/2 x y)'], | ||
| ['a OR a OR a', ['a'], ''], | ||
| ['a AND a AND a', ['a'], ''], | ||
| ['2/3 a (x OR y) a', ['a'], ''], | ||
| ['2/3 a (x OR a) y', ['a'], ''], | ||
| ['2/3 a b ((3/4 a d e f) AND (a OR h))', ['a'], '1/2 b (2/3 d e f)'], | ||
| ].forEach(execute(Trump)); | ||
| }); | ||
| describe('Runtime - with symbol table input', function () { | ||
| [ | ||
| ["a", { a: { value: true } }, true], | ||
| ["a", { a: { value: false } }, false], | ||
| ["NOT a", { a: { value: true } }, false], | ||
| ["NOT a", { a: { value: false } }, true], | ||
| ["a AND b", { a: { value: true }, b: { value: false } }, false], | ||
| ["a AND b", { a: { value: false }, b: { value: true } }, false], | ||
| ["a AND b", { a: { value: true }, b: { value: true } }, true], | ||
| ["a AND b", { a: { value: false }, b: { value: false } }, false], | ||
| ["a AND b", { a: { value: true }, b: { value: undefined } }, false], | ||
| ["a OR b", { a: { value: true }, b: { value: false } }, true], | ||
| ["a OR b", { a: { value: false }, b: { value: true } }, true], | ||
| ["a OR b", { a: { value: true }, b: { value: true } }, true], | ||
| ["a OR b", { a: { value: false }, b: { value: false } }, false], | ||
| ["NOT (a OR b)", { a: { value: true }, b: { value: false } }, false], | ||
| ["a AND (b OR c)", { a: { value: true }, b: { value: true }, c: { value: false } }, true], | ||
| ['2/3 a b c', { a: { value: true }, b: { value: true }, c: { value: true } }, true], | ||
| ['2/3 a b c', { a: { value: true }, b: { value: true }, c: { value: false } }, true], | ||
| ['2/3 a b c', { a: { value: true }, b: { value: false }, c: { value: false } }, false], | ||
| ['2/3 a b c', { a: { value: false }, b: { value: false }, c: { value: false } }, false], | ||
| ['2/3 a b (c OR d)', { a: { value: false }, b: { value: true }, c: { value: false }, d: { value: true } }, true], | ||
| ].forEach(execute(tokenize, p2_syntaxAnalyzer_1.default.parse, p5_optimizer_1.default.optimize, runtime_1.default.run)); | ||
| }); | ||
| describe("Runtime - with truth array input", function () { | ||
| [ | ||
| ["", [], true], | ||
| ["a", ["a"], true], | ||
| ["a", ["b"], false], | ||
| ["NOT a", ["a"], false], | ||
| ["NOT a", ["b"], true], | ||
| ["NOT a", [], true], | ||
| ["NOT (a OR b)", ["a"], false], | ||
| ["NOT (a AND b)", ["a"], true], | ||
| ["a AND NOT (b OR c)", ["a"], true], | ||
| ["a AND NOT (b OR c)", ["a", "b"], false], | ||
| ["a AND b", ["a"], false], | ||
| ["(a AND b)", ["a"], false], | ||
| ["a AND b", ["b"], false], | ||
| ["a AND b", ["a", "b"], true], | ||
| ["(a AND b)", ["a", "b"], true], | ||
| ["(a AND b) OR c", ["c"], true], | ||
| ["(a AND b) OR c", ["a", "b"], true], | ||
| ["(a AND b) OR (c AND d)", ["a", "c"], false], | ||
| ["(a AND b) OR (c AND d)", ["a", "b"], true], | ||
| ["((a AND b) OR (c AND d)) OR e", ["e"], true], | ||
| ["2/3 a b c", ["a", "b"], true], | ||
| ["2/3 a b c", ["a"], false], | ||
| ["2/3 a x y", ["a"], false], | ||
| ["2/3 x a y", ["a"], false], | ||
| ["2/3 x y a", ["a"], false], | ||
| ["(c AND d) OR (2/3 x y a)", ["y"], false], | ||
| [ | ||
| "(RKARR1 AND GKBRSTART1) OR (2/3 GKBRFORT GKBREND JVPST02)", | ||
| ["GKBREND"], | ||
| false, | ||
| ], | ||
| ["2/3 a (x OR y) c", ["a", "x"], true], | ||
| ["(2/3 a b c)", ["a"], false], | ||
| [ | ||
| "2/3 a b ((3/4 c d e f) AND (g OR h))", | ||
| ["a", "c", "d", "e", "g"], | ||
| true, | ||
| ], | ||
| ["2/3 a b ((3/4 c d e f) AND (g OR h))", ["a", "b", "h"], true], | ||
| ["2/3 a b ((3/4 c d e f) AND (g OR h))", ["a", "c", "d", "f"], false], | ||
| [ | ||
| "2/3 a b ((3/4 c d e f) AND (g OR h))", | ||
| ["a", "c", "d", "f", "g"], | ||
| true, | ||
| ], | ||
| ["2/3 a b ((3/4 c d e f) OR (g OR h))", ["a", "c", "g"], true], | ||
| ["(2/3 a b c) AND (d OR e)", ["a"], false], | ||
| ["(a AND b) OR ((c AND d) OR (2/3 a b c))", ["b", "c"], true], | ||
| ].forEach(execute(runtime_1.default.runWithTruthArray)); | ||
| }); | ||
| describe('Source Generator', function () { | ||
| [ | ||
| ["", ""], | ||
| ["a", "a"], | ||
| ["a AND b", "a AND b"], | ||
| ["a OR (b AND (b AND c))", "a OR (b AND (b AND c))"], | ||
| ["2/3 a b c", "2/3 a b c"], | ||
| ["2/3 a b (c OR d)", "2/3 a b (c OR d)"], | ||
| ["2/3 a b ((3/4 c d e f) OR (g OR h))", '2/3 a b ((3/4 c d e f) OR (g OR h))'], | ||
| ['a AND b AND c', '(a AND b) AND c'], | ||
| ['NOT a', 'NOT a'], | ||
| ['NOT (a AND b)', '(NOT a) OR (NOT b)'] | ||
| ].forEach(execute(tokenize, p2_syntaxAnalyzer_1.default.parse, p5_optimizer_1.default.optimize, sourceGenerator_1.default)); | ||
| }); | ||
| //# sourceMappingURL=lib.spec.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"lib.spec.js","sourceRoot":"","sources":["../lib.spec.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"lib.spec.js","sourceRoot":"","sources":["../lib.spec.ts"],"names":[],"mappings":"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"} |
@@ -12,9 +12,9 @@ "use strict"; | ||
| default: function () { return []; }, | ||
| term: function (operand) { return isTrue(operand) ? [] : operand; } | ||
| term: function (operand) { return (isTrue(operand) ? [] : operand); } | ||
| }, | ||
| _a[language_1.operatorSymbols.not] = function () { return function (right) { | ||
| return (isTrue(right) ? [language_1.operatorSymbols.not, right] : []); | ||
| return isTrue(right) ? [language_1.operatorSymbols.not, right] : []; | ||
| }; }, | ||
| _a[language_1.operatorSymbols.or] = function (left) { return function (right) { | ||
| return (isTrue(left) || isTrue(right) ? [] : [left, language_1.operatorSymbols.or, right]); | ||
| return isTrue(left) || isTrue(right) ? [] : [left, language_1.operatorSymbols.or, right]; | ||
| }; }, | ||
@@ -36,4 +36,7 @@ _a[language_1.operatorSymbols.and] = function (left) { return function (right) { | ||
| // so a updated expression with the current remaining requirements can be constructed | ||
| return numFulfilled >= x ? | ||
| [] : [x - numFulfilled + "/" + (y - numFulfilled)].concat(right.filter(function (op) { return !isTrue(op); })); | ||
| return numFulfilled >= x | ||
| ? [] | ||
| : [ | ||
| x - numFulfilled + "/" + (y - numFulfilled) | ||
| ].concat(right.filter(function (op) { return !isTrue(op); })); | ||
| }; }, | ||
@@ -40,0 +43,0 @@ _a); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"reduce.js","sourceRoot":"","sources":["../../src/reduce.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"reduce.js","sourceRoot":"","sources":["../../src/reduce.ts"],"names":[],"mappings":"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"} |
+1
-0
| 'use strict'; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.matches = exports.pipe = exports.mapRecursive = exports.flatten = void 0; | ||
| var __flatten = function (_a, arr) { | ||
@@ -4,0 +5,0 @@ var result = _a.result, allArrays = _a.allArrays; |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"utils.js","sourceRoot":"","sources":["../utils.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,IAAM,SAAS,GAAG,UAAC,EAAqB,EAAE,GAAG;QAAxB,kBAAM,EAAE,wBAAS;IAClC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,QAAA,EAAE,SAAS,WAAA,EAAE,CAAC;IAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;QACvB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,QAAA,EAAE,SAAS,WAAA,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5C;SAAM;QACH,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACvB;IACD,OAAO,SAAS,CAAC,EAAE,MAAM,QAAA,EAAE,SAAS,WAAA,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEF;;;;GAIG;AACH,IAAM,OAAO,GAAG,UAAA,GAAG,IAAI,OAAA,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAhD,CAAgD,CAAC;AA2BpE,0BAAO;AAzBX,IAAM,cAAc,GAAG,UAAA,MAAM,IAAI,OAAA,SAAS,gBAAgB,CAAC,MAAM,EAAE,KAAK;IACpE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxD,IAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACrB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;KAC3C;SAAM;QACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrB;IACD,OAAO,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC,EATgC,CAShC,CAAC;AAEF;;;;;;GAMG;AACH,IAAM,YAAY,GAAG,UAAA,MAAM,IAAI,OAAA,UAAA,KAAK,IAAI,OAAA,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAjC,CAAiC,EAA1C,CAA0C,CAAC;AAQtE,oCAAY;AANhB,IAAM,IAAI,GAAG;IAAC,mBAAY;SAAZ,UAAY,EAAZ,qBAAY,EAAZ,IAAY;QAAZ,8BAAY;;IAAK,OAAA,UAAA,GAAG,IAAI,OAAA,SAAS,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,GAAG,IAAK,OAAA,GAAG,CAAC,GAAG,CAAC,EAAR,CAAQ,EAAE,GAAG,CAAC,EAA7C,CAA6C;AAApD,CAAoD,CAAC;AAOhF,oBAAI;AALR,IAAM,OAAO,GAAG,UAAC,KAAK,IAAK,OAAA,UAAC,GAAG,IAAc,OAAA,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAA7C,CAA6C,EAA/D,CAA+D,CAAC;AAMvF,0BAAO"} | ||
| {"version":3,"file":"utils.js","sourceRoot":"","sources":["../utils.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb,IAAM,SAAS,GAAG,UAAC,EAAqB,EAAE,GAAG;QAAxB,MAAM,YAAA,EAAE,SAAS,eAAA;IAClC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,QAAA,EAAE,SAAS,WAAA,EAAE,CAAC;IAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;QACvB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,QAAA,EAAE,SAAS,WAAA,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5C;SAAM;QACH,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACvB;IACD,OAAO,SAAS,CAAC,EAAE,MAAM,QAAA,EAAE,SAAS,WAAA,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEF;;;;GAIG;AACH,IAAM,OAAO,GAAG,UAAA,GAAG,IAAI,OAAA,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAhD,CAAgD,CAAC;AA2BpE,0BAAO;AAzBX,IAAM,cAAc,GAAG,UAAA,MAAM,IAAI,OAAA,SAAS,gBAAgB,CAAC,MAAM,EAAE,KAAK;IACpE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxD,IAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACrB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;KAC3C;SAAM;QACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrB;IACD,OAAO,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC,EATgC,CAShC,CAAC;AAEF;;;;;;GAMG;AACH,IAAM,YAAY,GAAG,UAAA,MAAM,IAAI,OAAA,UAAA,KAAK,IAAI,OAAA,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAjC,CAAiC,EAA1C,CAA0C,CAAC;AAQtE,oCAAY;AANhB,IAAM,IAAI,GAAG;IAAC,mBAAY;SAAZ,UAAY,EAAZ,qBAAY,EAAZ,IAAY;QAAZ,8BAAY;;IAAK,OAAA,UAAA,GAAG,IAAI,OAAA,SAAS,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,GAAG,IAAK,OAAA,GAAG,CAAC,GAAG,CAAC,EAAR,CAAQ,EAAE,GAAG,CAAC,EAA7C,CAA6C;AAApD,CAAoD,CAAC;AAOhF,oBAAI;AALR,IAAM,OAAO,GAAG,UAAC,KAAK,IAAK,OAAA,UAAC,GAAG,IAAc,OAAA,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAA7C,CAA6C,EAA/D,CAA+D,CAAC;AAMvF,0BAAO"} |
+11
-10
| { | ||
| "name": "@trigo/bool-expressions", | ||
| "version": "0.1.2", | ||
| "version": "4.0.0", | ||
| "description": "Compiles, calculates and reduces boolean expressions", | ||
@@ -14,3 +14,3 @@ "main": "lib/index.js", | ||
| "test": "mocha --require ts-node/register *spec.ts", | ||
| "test-watch": "mocha --require ts-node/register --watch --watch-extensions ts *spec.ts" | ||
| "test-watch": "mocha -R dot --require ts-node/register --watch --watch-extensions ts *spec.ts" | ||
| }, | ||
@@ -25,3 +25,3 @@ "files": [ | ||
| "author": "", | ||
| "license": "ISC", | ||
| "license": "Apache 2.0", | ||
| "bugs": { | ||
@@ -32,11 +32,12 @@ "url": "https://github.com/trigo-at/bool-expressions/issues" | ||
| "devDependencies": { | ||
| "@types/chai": "^4.1.7", | ||
| "@types/mocha": "^5.2.5", | ||
| "chai": "^4.2.0", | ||
| "eslint-config-trigo": "^6.2.1", | ||
| "mocha": "^5.2.0", | ||
| "@types/chai": "^4.2.22", | ||
| "@types/mocha": "^5.2.7", | ||
| "chai": "^4.3.4", | ||
| "chai-exclude": "^2.1.0", | ||
| "eslint-config-trigo": "^6.3.11", | ||
| "mocha": "^9.1.3", | ||
| "ts-node": "^7.0.1", | ||
| "tslint": "^5.12.1", | ||
| "typescript": "^3.2.4" | ||
| "tslint": "^5.20.1", | ||
| "typescript": "^3.9.10" | ||
| } | ||
| } |
+3
-1
@@ -1,1 +0,3 @@ | ||
| # spike-bool-expressions | ||
| # Boolean Expression Compiler | ||
| v4 |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
126727
128.67%44
83.33%1399
154.36%0
-100%4
100%9
12.5%2
Infinity%