UNPKG

pegisland

Version:

General PEG-based parser supporting island grammars with lake symbols

25 lines 1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.areEqualSets = exports.difference = exports.intersection = exports.union = void 0; // Copyright (C) 2021- Katsumi Okuda. All rights reserved. const assert_1 = require("assert"); function union(...sets) { (0, assert_1.strict)(sets.length > 0); return sets.reduce((x, y) => new Set([...Array.from(x), ...Array.from(y)])); } exports.union = union; function intersection(...sets) { (0, assert_1.strict)(sets.length > 0); return sets.reduce((x, y) => new Set(Array.from(x).filter((e) => y.has(e)))); } exports.intersection = intersection; function difference(...sets) { (0, assert_1.strict)(sets.length > 0); return sets.reduce((x, y) => new Set(Array.from(x).filter((e) => !y.has(e)))); } exports.difference = difference; function areEqualSets(x, y) { return x.size === y.size && difference(x, y).size === 0; } exports.areEqualSets = areEqualSets; //# sourceMappingURL=set-operations.js.map