96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
-
+
|
let lWord = [];
for (let [sFlex, iAff, iTag] of lEntry) {
let lTemp = [];
for (let c of sFlex) {
lTemp.push(dChar.get(c));
}
lTemp.push(iAff+nChar);
lTemp.push(iTag+nChar+nAff)
lTemp.push(iTag+nChar+nAff);
lWord.push(lTemp);
}
lEntry.length = 0; // clear the array
// Dictionary of arc values occurrency, to sort arcs of each node
let lKeyVal = [];
for (let c of dChar.keys()) { lKeyVal.push([dChar.get(c), dCharOccur.get(c)]); }
|
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
|
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
|
-
+
|
this.nNextId += 1;
return this.nNextId-1;
},
reset: function () {
this.nNextId = 0;
}
}
};
class DawgNode {
constructor () {
this.i = oNodeCounter.getId();
this.final = false;
|
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
|
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
|
-
+
|
convValueToHexString (nVal, nByte) {
// nVal: value to convert, nByte: number of bytes
let sHexVal = nVal.toString(16); // conversion to hexadecimal string
//console.log(`value: ${nVal} in ${nByte} bytes`);
if (sHexVal.length < (nByte*2)) {
return "0".repeat((nByte*2) - sHexVal.length) + sHexVal;
} else if (sHexVal.length == (nByte*2)) {
return sHexVal
return sHexVal;
} else {
throw "Conversion to byte string: value bigger than allowed.";
}
}
}
|