Grammalecte  Diff

Differences From Artifact [a45f356c9c]:

To Artifact [70e931656a]:


12521
12522
12523
12524
12525
12526
12527

12528
12529
12530




12531
12532
12533



12534
12535
12536
12537
12538
12539
12540
12541
12542

12543
12544
12545
12546
12547
12548
12549
12550
12551
12552
12553
12554
12555
12556
12557
12558
12559
12560
12561
12562
12563
12564
12565
12566
12567
12568
12569
12570
12571
12572
12573
12574
__locutions_temporelles_communes__
    d’ un [jour|mois|trinestre|semestre|an|siècle|millénaire] à l’ autre
    d’ une [nanoseconde|milliseconde|seconde|minute|seconde|heure|journée|semaine|année|décennie] à l’ autre
    [de|d’] dernière [seconde|minute|heure|année]
        <<- ~>> *

    ## locutions au singulier

    au bout d’un                                    {unit_mesure_sing_mas}
    au bout d’une                                   {unit_mesure_sing_fem}
    un                                              {unit_mesure_sing_mas} auparavant




    une                                             {unit_mesure_sing_fem} auparavant
    un                                              {unit_mesure_sing_mas} plus [tôt|tard]
    une                                             {unit_mesure_sing_fem} plus [tôt|tard]



    à un                                            {unit_mesure_sing_mas} près
    à une                                           {unit_mesure_sing_fem} près
    après un                                        {unit_mesure_sing_mas}
    après une                                       {unit_mesure_sing_fem}
    après près [de|d’] un                           {unit_mesure_sing_mas}
    après près [de|d’] une                          {unit_mesure_sing_fem}
    après un                                        {unit_mesure_sing_mas} de bons et loyaux services
    après une                                       {unit_mesure_sing_fem} de bons et loyaux services
    après près [de|d’] un                           {unit_mesure_sing_mas} de bons et loyaux services

    après près [de|d’] une                          {unit_mesure_sing_fem} de bons et loyaux services
    au fil du                                       {unit_mesure_sing_mas} à venir
    au fil de la                                    {unit_mesure_sing_fem} à venir
    au fil de l’                                    [an|année|heure] à venir
    dans le                                         {unit_mesure_sing_mas} à venir
    dans la                                         {unit_mesure_sing_fem} à venir
    dans l’                                         [an|année|heure] à venir
    depuis un                                       {unit_mesure_sing_mas}
    depuis une                                      {unit_mesure_sing_fem}
    depuis près [de|d’] un                          {unit_mesure_sing_mas}
    depuis près [de|d’] une                         {unit_mesure_sing_fem}
    depuis un                                       {unit_mesure_sing_mas}
    depuis une                                      {unit_mesure_sing_fem}
    un                                              {unit_mesure_sing_mas} plus [tôt|tard]
    une                                             {unit_mesure_sing_fem} plus [tôt|tard]
    d’ ici un                                       {unit_mesure_sing_mas}
    d’ ici une                                      {unit_mesure_sing_fem}
    ?d’¿ il y a un                                  {unit_mesure_sing_mas}
    ?d’¿ il y a une                                 {unit_mesure_sing_fem}
    ?d’¿ il y a [moins|plus] [de|d’] un             {unit_mesure_sing_mas}
    ?d’¿ il y a [moins|plus] [de|d’] une            {unit_mesure_sing_fem}
    en un                                           {unit_mesure_sing_mas}
    en une                                          {unit_mesure_sing_fem}
    pendant un                                      {unit_mesure_sing_mas}
    pendant une                                     {unit_mesure_sing_fem}
    pendant près d’ un                              {unit_mesure_sing_mas}
    pendant près d’ une                             {unit_mesure_sing_fem}
    un                                              {unit_mesure_sing_mas} [après|avant|auparavant]
    une                                             {unit_mesure_sing_fem} [après|avant|auparavant]
    un                                              {unit_mesure_sing_mas} plus [tard|tôt]
    une                                             {unit_mesure_sing_fem} plus [tard|tôt]
    un peu [moins|plus] d’un                        {unit_mesure_sing_mas} auparavant







>
|
|
|
>
>
>
>
|
|
|
>
>
>


|
|

<
<
<

>







<
<


<
<
<
<






<
<
<
<







12521
12522
12523
12524
12525
12526
12527
12528
12529
12530
12531
12532
12533
12534
12535
12536
12537
12538
12539
12540
12541
12542
12543
12544
12545
12546



12547
12548
12549
12550
12551
12552
12553
12554
12555


12556
12557




12558
12559
12560
12561
12562
12563




12564
12565
12566
12567
12568
12569
12570
__locutions_temporelles_communes__
    d’ un [jour|mois|trinestre|semestre|an|siècle|millénaire] à l’ autre
    d’ une [nanoseconde|milliseconde|seconde|minute|seconde|heure|journée|semaine|année|décennie] à l’ autre
    [de|d’] dernière [seconde|minute|heure|année]
        <<- ~>> *

    ## locutions au singulier
    au bout d’ un                                   {unit_mesure_sing_mas}
    après un                                        {unit_mesure_sing_mas}
    depuis un                                       {unit_mesure_sing_mas}
    en un                                           {unit_mesure_sing_mas}
    pendant un                                      {unit_mesure_sing_mas}
        <<- not morph(>1, ":A.*:[me]:[pi]") ~>> *

    au bout d’ une                                  {unit_mesure_sing_fem}
    après une                                       {unit_mesure_sing_fem}
    depuis une                                      {unit_mesure_sing_fem}
    en une                                          {unit_mesure_sing_fem}
    pendant une                                     {unit_mesure_sing_fem}
        <<- not morph(>1, ":A.*:[fe]:[pi]") and not (value(\-1, "|année|") and re.search("^[0-9]+$", >1)) ~>> *

    à un                                            {unit_mesure_sing_mas} près
    à une                                           {unit_mesure_sing_fem} près
    après un                                        {unit_mesure_sing_mas} de bons et loyaux services
    après une                                       {unit_mesure_sing_fem} de bons et loyaux services
    après près [de|d’] un                           {unit_mesure_sing_mas}



    après près [de|d’] un                           {unit_mesure_sing_mas} de bons et loyaux services
    après près [de|d’] une                          {unit_mesure_sing_fem}
    après près [de|d’] une                          {unit_mesure_sing_fem} de bons et loyaux services
    au fil du                                       {unit_mesure_sing_mas} à venir
    au fil de la                                    {unit_mesure_sing_fem} à venir
    au fil de l’                                    [an|année|heure] à venir
    dans le                                         {unit_mesure_sing_mas} à venir
    dans la                                         {unit_mesure_sing_fem} à venir
    dans l’                                         [an|année|heure] à venir


    depuis près [de|d’] un                          {unit_mesure_sing_mas}
    depuis près [de|d’] une                         {unit_mesure_sing_fem}




    d’ ici un                                       {unit_mesure_sing_mas}
    d’ ici une                                      {unit_mesure_sing_fem}
    ?d’¿ il y a un                                  {unit_mesure_sing_mas}
    ?d’¿ il y a une                                 {unit_mesure_sing_fem}
    ?d’¿ il y a [moins|plus] [de|d’] un             {unit_mesure_sing_mas}
    ?d’¿ il y a [moins|plus] [de|d’] une            {unit_mesure_sing_fem}




    pendant près d’ un                              {unit_mesure_sing_mas}
    pendant près d’ une                             {unit_mesure_sing_fem}
    un                                              {unit_mesure_sing_mas} [après|avant|auparavant]
    une                                             {unit_mesure_sing_fem} [après|avant|auparavant]
    un                                              {unit_mesure_sing_mas} plus [tard|tôt]
    une                                             {unit_mesure_sing_fem} plus [tard|tôt]
    un peu [moins|plus] d’un                        {unit_mesure_sing_mas} auparavant
12625
12626
12627
12628
12629
12630
12631
12632
12633


12634




12635



12636

12637
12638













12639
12640
12641
12642
12643
12644
12645
12646
12647
12648
12649
12650
12651
12652
12653
12654
12655
12656
12657
12658
12659
12660
12661
12662
12663
12664
12665
12666
12667
12668
12669
    pendant la              [dernière|précédente|prochaine]     {unit_mesure_sing_fem}
    depuis un               ?[assez|si|très|trop]¿ long     {unit_mesure_sing_mas}
    depuis une              ?[assez|si|très|trop]¿ longue   {unit_mesure_sing_fem}
    pendant un  ?[long]¿    {unit_mesure_sing_mas}
    pendant une ?[longue]¿  {unit_mesure_sing_fem}
        <<- ~>> *

    ## locutions épicènes plurielles
    au bout de [plusieurs|quelques]                 {unit_mesure_plur}


    $:B:e:p                                         {unit_mesure_plur} auparavant




    $:B:e:p                                         {unit_mesure_plur} plus [tôt|tard]



    à quelques                                      {unit_mesure_plur} près

    après [des|plusieurs|quelques|*NUM|$:B:e:p]     {unit_mesure_plur}
    après près [de|d’] [*NUM|$:B:e:p]               {unit_mesure_plur}













    après [des|plusieurs|quelques|*NUM|$:B:e:p]     {unit_mesure_plur} de bons et loyaux services
    après près [de|d’] [*NUM|$:B:e:p]               {unit_mesure_plur} de bons et loyaux services
    au fil des                                      {unit_mesure_plur} à venir
    dans les                                        {unit_mesure_plur} à venir
    depuis $:B:e:p                                  {unit_mesure_plur}
    depuis *NUM                                     {unit_mesure_plur}
    depuis près [de|d’] $:B:e:p                     {unit_mesure_plur}
    depuis près [de|d’] *NUM                        {unit_mesure_plur}
    depuis quelques                                 {unit_mesure_plur}
    des                                             {unit_mesure_plur} plus [tôt|tard]
    des                                             {unit_mesure_plur} à venir
    d’ ici quelques                                 {unit_mesure_plur}
    ?d’¿ il y a [*NUM|$:B:e:p]                      {unit_mesure_plur}
    ?d’¿ il y a [moins|plus] [de|d’] [*NUM|$:B:e:p] {unit_mesure_plur}
    ?d’¿ il y a quelques                            {unit_mesure_plur}
    en *NUM                                         {unit_mesure_plur}
    pendant [des|plusieurs|quelques|*NUM|$:B:e:p]   {unit_mesure_plur}
    pendant près [de|d’] [*NUM|$:B:e:p]             {unit_mesure_plur}
    quelques                                        {unit_mesure_plur} [après|avant|auparavant]
    quelques                                        {unit_mesure_plur} plus [tard|tôt]
    un peu [moins|plus] de [$:B:e:p|*NUM]           {unit_mesure_plur} auparavant
        <<- ~>> *

    ## locutions genrées plurielles
    au cours des            ?$:B:e:p¿ {unit_mesure_plur_mas}    [derniers|passés|précédents|prochains|suivants]
    au cours des            ?$:B:e:p¿ {unit_mesure_plur_fem}    [dernières|passées|précédentes|prochaines|suivantes]
    au fil des              ?$:B:e:p¿ {unit_mesure_plur_mas}    [derniers|passés|précédents|prochains|suivants]
    au fil des              ?$:B:e:p¿ {unit_mesure_plur_fem}    [dernières|passées|précédentes|prochaines|suivantes]
    dans les                ?$:B:e:p¿ {unit_mesure_plur_mas}    [derniers|passés|précédents|prochains|suivants]
    dans les                ?$:B:e:p¿ {unit_mesure_plur_fem}    [dernières|passées|précédentes|prochaines|suivantes]
    dans le courant des     ?$:B:e:p¿ {unit_mesure_plur_mas}    [derniers|passés|précédents|prochains|suivants]







|
|
>
>
|
>
>
>
>
|
>
>
>
|
>
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>




<
<
<
<
<






<
<
<





<







12621
12622
12623
12624
12625
12626
12627
12628
12629
12630
12631
12632
12633
12634
12635
12636
12637
12638
12639
12640
12641
12642
12643
12644
12645
12646
12647
12648
12649
12650
12651
12652
12653
12654
12655
12656
12657
12658
12659
12660
12661





12662
12663
12664
12665
12666
12667



12668
12669
12670
12671
12672

12673
12674
12675
12676
12677
12678
12679
    pendant la              [dernière|précédente|prochaine]     {unit_mesure_sing_fem}
    depuis un               ?[assez|si|très|trop]¿ long     {unit_mesure_sing_mas}
    depuis une              ?[assez|si|très|trop]¿ longue   {unit_mesure_sing_fem}
    pendant un  ?[long]¿    {unit_mesure_sing_mas}
    pendant une ?[longue]¿  {unit_mesure_sing_fem}
        <<- ~>> *

    ## locutions plurielles
    au bout de [plusieurs|quelques]                 {unit_mesure_plur_mas}
    après [des|plusieurs|quelques|*NUM|$:B:e:p]     {unit_mesure_plur_mas}
    après près [de|d’] [*NUM|$:B:e:p]               {unit_mesure_plur_mas}
    depuis $:B:e:p                                  {unit_mesure_plur_mas}
    depuis *NUM                                     {unit_mesure_plur_mas}
    depuis près [de|d’] $:B:e:p                     {unit_mesure_plur_mas}
    depuis près [de|d’] *NUM                        {unit_mesure_plur_mas}
    depuis quelques                                 {unit_mesure_plur_mas}
    en *NUM                                         {unit_mesure_plur_mas}
    pendant [des|plusieurs|quelques|*NUM|$:B:e:p]   {unit_mesure_plur_mas}
    pendant près [de|d’] [*NUM|$:B:e:p]             {unit_mesure_plur_mas}
        <<- not morph(>1, ":A.*:[me]:[pi]") ~>> *

    au bout de [plusieurs|quelques]                 {unit_mesure_plur_fem}
    après [des|plusieurs|quelques|*NUM|$:B:e:p]     {unit_mesure_plur_fem}
    après près [de|d’] [*NUM|$:B:e:p]               {unit_mesure_plur_fem}
    depuis $:B:e:p                                  {unit_mesure_plur_fem}
    depuis *NUM                                     {unit_mesure_plur_fem}
    depuis près [de|d’] $:B:e:p                     {unit_mesure_plur_fem}
    depuis près [de|d’] *NUM                        {unit_mesure_plur_fem}
    depuis quelques                                 {unit_mesure_plur_fem}
    en *NUM                                         {unit_mesure_plur_fem}
    pendant [des|plusieurs|quelques|*NUM|$:B:e:p]   {unit_mesure_plur_fem}
    pendant près [de|d’] [*NUM|$:B:e:p]             {unit_mesure_plur_fem}
        <<- not morph(>1, ":A.*:[fe]:[pi]") ~>> *

    $:B:e:p                                         {unit_mesure_plur} auparavant
    $:B:e:p                                         {unit_mesure_plur} plus [tôt|tard]
    à quelques                                      {unit_mesure_plur} près
    après [des|plusieurs|quelques|*NUM|$:B:e:p]     {unit_mesure_plur} de bons et loyaux services
    après près [de|d’] [*NUM|$:B:e:p]               {unit_mesure_plur} de bons et loyaux services
    au fil des                                      {unit_mesure_plur} à venir
    dans les                                        {unit_mesure_plur} à venir





    des                                             {unit_mesure_plur} plus [tôt|tard]
    des                                             {unit_mesure_plur} à venir
    d’ ici quelques                                 {unit_mesure_plur}
    ?d’¿ il y a [*NUM|$:B:e:p]                      {unit_mesure_plur}
    ?d’¿ il y a [moins|plus] [de|d’] [*NUM|$:B:e:p] {unit_mesure_plur}
    ?d’¿ il y a quelques                            {unit_mesure_plur}



    quelques                                        {unit_mesure_plur} [après|avant|auparavant]
    quelques                                        {unit_mesure_plur} plus [tard|tôt]
    un peu [moins|plus] de [$:B:e:p|*NUM]           {unit_mesure_plur} auparavant
        <<- ~>> *


    au cours des            ?$:B:e:p¿ {unit_mesure_plur_mas}    [derniers|passés|précédents|prochains|suivants]
    au cours des            ?$:B:e:p¿ {unit_mesure_plur_fem}    [dernières|passées|précédentes|prochaines|suivantes]
    au fil des              ?$:B:e:p¿ {unit_mesure_plur_mas}    [derniers|passés|précédents|prochains|suivants]
    au fil des              ?$:B:e:p¿ {unit_mesure_plur_fem}    [dernières|passées|précédentes|prochaines|suivantes]
    dans les                ?$:B:e:p¿ {unit_mesure_plur_mas}    [derniers|passés|précédents|prochains|suivants]
    dans les                ?$:B:e:p¿ {unit_mesure_plur_fem}    [dernières|passées|précédentes|prochaines|suivantes]
    dans le courant des     ?$:B:e:p¿ {unit_mesure_plur_mas}    [derniers|passés|précédents|prochains|suivants]
20046
20047
20048
20049
20050
20051
20052
20053
20054
20055
20056
20057
20058
20059
20060
20061
20062
20063
20064
20065
20066
TEST: deux divisé par douze
TEST: il en faut trois minimum, cinq maximum


__gn_nombre_chiffres_1m__
    [0|1|01]  @:[NAQ].*:p¬*
        <<- /gn/ space_after(\1, 1, 1) and not value(\2, "|Rois|Corinthiens|Thessaloniciens|")
        -2>> =suggSing(\2)                                                                  && Accord de nombre erroné : « \1 » devrait être au singulier.

    *NUM  *WORD
        <<- /gn/ space_after(\1, 1, 1) and not value(<1, "|/|") and not re.search("^0*[01](?:,[0-9]+|)$", \1) and not morph(<1, ":N")
            and ( (morph(\2, ":[NA].*:s", "*") and not value(\2, "|maximum|minimum|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|"))
            or \1 in aREGULARPLURAL )
        -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné : « \2 » devrait être au pluriel.

    *NUM  *WORD  *WORD
        <<- /gn/ not value(\2, "|maximum|minimum|fois|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|")
            and not re.search("^0*[01](?:,[0-9]+|)$", \1) and not value(<1, "|et|ou|de|d’|") and not morph(\3, ">(?:seule|maximum|minimum)/") >>>
        <<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*")))
            and not apposition(\2, \3)
        -3>> =switchGender(\3, True)                                                                && Accord de genre erroné entre « \2 » et « \3 ».







|





|







20056
20057
20058
20059
20060
20061
20062
20063
20064
20065
20066
20067
20068
20069
20070
20071
20072
20073
20074
20075
20076
TEST: deux divisé par douze
TEST: il en faut trois minimum, cinq maximum


__gn_nombre_chiffres_1m__
    [0|1|01]  @:[NAQ].*:p¬*
        <<- /gn/ space_after(\1, 1, 1) and not value(\2, "|Rois|Corinthiens|Thessaloniciens|")
        -2>> =suggSing(\2)                                                                  && Accord de nombre erroné avec « \1 » : « \2 » devrait être au singulier.

    *NUM  *WORD
        <<- /gn/ space_after(\1, 1, 1) and not value(<1, "|/|") and not re.search("^0*[01](?:,[0-9]+|)$", \1) and not morph(<1, ":N")
            and ( (morph(\2, ":[NA].*:s", "*") and not value(\2, "|maximum|minimum|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|"))
            or \1 in aREGULARPLURAL )
        -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.

    *NUM  *WORD  *WORD
        <<- /gn/ not value(\2, "|maximum|minimum|fois|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|")
            and not re.search("^0*[01](?:,[0-9]+|)$", \1) and not value(<1, "|et|ou|de|d’|") and not morph(\3, ">(?:seule|maximum|minimum)/") >>>
        <<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*")))
            and not apposition(\2, \3)
        -3>> =switchGender(\3, True)                                                                && Accord de genre erroné entre « \2 » et « \3 ».