Overview
| Comment: | [core] gc engine: new operator (@) for regex text processor |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk | core |
| Files: | files | file ages | folders |
| SHA3-256: |
86c9c40cab4be357c1f6169ef80c17b1 |
| User & Date: | olr on 2019-01-02 12:56:09 |
| Other Links: | manifest | tags |
Context
|
2019-01-02
| ||
| 13:58 | [fr] html: purge des espaces insécables fins check-in: 0e847b75ad user: olr tags: trunk, fr | |
| 12:56 | [core] gc engine: new operator (@) for regex text processor check-in: 86c9c40cab user: olr tags: trunk, core | |
| 12:55 | [fr] nr: de sorte que, +ajustements divers check-in: 136beb2dc6 user: olr tags: trunk, fr | |
Changes
Modified gc_core/js/lang_core/gc_engine.js from [9248952883] to [8e4be3285b].
| ︙ | ︙ | |||
229 230 231 232 233 234 235 236 237 238 239 240 241 242 |
}
if (this.sText.includes("'")) {
this.sText = this.sText.replace(/'/g, "’");
}
if (this.sText.includes("‑")) {
this.sText = this.sText.replace(/‑/g, "-"); // nobreakdash
}
// parse sentence
for (let [iStart, iEnd] of gc_engine.getSentenceBoundaries(this.sText)) {
try {
this.sSentence = this.sText.slice(iStart, iEnd);
this.sSentence0 = this.sText0.slice(iStart, iEnd);
this.nOffsetWithinParagraph = iStart;
| > > > | 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 |
}
if (this.sText.includes("'")) {
this.sText = this.sText.replace(/'/g, "’");
}
if (this.sText.includes("‑")) {
this.sText = this.sText.replace(/‑/g, "-"); // nobreakdash
}
if (this.sText.includes("@@")) {
this.sText = this.sText.replace(/@@+/g, "");
}
// parse sentence
for (let [iStart, iEnd] of gc_engine.getSentenceBoundaries(this.sText)) {
try {
this.sSentence = this.sText.slice(iStart, iEnd);
this.sSentence0 = this.sText0.slice(iStart, iEnd);
this.nOffsetWithinParagraph = iStart;
|
| ︙ | ︙ | |||
793 794 795 796 797 798 799 |
rewriteText (sText, sRepl, iGroup, m, bUppercase) {
// text processor: write sRepl in sText at iGroup position"
let ln = m.end[iGroup] - m.start[iGroup];
let sNew = "";
if (sRepl === "*") {
sNew = " ".repeat(ln);
}
| | | | 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 |
rewriteText (sText, sRepl, iGroup, m, bUppercase) {
// text processor: write sRepl in sText at iGroup position"
let ln = m.end[iGroup] - m.start[iGroup];
let sNew = "";
if (sRepl === "*") {
sNew = " ".repeat(ln);
}
else if (sRepl === "_") {
sNew = "_".repeat(ln);
}
else if (sRepl === "@") {
sNew = "@".repeat(ln);
}
else if (sRepl.slice(0,1) === "=") {
sNew = oEvalFunc[sRepl.slice(1)](sText, m);
sNew = sNew + " ".repeat(ln-sNew.length);
|
| ︙ | ︙ |
Modified gc_core/py/lang_core/gc_engine.py from [621c240c96] to [7f3fb3a1a4].
| ︙ | ︙ | |||
258 259 260 261 262 263 264 265 266 267 268 269 270 271 |
sText = sText.replace(" ", ' ') # nbsp
if " " in sText:
sText = sText.replace(" ", ' ') # nnbsp
if "'" in sText:
sText = sText.replace("'", "’")
if "‑" in sText:
sText = sText.replace("‑", "-") # nobreakdash
# parse sentences
for iStart, iEnd in _getSentenceBoundaries(sText):
if 4 < (iEnd - iStart) < 2000:
try:
self.sSentence = sText[iStart:iEnd]
self.sSentence0 = self.sText0[iStart:iEnd]
| > > | 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 |
sText = sText.replace(" ", ' ') # nbsp
if " " in sText:
sText = sText.replace(" ", ' ') # nnbsp
if "'" in sText:
sText = sText.replace("'", "’")
if "‑" in sText:
sText = sText.replace("‑", "-") # nobreakdash
if "@@" in sText:
sText = re.sub("@@+", "", sText)
# parse sentences
for iStart, iEnd in _getSentenceBoundaries(sText):
if 4 < (iEnd - iStart) < 2000:
try:
self.sSentence = sText[iStart:iEnd]
self.sSentence0 = self.sText0[iStart:iEnd]
|
| ︙ | ︙ | |||
685 686 687 688 689 690 691 |
def rewriteText (self, sText, sRepl, iGroup, m, bUppercase):
"text processor: write <sRepl> in <sText> at <iGroup> position"
nLen = m.end(iGroup) - m.start(iGroup)
if sRepl == "*":
sNew = " " * nLen
elif sRepl == "_":
| | > > | 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 |
def rewriteText (self, sText, sRepl, iGroup, m, bUppercase):
"text processor: write <sRepl> in <sText> at <iGroup> position"
nLen = m.end(iGroup) - m.start(iGroup)
if sRepl == "*":
sNew = " " * nLen
elif sRepl == "_":
sNew = "_" * nLen
elif sRepl == "@":
sNew = "@" * nLen
elif sRepl[0:1] == "=":
sNew = globals()[sRepl[1:]](sText, m)
sNew = sNew + " " * (nLen-len(sNew))
if bUppercase and m.group(iGroup)[0:1].isupper():
sNew = sNew.capitalize()
else:
sNew = m.expand(sRepl)
|
| ︙ | ︙ |