Overview
Comment: | [build][core] rules graph: definitions and multiple tokens |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | core | build | rg |
Files: | files | file ages | folders |
SHA3-256: |
da8c5de7dfa98ccb745eb92a8e910af8 |
User & Date: | olr on 2018-05-24 11:14:16 |
Other Links: | branch diff | manifest | tags |
Context
2018-05-25
| ||
10:07 | [build][core] multiple tokens and groups check-in: e83552ea6d user: olr tags: core, build, rg | |
2018-05-24
| ||
11:14 | [build][core] rules graph: definitions and multiple tokens check-in: da8c5de7df user: olr tags: core, build, rg | |
11:13 | [build][bug] darg: wrong statement check-in: c4ce706a6b user: olr tags: build, rg | |
Changes
Modified compile_rules_graph.py from [a8ad098a64] to [b56c5bc314].
︙ | |||
42 43 44 45 46 47 48 49 50 51 | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + - - - - - - - - - - + + + + + + + + + + | def changeReferenceToken (s, dPos): for i in range(len(dPos), 0, -1): s = s.replace("\\"+str(i), "\\"+dPos[i]) return s def genTokenRules (sTokenLine): lToken = sTokenLine.split() lTokenRules = None for i, sToken in enumerate(lToken): if sToken.startswith("{") and sToken.endswith("}") and sToken in dDEF: lToken[i] = dDEF[sToken] if sToken.startswith("[") and sToken.endswith("]"): # multiple token if not lTokenRules: lTokenRules = [ sToken[1:-1].split("|") ] else: lNewTemp = [] for aRule in lTokenRules: lElem = sToken[1:-1].split("|") sElem1 = lElem.pop(0) for sElem in lElem: aNew = list(aRule) aNew.append(sElem) lNewTemp.append(aNew) aRule.append(sElem1) lTokenRules.extend(lNewTemp) else: # simple token if not lTokenRules: lTokenRules = [[sToken]] else: for aRule in lTokenRules: aRule.append(sToken) for aRule in lTokenRules: print("Rule\n", aRule) yield aRule def createRule (iLine, sRuleName, sTokenLine, sActions, nPriority): # print(iLine, "//", sRuleName, "//", sTokenLine, "//", sActions, "//", nPriority) |
︙ |
Modified gc_lang/fr/rules_graph.grx from [afffaf61f2] to [25632727ec].
︙ | |||
48 49 50 51 52 53 54 | 48 49 50 51 52 53 54 55 56 57 58 | - + - - | __rule2__ ci important que soi ci vraiment il y a ci pour ça <<- morph(\2, ":[WAR]", False) -1>> si # Message1|http://test.grammalecte.net __rule3__ |