Grammalecte  Check-in [079e65db1c]

Overview
Comment:[build][fr] darg builder: optional token with ? and ¿ signs
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | fr | build | rg
Files: files | file ages | folders
SHA3-256: 079e65db1c85b44b708319ca0754689e2d5a20d7693cdca49a0a7d1465cb0703
User & Date: olr on 2018-06-18 15:00:00
Other Links: branch diff | manifest | tags
Context
2018-06-18
18:07
[fr] conversion: regex rules -> graph rules check-in: 4dd0153de3 user: olr tags: fr, rg
15:00
[build][fr] darg builder: optional token with ? and ¿ signs check-in: 079e65db1c user: olr tags: build, fr, rg
14:23
[core] variable renaming to avoid confusion check-in: 0a9a5192b6 user: olr tags: core, rg
Changes

Modified compile_rules_graph.py from [1c73a8473c] to [11960e859e].

36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58

def genTokenLines (sTokenLine, dDef):
    "tokenize a string and return a list of lines of tokens"
    lToken = sTokenLine.split()
    lTokenLines = None
    for i, sToken in enumerate(lToken):
        # optional token?
        bNullPossible = sToken.startswith("?") and sToken.endswith("?")
        if bNullPossible:
            sToken = sToken[1:-1]
        # token with definition?
        if sToken.startswith("({") and sToken.endswith("})") and sToken[1:-1] in dDef:
            sToken = "(" + dDef[sToken[1:-1]] + ")"
        elif sToken.startswith("{") and sToken.endswith("}") and sToken in dDef:
            sToken = dDef[sToken]
        if ( (sToken.startswith("[") and sToken.endswith("]")) or (sToken.startswith("([") and sToken.endswith("])")) or (sToken.startswith("?[") and sToken.endswith("]?")) ):
            # multiple token
            bSelectedGroup = sToken.startswith("(") and sToken.endswith(")")
            if bSelectedGroup:
                sToken = sToken[1:-1]
            lNewToken = sToken[1:-1].split("|")
            if not lTokenLines:
                lTokenLines = [ [s]  for s  in lNewToken ]







|







|







36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58

def genTokenLines (sTokenLine, dDef):
    "tokenize a string and return a list of lines of tokens"
    lToken = sTokenLine.split()
    lTokenLines = None
    for i, sToken in enumerate(lToken):
        # optional token?
        bNullPossible = sToken.startswith("?") and sToken.endswith("¿")
        if bNullPossible:
            sToken = sToken[1:-1]
        # token with definition?
        if sToken.startswith("({") and sToken.endswith("})") and sToken[1:-1] in dDef:
            sToken = "(" + dDef[sToken[1:-1]] + ")"
        elif sToken.startswith("{") and sToken.endswith("}") and sToken in dDef:
            sToken = dDef[sToken]
        if ( (sToken.startswith("[") and sToken.endswith("]")) or (sToken.startswith("([") and sToken.endswith("])")) ):
            # multiple token
            bSelectedGroup = sToken.startswith("(") and sToken.endswith(")")
            if bSelectedGroup:
                sToken = sToken[1:-1]
            lNewToken = sToken[1:-1].split("|")
            if not lTokenLines:
                lTokenLines = [ [s]  for s  in lNewToken ]

Modified gc_lang/fr/rules.grx from [817c2f4a81] to [d9185b38ce].

4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883



4884
4885
4886
4887
4888
4889
4890
....
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968



4969
4970
4971
4972
4973
4974
4975
....
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
....
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
....
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
....
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
@@@@
@@@@
@@@@
@@@@

# Dates
__dates__
    >depuis le                          [1er|1ᵉʳ|~\d\d?]  {mois}
    >depuis le                          [1er|1ᵉʳ|~\d\d?]  {mois}    [dernier|prochain|~\d{2,5}]
    [>le|>du|>au]                       [1er|1ᵉʳ|~\d\d?]  {mois}
    [>le|>du|>au]                       [1er|1ᵉʳ|~\d\d?]  {mois}    [dernier|prochain|~\d{2,5}]
    [jusqu’|Jusqu’|jusqu|Jusqu]  au     [1er|1ᵉʳ|~\d\d?]  {mois}
    [jusqu’|Jusqu’|jusqu|Jusqu]  au     [1er|1ᵉʳ|~\d\d?]  {mois}    [dernier|prochain|~\d{2,5}]
    >à  compter  du                     [1er|1ᵉʳ|~\d\d?]  {mois}
    >à  compter  du                     [1er|1ᵉʳ|~\d\d?]  {mois}    [dernier|prochain|~\d{2,5}]
    >en  l’  an  ~\d{2,5}
    >en  l’  an  de  grâce  ~\d{2,5}
    >en  {mois}  ~\d{2,5}
    [>de|d’|D’]  {mois}  ~\d{2,5}
    >en  ~\d{2,5}  [,|<end>]
    >en  ~\d{2,5}  @:¬:[AN].*:[pi]
    de   ~\d{2,5}  @:A.*:s
    >à  la  {mi_mois}
    >à  la  {mi_mois}    ~\d{2,5}
        <<- ~>> *





__saisons__
    >à  l’  [été|automne|hiver]  ~\d{2,4}
    >au  printemps  ~\d{2,4}
        <<- ~>> *

TEST: Une étude de 2005 publiée dans le Journal
................................................................................

## Avant

__purge_avant__
    >dès  [maintenant|lors|aujourd’hui]
    >dès  à     présent
    >dès  que   possible
    >dès  [demain|hier]
    >dès  [demain|hier]     [soir|matin|après-midi]
    >et  ainsi de suite
    >et  tutti quanti
    >et  /  >ou
    >ni [à|avec|contre|pour|chez|sur|sous|devant|derrière] [moi|toi|lui|elle|elles|eux|nous|vous] ni [à|avec|contre|pour|chez|sur|sous|devant|derrière] [moi|toi|lui|elle|elles|eux|nous|vous]
    >ni [à|avec|contre|pour|chez|sur|sous|devant|derrière] [moi|toi|lui|elle|elles|eux|nous|vous] , ni [à|avec|contre|pour|chez|sur|sous|devant|derrière] [moi|toi|lui|elle|elles|eux|nous|vous]
    >quant à présent
        <<- ~>> *


__horaires__
    24  [heures|h]  [sur|/]  24
    7   [jours|j]   [sur|/]  7
    >sept [jours|j]  [sur|/]  sept
    >vingt-quatre  heures  sur vingt-quatre
        <<- ~>> *


__loc_de_début_phrase__
    <start>  >car
    <start>  >et
    <start>  >et  puis
    <start>  >mais    
    <start>  >or  donc
    <start>  >puis
    <start>  [m’|M’]  est   avis  [que|qu’|qu]
        <<- ~>> *


__horaires__
      ~\d\d?  h
      ~\d\d?  h  ~\d\d?
      ~\d\d?  h           [du|ce]  [matin|soir]
      ~\d\d?  h  ~\d\d?   [du|ce]  [matin|soir]
    >à  ~\d\d?  h           de  l’ après-midi
    >à  ~\d\d?  h  ~\d\d?   de  l’ après-midi
    >à  ~\d\d?  h           cet  après-midi
    >à  ~\d\d?  h  ~\d\d?   cet  après-midi
      ~\d\d?  h           demain  [matin|soir|après-midi]
    >à  ~\d\d?  h  ~\d\d?   demain  [matin|soir|après-midi]
        <<- ~>> *
    




__loc_à__
    >à  ~\d+(?:,\d+|)  %
    >à  [autrui|bâbord|califourchon|chacun|confesse|contrecœur|contre-cœur|contretemps|demi-mot|foison|grand-peine|loisir|merveille|moitié|nouveau|outrance|peine|perpétuité|présent|raison|rallonge|rebrousse-poil|reculons|regret|renverse|risque|tâtons|tort|tribord|tout-va]
    >à  aucun prix
    >à  autre chose
    >à  bas [cout|coût|prix]
................................................................................
    >à  bien y [penser|réfléchir|songer|repenser]
    >à  bon [compte|escient|droit]
    >à  bout  de [bras|souffle|force|forces|nerf|nerfs]
    >à  bout  [portant|touchant]
    >à  bras ouverts
    >à  bras le corps
    >à  brève échéance
    >à  but lucratif
    >à  but non lucratif
    >à  cause [de|d’]  [ça|moi|toi|lui|nous|vous|elle|elles|eux]
    >à  ce [compte-là|moment-là|titre]
    >à  cet égard
    >à  cet instant
    >à  cet instant précis
    >à  cette [date|occasion]
    >à  cette époque
    >à  cette époque de l’année
    >à  cette heure
    >à  cette heure du jour
    >à  cette heure de la [journée|nuit]
    >à  cette heure [tardive|matinale]
................................................................................
    >à  loyer modéré
    >à  main [armée|droite|gauche|levée]
    >à  mains nues
    >à  maints égards
    >à  maintes reprises
    >à  marche forcée
    >à  merveille
    >à  [midi|minuit]
    >à  [midi|minuit]  pile
    >à  [mi-course|mi-distance|mi-temps]
    >à  moindres frais
    >à  mots couverts
    >à  moyen terme
    >à  moyenne échéance
    >à  [mes|tes|ses|nos|vos|leurs] [côtés|dépens|trousses]
    >à  [mes|tes|ses|nos|vos|leurs] risques et périls
................................................................................
    >à  n’ en pas douter
    >à  n’ en plus finir
    >à  n’ en point douter
    >à  parler franc
    >à  part [entière|ça|cela|ceci]
    >à  parts égales
    >à  partir [de|d’]  [aujourd’hui|ici|là|maintenant|rien]
    >à  partir [de|d’]  [demain|hier]
    >à  partir [de|d’]  [demain|hier]  [matin|midi|soir]
    >à  pas de [géant|loup|tortue|velours]
    >à  personne en danger
    >à  perte de vue
    >à  petit feu
    >à  petite [dose|échelle]
    >à  peu de choses près
    >à  peu de [distance|frais]
................................................................................
    >à  rude épreuve
    >à  s’ y méprendre
    >à  somme nulle
    >à  tel point
    >à  temps  [plein|partiel|complet]
    >à  tête reposée
    >à  tire d’ [aile|ailes]
    >à  tire-d’aile
    >à  tire-d’ailes
    >à  titre  [conservatoire|expérimental|indicatif|informatif|grâcieux|personnel|posthume]
    >à  titre  d’ exemple
    >à  tombeau ouvert
    >à  tort ou à raison
    >à  tort et à travers
    >à  tour de  [bras|rôle]
    >à  tout [âge|crin|instant|jamais|moment|prix]







|
<
|
<
|
<
|
<







|
<


>
>
>







 







|
<



|
<








|





|
<







|
|
|
|
|
<
<
<
<
|
<

|
>
>
>







 







|
<



|
<







 







|
<







 







|
<







 







<
|







4858
4859
4860
4861
4862
4863
4864
4865

4866

4867

4868

4869
4870
4871
4872
4873
4874
4875
4876

4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
....
4917
4918
4919
4920
4921
4922
4923
4924

4925
4926
4927
4928

4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943

4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955




4956

4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
....
4974
4975
4976
4977
4978
4979
4980
4981

4982
4983
4984
4985

4986
4987
4988
4989
4990
4991
4992
....
5062
5063
5064
5065
5066
5067
5068
5069

5070
5071
5072
5073
5074
5075
5076
....
5083
5084
5085
5086
5087
5088
5089
5090

5091
5092
5093
5094
5095
5096
5097
....
5120
5121
5122
5123
5124
5125
5126

5127
5128
5129
5130
5131
5132
5133
5134
@@@@
@@@@
@@@@
@@@@

# Dates
__dates__
    >depuis le                          [1er|1ᵉʳ|~\d\d?]  {mois}    ?[dernier|prochain|~\d{2,5}]¿

    [>le|>du|>au]                       [1er|1ᵉʳ|~\d\d?]  {mois}    ?[dernier|prochain|~\d{2,5}]¿

    [jusqu’|Jusqu’|jusqu|Jusqu]  au     [1er|1ᵉʳ|~\d\d?]  {mois}    ?[dernier|prochain|~\d{2,5}]¿

    >à  compter  du                     [1er|1ᵉʳ|~\d\d?]  {mois}    ?[dernier|prochain|~\d{2,5}]¿

    >en  l’  an  ~\d{2,5}
    >en  l’  an  de  grâce  ~\d{2,5}
    >en  {mois}  ~\d{2,5}
    [>de|d’|D’]  {mois}  ~\d{2,5}
    >en  ~\d{2,5}  [,|<end>]
    >en  ~\d{2,5}  @:¬:[AN].*:[pi]
    de   ~\d{2,5}  @:A.*:s
    >à  la  {mi_mois}    ?~\d{2,5}¿

        <<- ~>> *

TEST: ils sont depuis le 2 janvier {{parti}} à l’étranger.
TEST: ils sont depuis le 2 janvier 2012 {{parti}} à l’étranger.


__saisons__
    >à  l’  [été|automne|hiver]  ~\d{2,4}
    >au  printemps  ~\d{2,4}
        <<- ~>> *

TEST: Une étude de 2005 publiée dans le Journal
................................................................................

## Avant

__purge_avant__
    >dès  [maintenant|lors|aujourd’hui]
    >dès  à     présent
    >dès  que   possible
    >dès  [demain|hier]     ?[soir|matin|après-midi]¿

    >et  ainsi de suite
    >et  tutti quanti
    >et  /  >ou
    >ni [à|avec|contre|pour|chez|sur|sous|devant|derrière] [moi|toi|lui|elle|elles|eux|nous|vous] ?,¿ ni [à|avec|contre|pour|chez|sur|sous|devant|derrière] [moi|toi|lui|elle|elles|eux|nous|vous]

    >quant à présent
        <<- ~>> *


__horaires__
    24  [heures|h]  [sur|/]  24
    7   [jours|j]   [sur|/]  7
    >sept [jours|j]  [sur|/]  sept
    >vingt-quatre  heures  [sur|/] vingt-quatre
        <<- ~>> *


__loc_de_début_phrase__
    <start>  >car
    <start>  >et  ?puis¿

    <start>  >mais    
    <start>  >or  donc
    <start>  >puis
    <start>  [m’|M’]  est   avis  [que|qu’|qu]
        <<- ~>> *


__horaires__
    [>à|>de]  ~\d\d?  h  ?~\d\d?¿
    [>à|>de]  ~\d\d?  h  ?~\d\d?¿   [du|ce]  [matin|soir]
    [>à|>de]  ~\d\d?  h  ?~\d\d?¿   de  l’ après-midi
    [>à|>de]  ~\d\d?  h  ?~\d\d?¿   cet  après-midi




    [>à|>de]  ~\d\d?  h  ?~\d\d?¿   demain  [matin|soir|après-midi]

        <<- ~>> *

TEST: Le train de 2 h 47 {{arriveraient}} en retard.
TEST: Le train de 2 h 47 du matin {{arriveraient}} en retard.


__loc_à__
    >à  ~\d+(?:,\d+|)  %
    >à  [autrui|bâbord|califourchon|chacun|confesse|contrecœur|contre-cœur|contretemps|demi-mot|foison|grand-peine|loisir|merveille|moitié|nouveau|outrance|peine|perpétuité|présent|raison|rallonge|rebrousse-poil|reculons|regret|renverse|risque|tâtons|tort|tribord|tout-va]
    >à  aucun prix
    >à  autre chose
    >à  bas [cout|coût|prix]
................................................................................
    >à  bien y [penser|réfléchir|songer|repenser]
    >à  bon [compte|escient|droit]
    >à  bout  de [bras|souffle|force|forces|nerf|nerfs]
    >à  bout  [portant|touchant]
    >à  bras ouverts
    >à  bras le corps
    >à  brève échéance
    >à  but ?non¿ lucratif

    >à  cause [de|d’]  [ça|moi|toi|lui|nous|vous|elle|elles|eux]
    >à  ce [compte-là|moment-là|titre]
    >à  cet égard
    >à  cet instant ?[exact|précis]¿

    >à  cette [date|occasion]
    >à  cette époque
    >à  cette époque de l’année
    >à  cette heure
    >à  cette heure du jour
    >à  cette heure de la [journée|nuit]
    >à  cette heure [tardive|matinale]
................................................................................
    >à  loyer modéré
    >à  main [armée|droite|gauche|levée]
    >à  mains nues
    >à  maints égards
    >à  maintes reprises
    >à  marche forcée
    >à  merveille
    >à  [midi|minuit]  ?pile¿

    >à  [mi-course|mi-distance|mi-temps]
    >à  moindres frais
    >à  mots couverts
    >à  moyen terme
    >à  moyenne échéance
    >à  [mes|tes|ses|nos|vos|leurs] [côtés|dépens|trousses]
    >à  [mes|tes|ses|nos|vos|leurs] risques et périls
................................................................................
    >à  n’ en pas douter
    >à  n’ en plus finir
    >à  n’ en point douter
    >à  parler franc
    >à  part [entière|ça|cela|ceci]
    >à  parts égales
    >à  partir [de|d’]  [aujourd’hui|ici|là|maintenant|rien]
    >à  partir [de|d’]  [demain|hier]  ?[matin|midi|soir]¿

    >à  pas de [géant|loup|tortue|velours]
    >à  personne en danger
    >à  perte de vue
    >à  petit feu
    >à  petite [dose|échelle]
    >à  peu de choses près
    >à  peu de [distance|frais]
................................................................................
    >à  rude épreuve
    >à  s’ y méprendre
    >à  somme nulle
    >à  tel point
    >à  temps  [plein|partiel|complet]
    >à  tête reposée
    >à  tire d’ [aile|ailes]

    >à  [tire-d’aile|tire-d’ailes]
    >à  titre  [conservatoire|expérimental|indicatif|informatif|grâcieux|personnel|posthume]
    >à  titre  d’ exemple
    >à  tombeau ouvert
    >à  tort ou à raison
    >à  tort et à travers
    >à  tour de  [bras|rôle]
    >à  tout [âge|crin|instant|jamais|moment|prix]