9722
9723
9724
9725
9726
9727
9728
9729
9730
9731
9732
9733
9734
9735
9736
9737
9738
9739
9740
9741
9742
9743
9744
9745
9746
9747
9748
9749
9750
9751
9752
9753
9754
9755
9756
9757
9758
9759
9760
9761
9762
9763
9764
9765
9766
9767
9768
9769
9770
9771
9772
9773
9774
9775
9776
9777
9778
|
9729
9730
9731
9732
9733
9734
9735
9736
9737
9738
9739
9740
9741
9742
9743
9744
9745
9746
9747
9748
9749
9750
9751
9752
9753
9754
9755
9756
9757
9758
9759
9760
9761
9762
9763
9764
9765
9766
9767
9768
9769
9770
9771
9772
9773
9774
9775
9776
9777
9778
9779
9780
9781
9782
9783
9784
9785
9786
9787
9788
9789
9790
9791
9792
9793
9794
9795
9796
9797
9798
9799
9800
9801
9802
9803
9804
9805
9806
9807
9808
9809
9810
9811
9812
9813
9814
9815
9816
9817
9818
9819
9820
9821
9822
9823
9824
9825
9826
9827
9828
9829
9830
9831
9832
9833
9834
9835
9836
9837
9838
9839
9840
9841
9842
9843
9844
9845
9846
9847
9848
9849
9850
9851
9852
9853
9854
9855
9856
9857
9858
9859
9860
9861
9862
9863
9864
9865
9866
9867
9868
9869
9870
9871
9872
9873
9874
9875
9876
9877
9878
9879
9880
9881
9882
9883
9884
9885
9886
9887
9888
|
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
TEST: {{vas y}}, ce n’est pas dangereux
TEST: {{convenez en}}, c’est une belle affaire malgré son prix élevé
!!!
!!!
!!! Processeur: destruction des pronoms qui précèdent un verbe et de l’adverbe de négation “ne”.
!!! Processeur: destruction des pronoms qui précèdent un verbe et de l’adverbe de négation “ne”.
!!!
!!!
# Brainfuck (ici, prudence !)
__[i](p_pro_per_obj01)__
__[i](p_pro_per_obj01)__ ne +(?:l(?:ui|eur|a|es?)|[mts]e|[nv]ous) +(?:l(?:a|es?|ui|eur)|en|y) <<- ~>> >
__[i](p_pro_per_obj02)__ ne +(?:[mts](?:e|’(?:en|y))|[nv]ous|l(?:es?|a|ui|eur|’(?:en|y))) <<- ~>> >
__[i](p_pro_per_obj03)__ [mts]e +l(?:a|es?) <<- ~>> >
__[i](p_pro_per_obj04)__ [nmsl]’(?:en|y) <<- ~>> >
__[i](p_pro_per_obj05)__ l(?:a|es?) +(?:lui|en) <<- ~>> >
__[i](p_pro_per_obj06)__ lui +(?:la|les?|en|y) <<- not morph(word(-1), ":R", False, True) ~>> >
__[i](p_pro_per_obj07)__ leur +(?:en|y) <<- not morph(word(-1), ":R", False, False) ~>> >
__[i](p_pro_per_obj08)__ (?:je|tu|ils?|on) ([nv]ous(?: la| les?|)|lui) @@$ <<- ~1>> >
__[i](p_pro_per_obj09)__ (?:je|tu|ils?|on) (l(?:es?|a)) ({w_1}) @@w,$
<<- \1 == "le" and not morph(\2, ":N.*:[me]:[si]") ~1>> >
<<- \1 == "la" and not morph(\2, ":N.*:[fe]:[si]") ~1>> >
<<- \1 == "les" and not morph(\2, ":N.*:.:[pi]") ~1>> >
__[i](p_pro_per_obj10)__ (?:elles?|[nv]ous) ([nv]ous(?: la| les?|)|l(?:es?|ui|a)) @@$ <<- not morph(word(-1), ":R", False, False) ~1>> >
__[i](p_pro_per_obj11)__ ce(?:ux|lles?|lui|la|) qui ([nv]ous(?: la| les?|)|l(?:es?|ui|a)) @@$ <<- ~1>> >
__[i](p_pro_per_obj12)__ (?<!’)(en) ({w_2}) @@0,$ <<- morph(\2, ":[123][sp]") ~1>> >
__[i](p_pro_per_obj13)__ (?:tu|il|on) (en) @@3 <<- not morph(word(-1), ":[123]s", False, False) ~1>> >
__[i](p_pro_per_obj14)__ (?<!’)elle (en) @@5 <<- not morph(word(-1), ":(?:[123]s|R)", False, False) ~1>> >
__[i](p_pro_per_obj15)__ (?<!’)elles (en) @@6 <<- not morph(word(-1), ":(?:[123]p|R)", False, False) ~1>> >
__[i](p_pro_per_obj16)__ ils (en) @@4 <<- not morph(word(-1), ":3p", False, False) ~1>> >
__[i](p_pro_per_obj17)__ (?<!’)(y) ({w_2}) @@0,2 <<- morph(\2, ":[123][sp]", False) ~1>> >
__[i](p_pro_per_obj18)__ (le) ({w_2}) @@0,3 <<- morphex(\2, ":(?:[123][sp]|Y)", ":(?:[NAQ].*:[me]:[si]|G|M)") ~1>> >
__[i](p_pro_per_obj19)__ (la) ({w_2}) @@0,3 <<- morphex(\2, ":(?:[123][sp]|Y)", ":(?:[NAQ].*:[fe]:[si]|G|M)") ~1>> >
__[i](p_pro_per_obj20)__ (l’)({w_2}) @@0,2 <<- morphex(\2, ":(?:[123][sp]|Y)", ":(?:[NAQ].*:[si]|G|M)") ~1>> >
__[i](p_pro_per_obj21)__ (leur) ({w_2}) @@0,5 <<- morphex(\2, ":(?:[123][sp]|Y)", ":(?:[NAQ].*:[si]|G|M)") ~1>> >
__[s](p_pro_per_obj22)__ [lL]’a <<- ~>> > a
__[i](p_pro_per_obj23)__ (nous) ({w_2}) @@0,5 <<- morphex(\2, ":(?:[123][sp]|Y)", ":(?:A|G|M|1p)") ~1>> >
__[i](p_pro_per_obj24)__ (vous) ({w_2}) @@0,5 <<- morphex(\2, ":(?:[123][sp]|Y)", ":(?:A|G|M|2p)") ~1>> >
__[i](p_pro_per_obj25)__ (?:à|de) ([nv]ous|lui|les?|en)(?! qui) @@$ <<- ~1>> >
__[i](p_pro_per_obj26)__ (s’)({w4}) @@0,2 <<- morph(\2, ":V", False) ~1>> >
__[i](p_pro_per_obj27)__ (?:je|tu|ils?|elles?|on) (l’|l(?:es?|a|ui|eur) +|[nv]ous +){w_2} @@* <<- isStart() ~1>> >
__[i](p_pro_per_obj28)__ (?:je|tu|ils?|elles?|on|[nv]ous|ce(?:ux|elles?|lui|la|) qui) (l’)({w4}) @@*,$ <<- morph(\2, ":V", False) ~1>> >
__[i](p_pro_per_obj29)__ (t’(?:en|y)) ({w_2}) @@0,$ <<- not morph(\2, ":2s", False) or before(r"(?i)\b(?:je|tu|on|ils?|elles?|nous) +$") ~1>> >
__[i](p_pro_per_obj30)__ (t’)({w_2}) @@0,$ <<- not morph(\2, ":2s|>(ils?|elles?|on) ", False) or before(r"(?i)\b(?:je|tu|on|ils?|elles?|nous) +$") ~1>> >
__[i>(p_pro_per_obj31)__ ne [mtsl]’ <<- ~>> >
__[i>(p_pro_per_obj32)__ [mts]e +l’ <<- ~>> >
__[i>(p_pro_per_obj33)__ [nm]’ <<- ~>> >
__[i](p_pro_per_obj34)__ [nmts]e <<- ~>> >
__<s>(p_pro_per_obj35)__ > +> <<- ~>> >
(ne +(?:l(?:ui|eur|a|es?)|[mts]e|[nv]ous) +(?:l(?:a|es?|ui|eur)|en|y)) +({w_1}) @@0,$
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
<<- ~1>> *
__[i](p_pro_per_obj02)__
(ne +(?:[mts](?:e|’(?:en|y))|[nv]ous|l(?:es?|a|ui|eur|’(?:en|y)))) +({w_1}) @@0,$
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
<<- ~1>> *
__[i](p_pro_per_obj03)__
([mts]e +l(?:a|es?)) +({w_1}) @@0,$
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
<<- ~1>> *
__[i](p_pro_per_obj04)__
([nmsl]’(?:en|y)) +({w_1}) @@0,$
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
<<- ~1>> *
__[i](p_pro_per_obj05)__
(l(?:a|es?) +(?:lui|en)) +({w_1}) @@0,$
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
<<- ~1>> *
__[i](p_pro_per_obj06)__
(lui +(?:la|les?|en|y)) +({w_1}) @@0,$
<<- not morph(word(-1), ":R", False, True) ~1>> *
<<- __also__ and morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
__[i](p_pro_per_obj07)__
(leur +(?:en|y)) +({w_1}) @@0,$
<<- not morph(word(-1), ":R", False, False) ~1>> *
<<- __also__ and morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
__[i](p_pro_per_obj08)__
(?:je|tu|ils?|on) ([nv]ous(?: la| les?|)|lui) +({w_1}) @@*,$
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
<<- __also__ ~1>> *
__[i](p_pro_per_obj09)__
(?:je|tu|ils?|on) (l(?:es?|a)) ({w_1}) @@w,$
<<- (\1 == "le" and not morph(\2, ":N.*:[me]:[si]"))
or (\1 == "la" and not morph(\2, ":N.*:[fe]:[si]"))
or (\1 == "les" and not morph(\2, ":N.*:.:[pi]")) ~1>> *
<<- __also__ and morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
__[i](p_pro_per_obj10)__
(?:elles?|[nv]ous) ([nv]ous(?: la| les?|)|l(?:es?|ui|a)) +({w_1}) @@*,$
<<- not morph(word(-1), ":R", False, False) ~1>> *
<<- __also__ and morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
__[i](p_pro_per_obj11)__
ce(?:ux|lles?|lui|la|) qui ([nv]ous(?: la| les?|)|l(?:es?|ui|a)) +({w_1}) @@*,$
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
<<- __also__ ~1>> *
__[i](p_pro_per_obj12)__
(?<!’)(en) ({w_2}) @@0,$
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
<<- __also__ ~1>> *
__[i](p_pro_per_obj13)__
(?:tu|il|on) (en) +({w_1}) @@w,$
<<- not morph(word(-1), ":[123]s", False, False) ~1>> *
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
__[i](p_pro_per_obj14)__
(?<!’)elle (en) +({w_1}) @@w,$
<<- not morph(word(-1), ":(?:[123]s|R)", False, False) ~1>> *
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
__[i](p_pro_per_obj15)__
(?<!’)elles (en) +({w_1}) @@w,$
<<- not morph(word(-1), ":(?:[123]p|R)", False, False) ~1>> *
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
__[i](p_pro_per_obj16)__
ils (en) +({w_1}) @@4,$
<<- not morph(word(-1), ":3p", False, False) ~1>> *
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
__[i](p_pro_per_obj17)__
(?<!’)(y) ({w_2}) @@0,2
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) ~1>> *
<<- __also__ =>> select(\2, ":(?:[123][sp]|P|Y)")
__[i](p_pro_per_obj18)__
(le) ({w_2}) @@0,3
<<- morphex(\2, ":(?:[123][sp]|P|Y)", ":(?:[NAQ].*:[me]:[si]|G|M)") ~1>> *
<<- __also__ =>> select(\2, ":(?:[123][sp]|P|Y)")
__[i](p_pro_per_obj19)__
(la) ({w_2}) @@0,3
<<- morphex(\2, ":(?:[123][sp]|P|Y)", ":(?:[NAQ].*:[fe]:[si]|G|M)") ~1>> *
<<- __also__ =>> select(\2, ":(?:[123][sp]|P|Y)")
__[i](p_pro_per_obj20)__
(l’)({w_2}) @@0,2
<<- morphex(\2, ":(?:[123][sp]|P|Y)", ":(?:[NAQ].*:[si]|G|M)") ~1>> *
<<- __also__ =>> select(\2, ":(?:[123][sp]|P|Y)")
__[i](p_pro_per_obj21)__
(leur) ({w_2}) @@0,5
<<- morphex(\2, ":(?:[123][sp]|P|Y)", ":(?:[NAQ].*:[si]|G|M)") ~1>> *
<<- __also__ =>> select(\2, ":(?:[123][sp]|P|Y)")
__[s](p_pro_per_obj22)__
[lL]’(a) @@$
<<- =>> select(\1, ":V")
<<- ~>> " a"
__[i](p_pro_per_obj23)__
(nous) ({w_2}) @@0,5
<<- morphex(\2, ":(?:[123][sp]|P|Y)", ":(?:A|G|M|1p)") =>> select(\2, ":(?:[123][sp]|P|Y)")
<<- __also__ ~1>> *
__[i](p_pro_per_obj24)__
(vous) ({w_2}) @@0,5
<<- morphex(\2, ":(?:[123][sp]|P|Y)", ":(?:A|G|M|2p)") =>> select(\2, ":(?:[123][sp]|P|Y)")
<<- __also__ ~1>> *
__[i](p_pro_per_obj25)__
(?:à|de) ([nv]ous|lui|les?|en) (?!qui)({w_2}) @@w,$
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
<<- ~1>> *
__[i](p_pro_per_obj26)__
(s’)({w4}) @@0,2
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
<<- __also__ ~1>> *
__[i](p_pro_per_obj27)__
(?:je|tu|ils?|elles?|on) (l’|l(?:es?|a|ui|eur) +|[nv]ous +)({w_2}) @@*,$
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
<<- isStart() ~1>> *
__[i](p_pro_per_obj28)__
(?:je|tu|ils?|elles?|on|[nv]ous|ce(?:ux|elles?|lui|la|) qui) (l’)({w4}) @@*,$
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
<<- __also__ ~1>> *
__[i](p_pro_per_obj29)__
(t’(?:en|y)) ({w_2}) @@0,$
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
<<- not morph(\2, ":2s", False) or before(r"(?i)\b(?:je|tu|on|ils?|elles?|nous) +$") ~1>> *
__[i](p_pro_per_obj30)__
(t’)({w_2}) @@0,$
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
<<- not morph(\2, ":2s|>(ils?|elles?|on) ", False) or before(r"(?i)\b(?:je|tu|on|ils?|elles?|nous) +$") ~1>> *
__[i>(p_pro_per_obj31)__
(ne [mtsl]’)({w_1}) @@0,$
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
<<- ~1>> *
__[i>(p_pro_per_obj32)__
([mts]e +l’)({w_1}) @@0,$
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
<<- ~1>> *
__[i>(p_pro_per_obj33)__
[nm]’({w_1}) @@2
<<- morph(\1, ":(?:[123][sp]|P|Y)", False) =>> select(\1, ":(?:[123][sp]|P|Y)")
<<- ~>> " \1"
__[i](p_pro_per_obj34)__
([nmts]e +)({w_1}) @@0,$
<<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
<<- __also__ ~1>> *
#__<s>(p_pro_per_obj35)__
# > +>
# <<- ~>> >
# Fin du Brainfuck
!!
!!
!!!! Confusions
|
10757
10758
10759
10760
10761
10762
10763
10764
10765
10766
10767
10768
10769
10770
10771
10772
10773
10774
10775
10776
10777
10778
10779
10780
10781
10782
10783
10784
10785
10786
10787
10788
10789
10790
10791
10792
10793
10794
10795
10796
10797
10798
10799
10800
10801
10802
10803
10804
10805
10806
10807
10808
10809
10810
10811
10812
10813
10814
10815
10816
10817
10818
10819
10820
10821
10822
10823
10824
10825
10826
10827
10828
10829
10830
10831
10832
10833
10834
10835
10836
10837
10838
10839
10840
10841
10842
10843
10844
10845
10846
10847
10848
10849
10850
10851
10852
10853
10854
10855
10856
10857
10858
10859
10860
10861
10862
10863
10864
10865
10866
10867
10868
10869
10870
10871
10872
10873
10874
10875
10876
10877
10878
10879
10880
10881
10882
10883
10884
10885
10886
10887
10888
10889
|
10867
10868
10869
10870
10871
10872
10873
10874
10875
10876
10877
10878
10879
10880
10881
10882
10883
10884
10885
10886
10887
10888
10889
10890
10891
10892
10893
10894
10895
10896
10897
10898
10899
10900
10901
10902
10903
10904
10905
10906
10907
10908
10909
10910
10911
10912
10913
10914
10915
10916
10917
10918
10919
10920
10921
10922
10923
10924
10925
10926
10927
10928
10929
10930
10931
10932
10933
10934
10935
10936
10937
10938
10939
10940
10941
10942
10943
10944
10945
10946
10947
10948
10949
10950
10951
10952
10953
10954
10955
10956
10957
10958
10959
10960
10961
10962
10963
10964
10965
10966
10967
10968
10969
10970
10971
10972
10973
10974
10975
10976
10977
10978
10979
10980
10981
10982
10983
10984
10985
10986
10987
10988
10989
10990
10991
10992
10993
10994
10995
|
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
|
#### VERBE AUXILIAIRE
__[i]/conf(conf_avoir_sujet_participe_passé)__
({avoir})-(?:je|tu|ils?|elles?|on) +({ppas}) @@0,$
<<- morph(\1, ">avoir ", False) and morph(\2, ":V.......e_.*:Q", False) -1>> _ # Incohérence. La forme verbale “\2” ne peut pas être utilisé avec l’auxiliaire “avoir”, seulement avec l’auxiliaire “être”.
__[i]/conf(conf_sujet_avoir_participe_passé)__
(?:j’|je |tu |ils? |elles? |on ) *>? *({avoir}) +({ppas}) @@*,$
(?:j’|je |tu |ils? |elles? |on ) *({avoir}) +({ppas}) @@*,$
<<- morph(\1, ">avoir ", False) and morph(\2, ":V.......e_.*:Q", False) -1>> _ # Incohérence. La forme verbale “\2” ne peut pas être utilisé avec l’auxiliaire “avoir”, seulement avec l’auxiliaire “être”.
TEST: {{Ait}}-il arrivé à ses fins ?
TEST: je n’{{avais}} pas parti avec eux.
TEST: Avais-je partie liée avec lui ?
TEST: il {{avait}} parti.
!!
!!
!!!! Modes verbaux
!!
!!
# conditionnel / futur
__[i]/vmode(vmode_j_aimerais_vinfi)__
j(?:e +|’)(aimerai|préf[éè]rerai|apprécierai|voudrai|souhaiterai) +({w_1}) @@w,$
<<- morphex(\2, ":[YX]|>y ", "R") -1>> \1s # Si vous exprimez un souhait, utilisez le conditionnel et non le futur.
<<- morphex(\2, ":[YX]|>(?:y|ne|que?) ", ":R") -1>> \1s # Si vous exprimez un souhait, utilisez le conditionnel et non le futur.
__[i>/vmode(vmode_j_aimerais_pronom)__
j(?:e +|’)(aimerai|préf[éè]rerai|apprécierai|voudrai|souhaiterai) +(?:que? |>) @@w
<<- -1>> \1s # Si vous exprimez un souhait, utilisez le conditionnel et non le futur.
TEST: J’{{aimerai}} savoir ce dont il retourne.
TEST: dans tous les cas j’{{aimerai}} ne rien savoir
TEST: Je {{voudrai}} qu’il soit déjà là.
TEST: J’aimerai ces cours-là autant que les autres.
TEST: J’aimerai la danse et la musique, puisque vous l’exigez.
__[i>/vmode(vmode_j_aurais_aimé_que_avoir_être1)__
j’(aurai) +(?:aimé|souhaité|préféré|voulu) +(?:que? |ne |> ) @@2
<<- -1>> aurais|eusse # Pour un souhait passé, utilisez le conditionnel passé et non le futur antérieur. Exemple pour le futur antérieur : « quand j’aurai fini… »
__[i]/vmode(vmode_j_aurais_aimé_que_avoir_être2)__
j’(aurai) +(?:aimé|souhaité|préféré|voulu) +(?:[nmtsl]’|)({infi}) @@2,$
<<- morph(\2, ":Y", False)
__[i]/vmode(vmode_j_aurais_aimé_que_avoir_être)__
j’(aurai) +(?:aimé|souhaité|préféré|voulu) +(que?|ne|{infi}) @@2,$
<<- morph(\2, ":Y|>(?:ne|que?) ", False)
-1>> aurais|eusse # Pour un souhait passé, utilisez le conditionnel passé et non le futur antérieur. Exemple pour le futur antérieur : « quand j’aurai fini… »
TEST: J’{{aurai}} aimé nous offrir ce magnifique cadeau.
TEST: j’{{aurai}} voulu être un artiste.
TEST: j’{{aurai}} préféré ne pas avoir à l’entendre.
TEST: j’{{aurai}} préféré l’entendre un autre jour.
TEST: j’{{aurai}} aimé que vous m’en parliez.
TEST: Quand j’en aurai fini avec eux, vous aurez du mal à les reconnaître.
TEST: Quand j’aurai fini ce boulot, je ne sais pas ce que je ferai.
TEST: Quand j’aurai soif et faim, je m’arrêterai.
# Si suivi du conditionnel ou du subjonctif
__[i]/vmode(vmode_si_sujet1)__
si +({w1}) +>? *({w_2}) @@w,$
si +({w1}) +({w_2}) @@w,$
<<- morph(\1, ":(?:Os|M)", False) and morphex(\2, ":[SK]", ":(?:G|V0|I)") and isStart()
-2>> _ # Ce verbe ne devrait être ni au conditionnel, ni au subjonctif.
__[i]/vmode(vmode_si_sujet2)__
(?:si [jt]’|s’ils? )>? *({w_2}) @@$
(?:si [jt]’|s’ils? +)({w_2}) @@$
<<- morphex(\1, ":[SK]", ":(?:G|V0|I)") and isStart()
-1>> _ # Ce verbe ne devrait être ni au conditionnel, ni au subjonctif.
TEST: Si Pierre {{avancerait}} sa voiture de quelques mètres, ça nous permettrait de passer.
TEST: s’ils ne {{mangeraient}} pas tous les jours, ils seraient moins gros.
# Dès que + indicatif
__[i]/vmode(vmode_dès_que)__
dès +que? +({w1}) +>? *({w_2}) @@w,$
dès +que? +({w1}) +({w_2}) @@w,$
<<- morph(\1, ":(?:Os|M)", False) and morphex(\2, ":S", ":[IG]") -2>> =suggVerbMode(@, ":I", \1) # Ce verbe ne devrait pas être au subjonctif.
# <<- morph(\1, ":(?:Os|M)", False) and morph(\2, ":K", False) -2>> =suggVerbMode(@, ":If", \1) # Ce verbe ne devrait pas être au conditionnel.
#TEST: dès que je le {{verrais}}
TEST: dès qu’il le {{voie}}
TEST: donnant à entendre qu’il avait l’intention de violer Laura dès qu’il en aurait l’occasion
# verbe que + subjonctif
__[i]/vmode(vmode_qqch_que_subjonctif1)__
(afin|pour|quoi|(?:perm|fa|v[oe]|ordonn|exig|désir|dout|suff|préf[éè]r)\w+) +que? +({w1}) +>? *({w_2}) @@0,w,$
(afin|pour|quoi|(?:perm|fa|v[oe]|ordonn|exig|désir|dout|suff|préf[éè]r)\w+) +que? +({w1}) +({w_2}) @@0,w,$
<<- morph(\1, ">(?:afin|pour|quoi|permettre|falloir|vouloir|ordonner|exiger|désirer|douter|préférer|suffire) ", False)
and morph(\2, ":(?:Os|M)", False) and morphex(\3, ":I", ":[GYS]")
and not (morph(\1, ">douter ", False) and morph(\3, ":(?:If|K)", False))
-3>> =suggVerbMode(@, ":S", \2) # Ce verbe devrait être au subjonctif.
TEST: Il suffit qu’il {{court}} plus
TEST: Je veux qu’il {{finit}} son repas.
TEST: quoi qu’il en {{conclut}}
TEST: Je ne veux pas que tu {{es}} des ennuis
TEST: Nul doute qu’elle nourrira à brève échéance la haine de demain à notre égard.
TEST: Je ne doute pas qu’ils réussiront leur mission.
TEST: Je me doutais bien qu’Apple pourrait marcher
TEST: il ne fait aucun doute qu’Amazon le sait.
TEST: quoi que nous autres hommes ayons pu faire
__[i]/vmode(vmode_qqch_que_subjonctif2)__
(?:à condition|pour peu|il > peut) +que? +({w1}) +>? *({w_2}) @@w,$
(?:à condition|pour peu|il +peut) +que? +({w1}) +({w_2}) @@w,$
<<- morph(\1, ":(?:Os|M)", False) and morphex(\2, ":", ":[GYS]") -2>> =suggVerbMode(@, ":S", \1) # Ce verbe devrait être au subjonctif.
TEST: à condition qu’il {{finit}} son boulot.
TEST: pour peu qu’il {{prend}} son devoir sérieux…
TEST: il se peut que nous {{avons}} tort.
# indicatif nécessaire
__[i]/vmode(vmode_sujet_indicatif)__
^ *(je|j’(?:en|y)|tu|ils?|elles?|on|nous|vous) +>? *({w_2}) @@*,$
^ *(je|j’(?:en|y)|tu|ils?|elles?|on|nous|vous) +({w_2}) @@*,$
<<- morphex(\2, ":S", ":[GIK]") and not re.search("^e(?:usse|û[mt]es|ût)", \2)
-2>> =suggVerbMode(@, ":I", \1) # Ce verbe ne devrait pas être au subjonctif.
__[i]/vmode(vmode_j_indicatif)__
^ *j’({w_2}) @@$
<<- morphex(\1, ":S", ":[GIK]") and \1 != "eusse" -1>> =suggVerbMode(@, ":I", "je") # Ce verbe ne devrait pas être au subjonctif.
TEST: Il {{ait}} parti.
TEST: Il en {{conclue}} qu’il a eu raison.
TEST: j’en {{aie}} marre
TEST: j’{{aie}} faim
# Après que + indicatif
__[i]/vmode(vmode_après_que_indicatif)__
après que? ({w_2}) +>? *({w_2}) @@w,$
après que? ({w_2}) +({w_2}) @@w,$
<<- morph(\1, ":(?:Os|M)", False) and (morph(\2, ":V.*:S") or morph(\2, ":V0e.*:S", False))
-2>> =suggVerbMode(@, ":I", \1)
# Après « après que », le verbe s’emploie pas au subjonctif mais à l’indicatif, si l’action s’est déroulée de façon certaine.
TEST: Après qu’il {{ait}} allé
TEST: Après que Paul {{ait}} mangé son repas.
TEST: Après qu’il {{soit}} parti, il plut.
|