13569
13570
13571
13572
13573
13574
13575
13576
13577
13578
13579
13580
13581
13582
13583
13584
13585
13586
13587
13588
13589
13590
13591
13592
13593
13594
13595
13596
13597
13598
13599
13600
13601
13602
13603
13604
13605
13606
13607
13608
13609
13610
13611
13612
13613
13614
13615
13616
13617
13618
13619
13620
13621
13622
13623
13624
13625
13626
13627
13628
13629
13630
13631
13632
13633
13634
13635
13636
13637
13638
13639
13640
13641
13642
13643
13644
13645
13646
13647
13648
13649
13650
13651
13652
13653
13654
13655
13656
13657
13658
13659
13660
13661
13662
13663
13664
13665
13666
13667
13668
13669
13670
13671
13672
13673
13674
13675
13676
13677
13678
13679
13680
13681
13682
13683
13684
13685
13686
13687
13688
13689
13690
13691
13692
13693
13694
13695
13696
13697
13698
13699
13700
13701
13702
13703
13704
13705
13706
13707
13708
13709
13710
13711
13712
13713
13714
13715
13716
13717
13718
13719
13720
13721
13722
13723
13724
13725
13726
13727
13728
13729
13730
13731
13732
13733
13734
13735
13736
13737
13738
13739
13740
13741
13742
13743
13744
13745
13746
13747
13748
13749
13750
13751
13752
13753
13754
13755
13756
13757
13758
13759
13760
13761
13762
13763
13764
13765
13766
|
13622
13623
13624
13625
13626
13627
13628
13629
13630
13631
13632
13633
13634
13635
13636
13637
13638
13639
13640
13641
13642
13643
13644
13645
13646
13647
13648
13649
13650
13651
13652
13653
13654
13655
13656
13657
13658
13659
13660
13661
13662
13663
13664
13665
13666
13667
13668
13669
13670
13671
13672
13673
13674
13675
13676
13677
13678
13679
13680
13681
13682
13683
13684
13685
13686
13687
13688
13689
13690
13691
13692
13693
13694
13695
13696
13697
13698
13699
13700
13701
13702
13703
13704
13705
13706
13707
13708
13709
13710
13711
13712
13713
13714
13715
13716
13717
13718
13719
13720
13721
13722
13723
13724
13725
13726
13727
13728
13729
13730
13731
13732
13733
13734
13735
13736
13737
13738
13739
13740
13741
13742
13743
13744
13745
13746
13747
13748
13749
13750
13751
13752
13753
13754
13755
13756
13757
13758
13759
13760
13761
13762
13763
13764
13765
13766
13767
13768
13769
13770
13771
13772
13773
13774
13775
13776
13777
13778
13779
13780
13781
13782
13783
13784
13785
13786
13787
13788
13789
13790
13791
13792
13793
13794
13795
13796
13797
13798
13799
13800
13801
13802
13803
13804
13805
13806
13807
13808
13809
13810
13811
13812
13813
13814
13815
13816
13817
13818
13819
13820
13821
13822
13823
13824
13825
13826
13827
13828
13829
13830
13831
13832
13833
13834
13835
13836
13837
13838
13839
13840
13841
13842
13843
13844
13845
13846
13847
13848
13849
13850
13851
13852
13853
13854
13855
|
+
-
-
-
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
TEST: Ç’eût été prendre des vessies pour des lanternes.
TEST: C’eût été foncer tête baissée dans la gueule du loup.
TEST: Leur passe-temps, ça a été faire n’importe quoi.
TEST: Ne pas ressortir le livre le plus remarqué de la collaboration aurait été faire acte de censure.
TEST: Partir aurait été assurer sa survie.
!!!! Participes passés: accord en nombre avec la conjugaison de « être » !!
@@@@
@@@@
@@@@
__ppas_être_accord_sing__
(*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([est|était|fut|sera|serait|fût]) @:[NA].*:p¬:[GMWYsi]
<<- /ppas/ not morph(\1, ":G") --1>> =suggSing(\-1) # Accord avec “\2” : “\-1” devrait être au singulier.
(*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([a|avait|eut|aura|aurait|ait|eût]) été @:[NA].*:p¬:[GMWYsi]
<<- /ppas/ not morph(\1, ":G") --1>> =suggSing(\-1) # Accord avec “\2 été” : “\-1” devrait être au singulier.
@@@@
@@@@END_GRAPH _
[<start>|,] ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([est|était|fut|sera|serait|fût]) @:[NA].*:p¬:[GMWYsi]
<<- /ppas/ --1>> =suggSing(\-1) # Accord avec “\1” : “\-1” devrait être au singulier.
@@@@
@@@@
@@@@
@@@@
[<start>|,] ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([a|avait|eut|aura|aurait|ait|eût]) été @:[NA].*:p¬:[GMWYsi]
<<- /ppas/ --1>> =suggSing(\-1) # Accord avec “\1 été” : “\-1” devrait être au singulier.
TEST: ces emmerdeurs, qui ne sont toujours pas {{parti}}, ont encore eu une idée pour nous pourrir la vie.
TEST: cette petite chienne avait été longtemps {{malades}}.
!!!! Participes passés: accord en nombre avec la conjugaison de « être » !!
## Contrôle de l’
__[i]/ppas(ppas_être_accord_singulier)__
({w_2}) +(?:qui +|)(?:ne +|n’|)(?:est|était|f[uû]t|sera(?:it|)|a(?:vait|ura|urait|it|) +été|e[uû]t +été) +({w_2}) @@0,$
<<- morphex(\2, ":[NAQ].*:p", ":[GMWYsi]") and not morph(\1, ":G", False)
-2>> =suggSing(@) # Accord avec « être » : « \2 » devrait être au singulier.
__ppas_être_accord_plur__
(*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([sont|étaient|furent|seront|seraient|soient|fussent|étions|fûmes|serons|serions|soyons|fussions]) @:[NA].*:s¬:[GMWYpi]|>légion/
<<- /ppas/ not morph(\1, ":G") --1>> =suggPlur(\-1) # Accord avec “\2” : “\-1” devrait être au pluriel.
(*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([ont|avaient|eurent|auront|auraient|aient|eussent|avons|avions|eûmes|aurons|aurions|ayons|eussions]) été @:[NA].*:s¬:[GMWYpi]|>légion/
<<- /ppas/ not morph(\1, ":G") --1>> =suggPlur(\-1) # Accord avec “\2 été” : “\-1” devrait être au pluriel.
[<start>|,] ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([sont|étaient|furent|seront|seraient|soient|fussent|étions|fûmes|serons|serions|soyons|fussions]) @:[NA].*:s¬:[GMWYpi]|>légion/
<<- /ppas/ --1>> =suggPlur(\-1) # Accord avec “\1” : “\-1” devrait être au pluriel.
[<start>|,] ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([ont|avaient|eurent|auront|auraient|aient|eussent|avons|avions|eûmes|aurons|aurions|ayons|eussions]) été @:[NA].*:s¬:[GMWYpi]|>légion/
<<- /ppas/ --1>> =suggPlur(\-1) # Accord avec “\1 été” : “\-1” devrait être au pluriel.
__[i]/ppas(ppas_être_accord_pluriel)__
({w_2}) +(?:qui +|)(?:ne +|n’|)(?:sont|étaient|fu(?:r|ss)ent|ser(?:ont|aient)|soient|ont +été|a(?:vaient|uront|uraient|ient) +été|eu(?:r|ss)ent +été) +({w_2}) @@0,$
TEST: ces atouts sont très {{favorable}}
TEST: qui furent {{balayé}} au premier coup de vent.
<<- not re.search("(?i)^légion$", \2) and morphex(\2, ":[NAQ].*:s", ":[GWYpi]") and not morph(\1, ":G", False)
-2>> =suggPlur(@) # Accord avec « être » : « \2 » devrait être au pluriel.
!!!! Participes passés: accord en genre avec le substantif précédent !!
__[i]/ppas(ppas_sujet_être_accord_genre)__
(?<![dD]’)(une? |les? |la |l’|ce(?:s|t|tte|) |[mts](?:on|a|es) |[nv]os |leurs? ) *({w_2}) +(?:qui +|)(?:ne +|n’|)(?:est|étai(?:en|)t|f[uû]t|sera(?:i(?:en|)t|)|soi(?:en|)t|s(?:er|)ont|fu(?:r|ss)ent) +({w_2}) @@0,w,$
<<- not re.search("(?i)^légion$", \3)
and ((morphex(\3, ":[AQ].*:f", ":[GWme]") and morphex(\2, ":m", ":[Gfe]")) or (morphex(\3, ":[AQ].*:m", ":[GWfe]") and morphex(\2, ":f", ":[Gme]")))
and not ( morph(\3, ":p", False) and morph(\2, ":s", False) )
and not morph(word(-1), ":(?:R|P|Q|Y|[123][sp])", False, False) and not before(r"\b(?:et|ou|de) +$")
-3>> =switchGender(@) # Accord erroné : « \2 » et « \3 » ne sont pas accordés en genre.
__ppas_sujet_être_accord_genre__
[<start>|,|@:Cs] [un|le|son|ce|cet] *WORD ?qui¿ ?[ne|n’]¿ [est|était|fut|sera|serait|fût] *WORD
[<start>|,|@:Cs] [un|le|son|ce|cet] *WORD ?qui¿ ?[ne|n’]¿ [a|avait|eut|aura|aurait|ait|eût] été *WORD
<<- /ppas/ morph(\3, ":[NA].*:m", ":[GWfe]") and morph(\-1, ":A.*:f", ":[GWme]")
--1>> =switchGender(\-1) # Accord erroné : “\3” et “\-1” ne sont pas accordés en genre.
[<start>|,|@:Cs] [une|la|ma|ta|sa|cette] *WORD ?qui¿ ?[ne|n’]¿ [est|était|fut|sera|serait|fût] *WORD
[<start>|,|@:Cs] [une|la|ma|ta|sa|cette] *WORD ?qui¿ ?[ne|n’]¿ [a|avait|eut|aura|aurait|ait|eût] été *WORD
<<- /ppas/ morph(\3, ":[NA].*:f", ":[GWme]") and morph(\-1, ":A.*:m", ":[GWfe]")
--1>> =switchGender(\-1) # Accord erroné : “\3” et “\-1” ne sont pas accordés en genre.
[<start>|,|@:Cs] [l’|ton|son|notre|votre|leur] *WORD ?qui¿ ?[ne|n’]¿ [est|était|fut|sera|serait|fût] *WORD
[<start>|,|@:Cs] [l’|ton|son|notre|votre|leur] *WORD ?qui¿ ?[ne|n’]¿ [a|avait|eut|aura|aurait|ait|eût] été *WORD
<<- /ppas/ (morph(\3, ":[NA].*:f", ":[GWme]") and morph(\-1, ":A.*:m", ":[GWfe]")) or (morph(\3, ":[NA].*:m", ":[GWfe]") and morph(\-1, ":A.*:f", ":[GWme]"))
--1>> =switchGender(\-1) # Accord erroné : “\3” et “\-1” ne sont pas accordés en genre.
[<start>|,|@:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] *WORD ?qui¿ ?[ne|n’]¿ [sont|étaient|furent|seront|seraient|soient|fussent] *WORD
[<start>|,|@:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] *WORD ?qui¿ ?[ne|n’]¿ [ont|avaient|eurent|auront|auraient|aient|eussent] été *WORD
<<- /ppas/ (morph(\3, ":[NA].*:f", ":[GWme]") and morph(\-1, ":A.*:m", ":[GWfe]")) or (morph(\3, ":[NA].*:m", ":[GWfe]") and morph(\-1, ":A.*:f", ":[GWme]"))
--1>> =switchGender(\-1) # Accord erroné : “\3” et “\-1” ne sont pas accordés en genre.
TEST: la danse est {{fini}}…
TEST: Un orage est {{annoncée}}.
TEST: Une averse est {{annoncé}}.
TEST: Le chien ne sera pas {{oubliés}}
TEST: les femmes sont vraiment {{partis}} ->> parties
TEST: les hommes ne sont pas tout à fait {{fâché}} ->> fâchés
TEST: les enfants ne sont pas {{content}}
TEST: les réunions sans cesse reportées sont {{annulés}}
TEST: l’avenir de la région était {{suspendue}}
TEST: il prétendait que les banques universelles « à la française » s’{{était}} très honorablement comportées
__[s]/ppas(ppas_nom_propre_être_accord_genre)__
(?<![dD]’)([A-ZÉÈ]{w_2}) +(?:qui +|)(?:ne +|n’|)(?:est|étai(?:en|)t|f[uû]t|sera(?:i(?:en|)t|)|soi(?:en|)t|s(?:er|)ont|fu(?:r|ss)ent|a(?:vait|ura|urait|it|) +été|e[uû]t +été) +({w_2}) @@0,$
<<- not re.search("(?i)^légion$", \2)
and ((morphex(\1, ":M[1P].*:f", ":[GWme]") and morphex(\2, ":m", ":[GWfe]")) or (morphex(\1, ":M[1P].*:m", ":[GWfe]") and morphex(\2, ":f", ":[GWme]")))
__ppas_nom_propre_être_accord_genre__
[<start>|,|@:Cs] @M[1P] ?qui¿ ?[ne|n’]¿ [est|était|fut|sera|serait|fût] *WORD
[<start>|,|@:Cs] @M[1P] ?qui¿ ?[ne|n’]¿ [a|avait|eut|aura|aurait|ait|eût] été *WORD
<<- /ppas/ (morph(\2, ":M[1P].*:f", ":[GWme]") and morph(\-1, ":A.*:m", ":[GWfe]")) or (morph(\2, ":M[1P].*:m", ":[GWfe]") and morph(\-1, ":A.*:f", ":[GWme]"))
and not morph(word(-1), ":(?:R|P|Q|Y|[123][sp])", False, False) and not before(r"\b(?:et|ou|de) +$")
-2>> =switchGender(@) # Accord erroné : « \1 » et « \2 » ne sont pas accordés en genre.
--1>> =switchGender(\-1) # Accord erroné : “\2” et “\-1” ne sont pas accordés en genre.
TEST: Antoine est {{mariée}}.
TEST: Antoine n’est pas {{mariés}}.
TEST: Antoine est peut-être {{fatiguée}}.
TEST: Éric n’est pas très {{fatiguée}}.
TEST: Martine est {{marié}}.
TEST: Martine n’est pas {{marié}}.
TEST: Martine est très {{intelligent}}.
TEST: Martine n’est pas très {{intelligent}}.
TEST: Pierre est {{dominée}} par son adversaire.
!!!! Accords avec l’adjectif précédant le pronom !!
__[i]/ppas(ppas_adj_accord_je_tu)__
^ *({w_2}s),? (je?|tu) @@*,$
<<- morphex(\1, ":A.*:p", ":(?:G|E|M1|W|s|i)")
-1>> =suggSing(@) # Si cet adjectif se réfère au pronom « \2 », l’adjectif devrait être au singulier (et accordé en genre).
__ppas_adj_accord_je_tu__
<start> *WORD ?,¿ [je|j’|tu]
<<- /ppas/ morph(\2, ":A.*:p", ":[GEMWsi]")
-2>> =suggSing(\2) # Si cet adjectif se réfère au pronom « \-1 », l’adjectif devrait être au singulier (et accordé en genre).
TEST: {{Découragés}}, je suis parti.
__[i]/ppas(ppas_adj_accord_il)__
^ *({w_2}[es]),? il @@*
<<- morphex(\1, ":A.*:[fp]", ":(?:G|E|M1|W|m:[si])") and not after("^ y a")
-1>> =suggMasSing(@) # Si cet adjectif se réfère au pronom « il », l’adjectif devrait être au masculin singulier.
__ppas_adj_accord_il__
<start> *WORD ?,¿ il
<<- /ppas/ morph(\2, ":A.*:[fp]", ":(?:G|E|M1|W|m:[si])") and not after("^ y a")
-2>> =suggMasSing(\2) # Si cet adjectif se réfère au pronom « il », l’adjectif devrait être au masculin singulier.
TEST: — {{Déçue}}, il s’en est allé.
TEST: Lancés il y a plus de 13 ans, le 14 février 2001, ces outils
__[i]/ppas(ppas_adj_accord_elle)__
^ *({w_2}[éuitsx]),? elle @@*
<<- morphex(\1, ":A.*:[mp]", ":(?:G|E|M1|W|f:[si])|>(?:désoler|pire)/")
-1>> =suggFemSing(@) # Si cet adjectif se réfère au pronom « elle », l’adjectif devrait être au féminin singulier.
__ppas_adj_accord_elle__
<start> *WORD ?,¿ elle
<<- /ppas/ morph(\2, ":A.*:[mp]", ":(?:G|E|M1|W|f:[si])|>(?:désoler|pire)/")
-2>> =suggFemSing(\2) # Si cet adjectif se réfère au pronom « elle », l’adjectif devrait être au féminin singulier.
TEST: — {{Déçu}}, elle s’en est allée.
__[i]/ppas(ppas_adj_accord_ils)__
^ *({w_2}[eiuéts]),? ils @@*
<<- morphex(\1, ":A.*:[fs]", ":(?:G|E|M1|W|m:[pi])|>(?:désoler|pire)/")
-1>> =suggMasPlur(@) # Si cet adjectif se réfère au pronom « ils », l’adjectif devrait être au masculin pluriel.
__ppas_adj_accord_ils__
<start> *WORD ?,¿ ils
<<- /ppas/ morph(\2, ":A.*:[fs]", ":(?:G|E|M1|W|m:[pi])|>(?:désoler|pire)/")
-2>> =suggMasPlur(\2) # Si cet adjectif se réfère au pronom « ils », l’adjectif devrait être au masculin pluriel.
TEST: Très vite, ils sont partis
TEST: Une fois terminé, ils sont revenus.
TEST: Vraiment {{soucieuse}}, ils sont.
TEST: Désolé, ils ne viendront pas.
TEST: Pire, ils piétinent parfois les droits humains.
__[i]/ppas(ppas_adj_accord_elles)__
^ *({w_2}[eiuétsx]),? elles @@*
<<- morphex(\1, ":A.*:[ms]", ":(?:G|E|M1|W|f:[pi])|>(?:désoler|pire)/")
-1>> =suggFemPlur(@) # Si cet adjectif se réfère au pronom « elles », l’adjectif devrait être au féminin pluriel.
__ppas_adj_accord_elles__
<start> *WORD ?,¿ elles
<<- /ppas/ morph(\2, ":A.*:[ms]", ":(?:G|E|M1|W|f:[pi])|>(?:désoler|pire)/")
-2>> =suggFemPlur(\2) # Si cet adjectif se réfère au pronom « elles », l’adjectif devrait être au féminin pluriel.
TEST: Absolument {{heureux}}, elles exultèrent de joie.
## se rendre compte
__[i]/ppas(ppas_être_rendu_compte)__
({etre})(?:-(?:ils?|elles?|on|je|tu|[ns]ous)|) +((rendue?s?) compte) @@0,$,w
<<- morph(\1, "V0e", False) and \3 != "rendu" -3>> rendu # Accord erroné : dans l’expression « se rendre compte », « rendu » est invariable.
<<- ~2>> _
TEST: Elles se sont {{rendues}} compte
TEST: La puissance publique s’en est-elle rendu compte ?
!!
!!
!!!! Inversion verbe/sujet !!
!!
!!
__[i]/ppas(ppas_inversion_être_je)__
__ppas_inversion_être_je__
(?:s[ou]is|étais|fus(?:sé|)|serais?)-je +({w_2}) @@$
<<- morphex(\1, ":(?:[123][sp]|Y|[NAQ].*:p)", ":[GWsi]")
-1>> =suggSing(@) # Accord avec le sujet « je » : « \1 » devrait être au singulier.
__[i]/ppas(ppas_inversion_être_tu)__
/-je @:(?:[123][sp]|Y|[NA].*:p)¬:[GWsi]
<<- /ppas/ morphVC(\1, ":V0e") -2>> =suggSing(\2) # Accord avec le sujet “je” : “\2” devrait être au singulier.
__ppas_inversion_être_tu__
(?:es|étais|fus(?:ses|)|serai?s)-tu +({w_2}) @@$
<<- morphex(\1, ":(?:[123][sp]|Y|[NAQ].*:p)", ":[GWsi]")
-1>> =suggSing(@) # Accord avec le sujet « tu » : « \1 » devrait être au singulier.
__[i]/ppas(ppas_inversion_être_il_ce)__
(?:est|était|f[uû]t|sera(?:-t|it))-(il|ce) +({w_2}) @@*,$
<<- morphex(\2, ":(?:[123][sp]|Y|[NAQ].*:[pf])", ":(?:G|W|[me]:[si])|question/") and not (\1 == "ce" and morph(\2, ":Y", False))
-2>> =suggMasSing(@) # Accord avec le sujet « il » : « \2 » devrait être au masculin singulier.
__[i]/ppas(ppas_inversion_être_elle)__
(?:est|était|f[uû]t|sera(?:-t|it))-elle +({w_2}) @@$
<<- morphex(\1, ":(?:[123][sp]|Y|[NAQ].*:[pm])", ":(?:G|W|[fe]:[si])")
-1>> =suggFemSing(@) # Accord avec le sujet « elle » : « \1 » devrait être au féminin singulier.
__[i]/ppas(ppas_inversion_être_nous)__
(?:sommes|étions|fûmes|fussions|seri?ons)-nous +({w_2}) @@$
<<- morphex(\1, ":(?:[123][sp]|Y|[NAQ].*:s)", ":[GWpi]|>dire/")
-1>> =suggPlur(@) # Accord avec le sujet « nous » : « \1 » devrait être au pluriel.
__[i]/ppas(ppas_inversion_être_ils)__
/-tu @:(?:[123][sp]|Y|[NA].*:p)¬:[GWsi]
<<- /ppas/ morphVC(\1, ":V0e") -2>> =suggSing(\2) # Accord avec le sujet “tu” : “\2” devrait être au singulier.
__ppas_inversion_être_il__
/-il @:(?:[123][sp]|Y|[NA].*:[pf])¬:(?:G|W|[me]:[si])|question/
<<- /ppas/ morphVC(\1, ":V0e") -2>> =suggMasSing(\2) # Accord avec le sujet “il” : “\2” devrait être au masculin singulier.
__ppas_inversion_être_ce__
/-ce @:(?:[123][sp]|[NA].*:[pf])¬:(?:G|W|Y|[me]:[si])
<<- /ppas/ morphVC(\1, ":V0e") -2>> =suggMasSing(\2) # Accord avec le sujet “ce” : “\2” devrait être au masculin singulier.
__ppas_inversion_être_elle__
/-elle @:(?:[123][sp]|Y|[NA].*:[pm])¬:(?:G|W|[fe]:[si])
<<- /ppas/ morphVC(\1, ":V0e") -2>> =suggFemSing(\2) # Accord avec le sujet “elle” : “\2” devrait être au féminin singulier.
__ppas_inversion_être_il__
/-on @:(?:[123][sp]|Y)¬:(?:G|W)
<<- /ppas/ morphVC(\1, ":V0e") -2>> =suggVerbPpas(\2) # Accord avec le sujet “on”.
__ppas_inversion_être_nous__
/-nous @:(?:[123][sp]|Y|[NA].*:s)¬:[GWpi]|>(?:dire|légion)/
<<- /ppas/ morphVC(\1, ":V0e") -2>> =suggPlur(\2) # Accord avec le sujet “nous” : “\2” devrait être au pluriel.
__ppas_inversion_être_il__
/-vous @:(?:[123][sp]|Y)¬:(?:G|W)
<<- /ppas/ not value(\1, "|rendez-vous|") and morphVC(\1, ":V0e")
-2>> =suggVerbPpas(\2) # Accord avec le sujet “vous”.
__ppas_inversion_être_ils__
(?:sont|étaient|fu(?:r|ss)ent|ser(?:o|aie)nt)-ils +({w_2}) @@$
<<- not re.search("(?i)^légion$", \1) and (morphex(\1, ":(?:[123][sp]|Y|[NAQ].*:s)", ":[GWpi]|>dire/") or morphex(\1, ":(?:[123][sp]|[AQ].*:f)", ":[GWme]|>dire/"))
-1>> =suggMasPlur(@) # Accord avec « ils » : « \1 » devrait être au masculin pluriel.
__[i]/ppas(ppas_inversion_être_elles)__
/-ils @:(?:[123][sp]|Y|[NA].*:[sf])¬:(?:G|W|[me]:[pi])|>(?:dire|légion)/
<<- /ppas/ morphVC(\1, ":V0e") -2>> =suggMasPlur(\2) # Accord avec “ils” : “\2” devrait être au masculin pluriel.
__ppas_inversion_être_elles__
(?:sont|étaient|fu(?:r|ss)ent|ser(?:o|aie)nt)-elles +({w_2}) @@$
<<- not re.search("(?i)^légion$", \1) and (morphex(\1, ":(?:[123][sp]|Y|[NAQ].*:s)", ":[GWpi]|>dire/") or morphex(\1, ":(?:[123][sp]|[AQ].*:m)", ":[GWfe]|>dire/"))
-1>> =suggFemPlur(@) # Accord avec « elles » : « \1 » devrait être au féminin pluriel.
/-elles @:(?:[123][sp]|Y|[NA].*:[sm])¬:(?:G|W|[fe]:[pi])|>(?:dire|légion)/
<<- /ppas/ morphVC(\1, ":V0e") -2>> =suggFemPlur(\2) # Accord avec “elles” : “\2” devrait être au féminin pluriel.
TEST: serais-je {{fâchés}} contre vous ?
TEST: Est-elle {{arriver}} ?
TEST: Sont-elles {{arriver}} ?
TEST: Est-il {{arriver}} ?
TEST: Sont-ils {{arriver}} ?
TEST: Est-elle déjà {{arriver}} ?
TEST: Sont-elles tout à fait {{arriver}} ?
TEST: Est-il déjà {{arriver}} ?
TEST: Es-tu {{arriver}} ?
TEST: Sont-ils déjà {{arriver}} ?
TEST: Es-tu déjà {{arriver}} ?
TEST: Sommes-nous {{arriver}} ?
TEST: Sommes-nous déjà {{arriver}} ?
TEST: Était-elle {{fatiguer}} ?
TEST: Ne sont-elles pas {{aveugle}}
TEST: N’est-il pas {{aveugles}}
TEST: Sont-ils vraiment {{aveugle}}
TEST: est-on déjà {{passer}} de ce côté-là
TEST: Est-il souvent {{arrivait}} de se tromper ?
TEST: Ne sommes-nous pas {{aveugle}}
TEST: Que se sont-ils dit ?
TEST: Ton rendez-vous arrive bientôt.
TEST: Est-il question de ceci ou de cela ?
TEST: Est-ce former de futurs travailleurs ou bien des citoyens
@@@@
@@@@
@@@@
@@@@
@@@@END_GRAPH _
@@@@
@@@@
@@@@
@@@@
## Accord et incohérences
__[i]/ppas(ppas_sont)__
sont ({w_2}) @@5
<<- morphex(\1, ":[NAQ]", ":[QWGBMpi]") and not re.search("(?i)^(?:légion|nombre|cause)$", \1) and not before(r"(?i)\bce que?\b")
-1>> =suggPlur(@) # Incohérence : « \1 » est au singulier. Ou vous confondez « sont » et « son », ou l’accord en nombre est incorrect.
<<- __else__ and morphex(\1, ":V", ":(?:N|A|Q|W|G|3p)") and not before(r"(?i)\bce que?\b")
|