eyeling 1.6.18 → 1.6.19
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/eyeling.js +4 -29
- package/package.json +1 -1
package/eyeling.js
CHANGED
|
@@ -87,16 +87,6 @@ let fixedNowLex = null;
|
|
|
87
87
|
// If not fixed, we still memoize one value per run to avoid re-firing rules.
|
|
88
88
|
let runNowLex = null;
|
|
89
89
|
|
|
90
|
-
function normalizeDateTimeLex(s) {
|
|
91
|
-
// Accept: 2025-... , "2025-..." , "2025-..."^^xsd:dateTime , "..."^^<...>
|
|
92
|
-
if (s == null) return null;
|
|
93
|
-
let t = String(s).trim();
|
|
94
|
-
const caret = t.indexOf('^^');
|
|
95
|
-
if (caret >= 0) t = t.slice(0, caret).trim();
|
|
96
|
-
if (t.startsWith('"') && t.endsWith('"') && t.length >= 2) t = t.slice(1, -1);
|
|
97
|
-
return t.trim();
|
|
98
|
-
}
|
|
99
|
-
|
|
100
90
|
// ===========================================================================
|
|
101
91
|
// Run-level time helpers
|
|
102
92
|
// ===========================================================================
|
|
@@ -1651,10 +1641,6 @@ function alphaEqTriple(a, b) {
|
|
|
1651
1641
|
return alphaEqTerm(a.s, b.s, bmap) && alphaEqTerm(a.p, b.p, bmap) && alphaEqTerm(a.o, b.o, bmap);
|
|
1652
1642
|
}
|
|
1653
1643
|
|
|
1654
|
-
function hasAlphaEquiv(triples, tr) {
|
|
1655
|
-
return triples.some((t) => alphaEqTriple(t, tr));
|
|
1656
|
-
}
|
|
1657
|
-
|
|
1658
1644
|
// ===========================================================================
|
|
1659
1645
|
// Indexes (facts + backward rules)
|
|
1660
1646
|
// ===========================================================================
|
|
@@ -1896,12 +1882,10 @@ function isConstraintBuiltin(tr) {
|
|
|
1896
1882
|
return false;
|
|
1897
1883
|
}
|
|
1898
1884
|
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
* - pure test / constraint builtins last (checked once bindings are in place).
|
|
1904
|
-
*/
|
|
1885
|
+
// Move constraint builtins to the end of the rule premise.
|
|
1886
|
+
// This is a simple "delaying" strategy similar in spirit to Prolog's when/2:
|
|
1887
|
+
// - normal goals first (can bind variables),
|
|
1888
|
+
// - pure test / constraint builtins last (checked once bindings are in place).
|
|
1905
1889
|
function reorderPremiseForConstraints(premise) {
|
|
1906
1890
|
if (!premise || premise.length === 0) return premise;
|
|
1907
1891
|
|
|
@@ -2676,15 +2660,6 @@ function parseIntLiteral(t) {
|
|
|
2676
2660
|
}
|
|
2677
2661
|
}
|
|
2678
2662
|
|
|
2679
|
-
function parseNumberLiteral(t) {
|
|
2680
|
-
// Prefer BigInt for integers, fall back to Number for other numeric literals.
|
|
2681
|
-
const bi = parseIntLiteral(t);
|
|
2682
|
-
if (bi !== null) return bi;
|
|
2683
|
-
const n = parseNum(t);
|
|
2684
|
-
if (n !== null) return n;
|
|
2685
|
-
return null;
|
|
2686
|
-
}
|
|
2687
|
-
|
|
2688
2663
|
function formatNum(n) {
|
|
2689
2664
|
return String(n);
|
|
2690
2665
|
}
|