Overview
Comment: | [build][js] build graph rules for JS |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | build | rg |
Files: | files | file ages | folders |
SHA3-256: |
7f7a39e30f609db93db740b591cc1a10 |
User & Date: | olr on 2018-09-10 09:15:32 |
Other Links: | branch diff | manifest | tags |
Context
2018-09-10
| ||
11:00 | [build][js] fix graph rules builder check-in: 2ae38c10dc user: olr tags: build, rg | |
09:15 | [build][js] build graph rules for JS check-in: 7f7a39e30f user: olr tags: build, rg | |
08:57 | [core] gc engine: built functions and exports check-in: 2b29190468 user: olr tags: core, rg | |
Changes
Modified compile_rules.py from [943713d834] to [2517b776cc].
︙ | ︙ | |||
563 564 565 566 567 568 569 | else: lSentenceRules.append(aRule) lSentenceRulesJS.append(jsconv.pyRuleToJS(aRule, dJSREGEXES, sWORDLIMITLEFT)) # creating file with all functions callable by rules print(" creating callables...") sPyCallables = "# generated code, do not edit\n" | | > > < | 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 | else: lSentenceRules.append(aRule) lSentenceRulesJS.append(jsconv.pyRuleToJS(aRule, dJSREGEXES, sWORDLIMITLEFT)) # creating file with all functions callable by rules print(" creating callables...") sPyCallables = "# generated code, do not edit\n" sJSCallables = "" for sFuncName, sReturn in lFUNCTIONS: if sFuncName.startswith("_c_"): # condition sParams = "s, sx, m, dTokenPos, sCountry, bCondMemo" elif sFuncName.startswith("_m_"): # message sParams = "s, m" elif sFuncName.startswith("_s_"): # suggestion sParams = "s, m" elif sFuncName.startswith("_p_"): # preprocessor sParams = "s, m" elif sFuncName.startswith("_d_"): # disambiguator sParams = "s, m, dTokenPos" else: print("# Unknown function type in [" + sFuncName + "]") continue # Python sPyCallables += "def {} ({}):\n".format(sFuncName, sParams) sPyCallables += " return " + sReturn + "\n" # JavaScript sJSCallables += " {}: function ({})".format(sFuncName, sParams) + " {\n" sJSCallables += " return " + jsconv.py2js(sReturn) + ";\n" sJSCallables += " },\n" displayStats(lParagraphRules, lSentenceRules) print("Unnamed rules: " + str(nRULEWITHOUTNAME)) dVars = { "callables": sPyCallables, "callablesJS": sJSCallables, |
︙ | ︙ |
Modified compile_rules_graph.py from [f888a1d429] to [7a4d8cc39b].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | """ Grammalecte: compile rules Create a Direct Acyclic Rule Graphs (DARGs) """ import re import traceback import json import darg dACTIONS = {} dFUNCTIONS = {} dFUNCNAME = {} | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | """ Grammalecte: compile rules Create a Direct Acyclic Rule Graphs (DARGs) """ import re import traceback import json import darg import compile_rules_js_convert as jsconv dACTIONS = {} dFUNCTIONS = {} dFUNCNAME = {} |
︙ | ︙ | |||
414 415 416 417 418 419 420 | print("\nGRAPH:", sGraphName) for k, v in dAllGraph[sGraphName].items(): print(k, "\t", v) # creating file with all functions callable by rules print(" creating callables...") sPyCallables = "# generated code, do not edit\n" | | > > | | | < > | 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 | print("\nGRAPH:", sGraphName) for k, v in dAllGraph[sGraphName].items(): print(k, "\t", v) # creating file with all functions callable by rules print(" creating callables...") sPyCallables = "# generated code, do not edit\n" sJSCallables = "" for sFuncName, sReturn in dFUNCTIONS.items(): if sFuncName.startswith("_g_cond_"): # condition sParams = "lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0" elif sFuncName.startswith("g_msg_"): # message sParams = "lToken, nTokenOffset, nLastToken" elif sFuncName.startswith("_g_sugg_"): # suggestion sParams = "lToken, nTokenOffset, nLastToken" elif sFuncName.startswith("_g_tp_"): # text preprocessor sParams = "lToken, nTokenOffset, nLastToken" elif sFuncName.startswith("_g_da_"): # disambiguator sParams = "lToken, nTokenOffset, nLastToken" else: print("# Unknown function type in [" + sFuncName + "]") continue # Python sPyCallables += "def {} ({}):\n".format(sFuncName, sParams) sPyCallables += " return " + sReturn + "\n" # JavaScript sJSCallables += " {}: function ({})".format(sFuncName, sParams) + " {\n" sJSCallables += " return " + jsconv.py2js(sReturn) + ";\n" sJSCallables += " },\n" # Debugging if False: print("\nActions:") for sActionName, aAction in dACTIONS.items(): print(sActionName, aAction) print("\nFunctions:") print(sPyCallables) # Result return { "graph_callables": sPyCallables, "graph_callablesJS": sJSCallables, "rules_graphs": dAllGraph, "rules_actions": dACTIONS } |