Overview
Comment: | [build] count unnamed rules |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | build |
Files: | files | file ages | folders |
SHA3-256: |
e6a7cd50a78c4d141d1dc97150fb2bc1 |
User & Date: | olr on 2017-05-16 23:52:20 |
Other Links: | manifest | tags |
Context
2017-05-17
| ||
00:59 | [fr] nommage des règles du processeur check-in: 296e21eba6 user: olr tags: trunk, fr | |
2017-05-16
| ||
23:52 | [build] count unnamed rules check-in: e6a7cd50a7 user: olr tags: trunk, build | |
23:46 | [build] rename global vars check-in: a835df567d user: olr tags: trunk, build | |
Changes
Modified compile_rules.py from [e1c06fc5a9] to [9ba071ca61].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import re import sys import traceback import copy import json from distutils import file_util dDEF = {} lFUNCTIONS = [] aRULESET = set() # set of rule-ids to check if there is several rules with the same id dJSREGEXES = {} sWORDLIMITLEFT = r"(?<![\w.,–-])" # r"(?<![-.,—])\b" seems slower sWORDLIMITRIGHT = r"(?![\w–-])" # r"\b(?!-—)" seems slower | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import re import sys import traceback import copy import json from distutils import file_util dDEF = {} lFUNCTIONS = [] aRULESET = set() # set of rule-ids to check if there is several rules with the same id nRULEWITHOUTNAME = 0 dJSREGEXES = {} sWORDLIMITLEFT = r"(?<![\w.,–-])" # r"(?<![-.,—])\b" seems slower sWORDLIMITRIGHT = r"(?![\w–-])" # r"\b(?!-—)" seems slower |
︙ | ︙ | |||
161 162 163 164 165 166 167 168 169 170 171 172 173 174 | print(sRegex) return 0 def createRule (s, nIdLine, sLang, bParagraph, dOptPriority): "returns rule as list [option name, regex, bCaseInsensitive, identifier, list of actions]" global dJSREGEXES #### OPTIONS sLineId = str(nIdLine) + ("p" if bParagraph else "s") sRuleId = sLineId sOption = False # False or [a-z0-9]+ name nPriority = 4 # Default is 4, value must be between 0 and 9 tGroups = None # code for groups positioning (only useful for JavaScript) | > | 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | print(sRegex) return 0 def createRule (s, nIdLine, sLang, bParagraph, dOptPriority): "returns rule as list [option name, regex, bCaseInsensitive, identifier, list of actions]" global dJSREGEXES global nRULEWITHOUTNAME #### OPTIONS sLineId = str(nIdLine) + ("p" if bParagraph else "s") sRuleId = sLineId sOption = False # False or [a-z0-9]+ name nPriority = 4 # Default is 4, value must be between 0 and 9 tGroups = None # code for groups positioning (only useful for JavaScript) |
︙ | ︙ | |||
183 184 185 186 187 188 189 190 191 192 193 194 195 196 | sOption = m.group('option')[1:] if m.group('option') else False if m.group('ruleid'): sRuleId = m.group('ruleid')[1:-1] if sRuleId in aRULESET: print("# Error. Several rules have the same id: " + sRuleId) exit() aRULESET.add(sRuleId) nPriority = dOptPriority.get(sOption, 4) if m.group('priority'): nPriority = int(m.group('priority')[1:]) s = s[m.end(0):] else: print("# Warning. No option defined at line: " + sLineId) | > > | 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 | sOption = m.group('option')[1:] if m.group('option') else False if m.group('ruleid'): sRuleId = m.group('ruleid')[1:-1] if sRuleId in aRULESET: print("# Error. Several rules have the same id: " + sRuleId) exit() aRULESET.add(sRuleId) else: nRULEWITHOUTNAME += 1 nPriority = dOptPriority.get(sOption, 4) if m.group('priority'): nPriority = int(m.group('priority')[1:]) s = s[m.end(0):] else: print("# Warning. No option defined at line: " + sLineId) |
︙ | ︙ | |||
634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 | sPyCallables += " return " + sReturn + "\n" sJSCallables += " {}: function ({})".format(sFuncName, sParams) + " {\n" sJSCallables += " return " + py2js(sReturn) + ";\n" sJSCallables += " },\n" sJSCallables += "}\n" displayStats(lParagraphRules, lSentenceRules) d = { "callables": sPyCallables, "callablesJS": sJSCallables, "gctests": sGCTests, "gctestsJS": sGCTestsJS, "paragraph_rules": mergeRulesByOption(lParagraphRules), "sentence_rules": mergeRulesByOption(lSentenceRules), "paragraph_rules_JS": writeRulesToJSArray(mergeRulesByOption(lParagraphRulesJS)), "sentence_rules_JS": writeRulesToJSArray(mergeRulesByOption(lSentenceRulesJS)) } d.update(dOptions) return d | > > | 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 | sPyCallables += " return " + sReturn + "\n" sJSCallables += " {}: function ({})".format(sFuncName, sParams) + " {\n" sJSCallables += " return " + py2js(sReturn) + ";\n" sJSCallables += " },\n" sJSCallables += "}\n" displayStats(lParagraphRules, lSentenceRules) print("Unnamed rules: " + str(nRULEWITHOUTNAME)) d = { "callables": sPyCallables, "callablesJS": sJSCallables, "gctests": sGCTests, "gctestsJS": sGCTestsJS, "paragraph_rules": mergeRulesByOption(lParagraphRules), "sentence_rules": mergeRulesByOption(lSentenceRules), "paragraph_rules_JS": writeRulesToJSArray(mergeRulesByOption(lParagraphRulesJS)), "sentence_rules_JS": writeRulesToJSArray(mergeRulesByOption(lSentenceRulesJS)) } d.update(dOptions) return d |