
  &REFER(VARFR,GRAMFR).
   VARGNM = VMORPHF(ETAT,DECL,CONJ).
   VARGNS = VSYNTF(DEG,ASSERT,TPREP,TPREPNM,MPHDER,GNR,NUM,PERS,MODE,TEMP,VOIX,
		CAT,PRIORITE_CAT,SOUSV,SOUSN,SOUSA,SOUSD,SOUSR,SOUSC,SOUSP,
		CASPRNML,TON,POT,UL).
   VARGNSY = VARSYNT(TYP).
   VARGNSP = VSYNTF(DEG,ASSERT,TPREP,TPREPNM,MPHDER,PREFIX,GNR,NUM,PERS,MODE,TEMP,
              VOIX,CAT,PRIORITE_CAT,SOUSV,SOUSN,SOUSA,SOUSD,SOUSR,SOUSC,SOUSP,
	      CASPRNML,TON,POT,UL).
   GTPREPSEM = VARSYNT(TPREPVB,SEMA,SEMOBJT,CASSEM).
   GTPREPSEMM = VARSYNT(MAJUSCULE,TPREPVB,SEMA,SEMOBJT,CASSEM).
   GTPREPSEMC = VARSYNT(CHIFFRE,TPREPVB,SEMA,SEMOBJT,CASSEM).
   GTPREPSEMCM = VARSYNT(CHIFFRE,MAJUSCULE,TPREPVB,SEMA,SEMOBJT,CASSEM).
   DECLRVV2 = VDERIVVB(DCLRVVM,DCLRVVA,DCLRVVNA).
   DECLRV = VDERIV(DCLRVAN,DCLRVNN).
   DECLRVB = VDERIVB(DCLRVNA,DCLRVAA,DCLRVNNA,DCLRVNM,DCLRVAM,DCLRVANA).
   VARDESVB = VSYNTF(GNR,NUM,PERS,MODE,TEMP,VOIX).
   VRDSPAPA = VSYNTF(PERS,MODE,TEMP,VOIX).
   VARDNS = VSYNTF(TPREP,TPREPNM,MPHDER,GNR,NUM,PERS,MODE,TEMP,VOIX,CAT,PRIORITE_CAT,SOUSV,
			SOUSN,SOUSA,SOUSD,SOUSR,SOUSC,SOUSP,CASPRNML,TON).
   VARGRNB = VSYNTF(GNR,NUM).
   VARDVN = VSYNTF(TPREP,TPREPNM,MPHDER,GNR,NUM,PERS,MODE,TEMP,VOIX,CAT,SOUSV,SOUSN,SOUSA,
			SOUSD,SOUSR,SOUSC,SOUSP,CASPRNML,TON,POT).
   GSCAT = VSYNTF(SOUSV,SOUSN,SOUSA,SOUSD,SOUSR,SOUSC,SOUSP).

    &INIT(RI1,RINITCS,RINITCS2).
      &CLEX(ADRG).

                                  ('INV1')  ->  (R1,R1A).
                                 ('INV1S')  ->  (R1).
                                 ('INV1L')  ->  (R1L,R1AL).
                                  ('INV2')  ->  (R2,R2A).
                                 ('INV2S')  ->  (R2S,R2AS).
                                  ('INV3')  ->  (R3,R3A).
                                  ('INV4')  ->  (R4).
                                 ('INV4P')  ->  (R4PM,R4P).
                                 ('INV4T')  ->  (R4T).
                                  ('INV5')  ->  (R5,R5A).
                                 ('INV5I')  ->  (R5I,R5AI).
                                 ('INV5D')  ->  (R5D,R5AD).
				 ('INV5Q')  ->  (R5Q,R5AQ).
                                  ('INV6')  ->  (R6).
                                  ('INV8')  ->  (R8,R8I).
                                 ('INV8P')  ->  (R8P).
                                 ('INV8M')  ->  (R8,R8I,R8M).
                                  ('INV9')  ->  (RPREF).
                                 ('INV10')  ->  (R10).
                                 ('INV11')  ->  (RCHIFFRE).
                                 ('INV12')  ->  (RORDCH).
                                 ('INV13')  ->  (R4PRP,R4,R1PRP).
                                ('INV13P')  ->  (R4PREP).
                                 ('INV14')  ->  (R4,R1).
                                 ('INV15')  ->  (R1,RCITAT,RCITAT2,REXPR).
                                 ('INV16')  ->  (R1,RPONCT).
                                ('INV16P')  ->  (R1P,RPONCTP).
                                 ('INV17')  ->  (R8,R8I,RCITAT,RCITAT2,RPRPCIT).
                                 ('INV18')  ->  (R1,R10,RENUM,RPRECED).
			         ('INV19')  ->  (R1,R1A).
                                 ('INV20')  ->  (RN4PRP,RN4,R1PRP).
                                   ('CDL')  ->  (R1,R1A,RCDLMNT,RCDL,RCDLDRV).
                                  ('CDLC')  ->  (R1CARD,RCDLMNT,RCDL,RCDLDRV).
                                  ('CDLA')  ->  (R3,R3A).
			         ('CDLCA')  ->  (RCDLMNT,RCDL,RCDLDRV).
			          ('CDLM')  ->  (RCDL,RBASN1).
			          ('CDLQ')  ->  (R1,R1A,RCDLMNTU,RCDLU).
			         ('BNNMP')  ->  (RNNMP).
			        ('BNNMPC')  ->  (RNNMPC).
			        ('BANMPC')  ->  (RANMPC).
                                  ('BNVB')  ->  (RBASV1).
				 ('BNVBD')  ->  (R1,R1A,RBASV1).
                                  ('BAVB')  ->  (RBASV2).
                                ('BAVBPR')  ->  (RBASV2PR).
                                 ('BAVBN')  ->  (RBASV2,RBASV4).
                                ('BAVBDP')  ->  (RBASV2,RBASV5).
                                 ('BAVBD')  ->  (RBASV3).
                               ('BAVBVNM')  ->  (RBASV2,RBASDRNM).
                              ('BAVBVNMD')  ->  (RBASV3,RBASDRNM).
                               ('BAVBVNF')  ->  (RBASV2,RBASDRNF).
                              ('BAVBVNFD')  ->  (RBASV3,RBASDRNF).
                                ('BAVBVN')  ->  (RBASV2,RBASDRN).
                               ('BAVBVND')  ->  (RBASV3,RBASDRN).
                              ('BAVBVNMF')  ->  (RBASV2,RBASDRNMF).
                             ('BAVBVNMFD')  ->  (RBASV3,RBASDRNMF).
                              ('BAVBVNMP')  ->  (RBASV2,RBASDRNMP).
                             ('BAVBVNMPD')  ->  (RBASV3,RBASDRNMP).
                              ('BAVBVNMN')  ->  (RBASV2,RBASDRNMN).
                             ('BAVBVNMND')  ->  (RBASV3,RBASDRNMN).
                               ('BAVBCVA')  ->  (RBASV2,RBASDRAAC).
                                ('BAVBVA')  ->  (RBASV2,RBASDRAA).
                              ('BAVBVAAP')  ->  (RBASV2,RBASDRAAAP).
                               ('BAVBVAD')  ->  (RBASV3,RBASDRAA).
                               ('BAVBVNA')  ->  (RBASV2,RBASDRNA).
                             ('BAVBVNAAS')  ->  (RBASV2,RBASDRNAAS).
                              ('BAVBVNAD')  ->  (RBASV3,RBASDRNA).
                              ('BAVBCVNS')  ->  (RBASV2,RBASDCNS).
                             ('BAVBCVNSD')  ->  (RBASV3,RBASDCNS).
                               ('BAVBNAF')  ->  (RBASV2,RBASVNA,RBASVA).
                              ('BAVBNAFD')  ->  (RBASV3,RBASVNA,RBASVA).
                          ('BNNM','BNAVM')  ->  (RBASN1).
                                 ('BNNMC')  ->  (RBASN2).
                                  ('BANM')  ->  (RBASN3).
                                 ('BANMC')  ->  (RBASN4).
                                 ('BANMD')  ->  (RBASN5).
                                ('BANMCD')  ->  (RBASN6).
                                ('BANAVM')  ->  (RBASNAV1,RBASNAV2,RBASNAV3).
                                  ('BAAV')  ->  (RBASNAV1,RBASAV1).
                                    ('VA')  ->  (RDRVVA).
                                   ('VAC')  ->  (RDRVVAC).
                                  ('VAPR')  ->  (RDRVVAPR).
                                    ('VN')  ->  (RDRVVN).
                                   ('VNC')  ->  (RDRVVNC).
                                    ('VM')  ->  (RDRVVM).
                                   ('VNA')  ->  (RDRVVNA).
                                  ('VNAC')  ->  (RDRVVNAC).
                                  ('DVB')   ->  (RDESVB).
                                ('DVBIF')   ->  (RDESVBIF).
                               ('DVPAPR')   ->  (RPARTPRE).
                                  ('DNA')   ->  (RDESNA).
                                 ('DNAV')   ->  (RDSVBPAS).
                                   ('NA')   ->  (RDRVNA).
                                  ('NAC')   ->  (RDRVNAC).
                                   ('NN')   ->  (RDRVNN).
                                ('(NA)N')   ->  (RDRVNN,RDRVAN).
                                  ('NNC')   ->  (RDRVNNC).
                                  ('NNA')   ->  (RDRVNNA).
                                 ('NNAC')   ->  (RDRVNNAC).
                                   ('NM')   ->  (RDRVNM).
                                   ('AA')   ->  (RDRVAA).
                                  ('AAC')   ->  (RDRVAAC).
                                   ('AN')   ->  (RDRVAN).
                                  ('ANC')   ->  (RDRVANC).
                                  ('ANA')   ->  (RDRVANA).
                                 ('ANAC')   ->  (RDRVANAC).
                                   ('AM')   ->  (RDRVAM).
			      ('PREEDIT')   ->  (RPREDITTPTP,RPREDITTPT,RPREDITPCTP,RPREDITPCT,RPREDIT).
			    ('MAJUSCULE')   ->  (RPREEDITMAJ).
				('SIGLE')   ->  (R1,R1A).

    &REGLES.

      RELIMLG: (CHAINE(CC,-0,1) = '\n') / FRM(FRMLEMME) = CHAINE(CC,-1,*);
					   FRM(EC) = CHAINE(CC,-1,*) /
					   TCHAINE(-'\n','\n','')/
				RPARAG,
				RINITM,
				RINIT,
				RINITMP,
				RINITP,
				RNOMPRP,
				RINITC,
				RINITE,
				RNOMPRPH,
				RABREV,
				RABREVPAR,
				RGUILL,
				MOTINC1,
				MOTINC2.

      RSUITLG: ((CHAINE(CC,-'\n',1) = '\n') & (CHAINE(CC,-0,1) != '\n')) // TCHAINE(-'\n',*,''); FRM.

      RELIMINDENT: ((CHAINE(CC,-'\n',2) = '-\n') & (CHAINE(CC,'\n',*) != '\n')) / FRM(FRMCA) = CHAINE(CC,-'\n',*) //
				RTESTINDENT.

      RTESTINDENT: (%LGCH(FRM(FRMCA)) > 2) & (FRM(FRMCA,-1,1) != FRM(FRMCA,-2,1)) ///
				RELIMESPACE,
				RFINELIM,
				RELIMST.

      RELIMESPACE: ((CHAINE(CC,'\n',2) = '\n ') | (CHAINE(CC,'\n',2) = '\n\t')) //
				TCHAINE('\n','\n ','\n');
				TCHAINE('\n','\n\t','\n') /
					RELIMESPACE,
					RFINELIM.
      RFINELIM:  /FRM(EC,-'\n',2) = '' /TCHAINE(-'\n','-\n','')/ 
				RPARAG,
				RINITM,
				RINIT,
				RINITMP,
				RINITP,
				RNOMPRP,
				RINITC,
				RINITE.

      RELIMST:  /FRM(EC,-'\n',1) = '' /TCHAINE(-'\n','\n','')/ 
				RPARAG,
				RINITM,
				RINIT,
				RINITMP,
				RINITP,
				RNOMPRP,
				RINITC,
				RINITE.

      RI1: 	/ FRM(EC)=CHAINE(CC);
			FRM(FRMLEMME) = CHAINE(CC);
			LEMME(EC) = '';
			LEMME(FRMLEMME)='';
			UL(EOM)='ULOCC';
			LEMME(EOM)='ULOCC';
			PLACEMOT(EC) = %PLFICH();
			SEPAR(EC) = CHAINE(CS,'\n',*);
			SEPAR(EC,-'\n',*) = '';
			SEPAR(EC) = SEPAR(EC,1,*);
			SEPAR(EC) = SEPAR(EC,'\n',*);
			POSITION(EC) = MOT_TEXTE;
			FRM(FPREFIXN)='' //
				RPARAG,
				RINITM,
				RINIT,
				RINITMP,
				RINITP,
				RNOMPRP,
				RINITC,
				RINITE,
				RELIMINDENT,
				RELIMLG,
				RSUITLG,
				RNOMPRPH,
				RABREV,
				RABREVPAR,
				RGUILL,
				MOTINC1,
				MOTINC2.

	RPARAG: (SEPAR(EC,0,1) = '\n') /
			PARAGRAPH(EC) = 1 //
				RINITM,
				RINIT,
				RINITMP,
				RINITP,
				RNOMPRP,
				RINITC,
				RINITE,
				RNOMPRPH,
				RABREV,
				RABREVPAR,
				RGUILL,
				MOTINC1,
				MOTINC2.

      RINITM:    ((CHAINE(CC,0,1) >= 'A')&(CHAINE(CC,0,1) <= 'Z'))|
		(CHAINE(CC,0,1) > 'z') &
		((CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = ''))/
			MAJUSCULE(EC) = 1;
			DICT(EC)=1|2.

      RINIT:	/	DICT(EC)=1|2.

      RINITMP:	((CHAINE(CC,0,1) >= 'A')&(CHAINE(CC,0,1) <= 'Z'))|
		(CHAINE(CC,0,1) > 'z') &
		((CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = ''))/
			MAJUSCULE(EC) = 1;
			DICT(EC)=6|7.

      RINITP:	/	DICT(EC)=6|7.

      RPREEDITMAJ: /	FRM(EC)= FRM(FPREFIXN) || CHAINE(CC);
			MAJUSCULE(EC)=C.

    RPREDITPCTP: (CHAINE(CC,-0,2)='.')|(CHAINE(CC,-0,2)=';')|
		(CHAINE(CC,-0,2)=',')| (CHAINE(CC,-0,2)='?')|
		(CHAINE(CC,-0,2)='!')/
			FRM(EC)= FRM(FPREFIXN) || CHAINE(CC,-2,*);
			LEMME(EC)=FRM(EC);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC)/
				TCHAINE(-2,*,'');
				SOLV/
					SRFINALPREDP,
					SRNFINALPREDP.

    RPREDITPCT: (CHAINE(CC,-0,1)='.')|(CHAINE(CC,-0,1)=';')|
		(CHAINE(CC,-0,1)=',')| (CHAINE(CC,-0,1)='?')|
		(CHAINE(CC,-0,1)='!')/
			FRM(EC)= FRM(FPREFIXN) || CHAINE(CC,-1,*);
			LEMME(EC)=FRM(EC);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC)/
				TCHAINE(-1,*,'');
				SOLV/
					SRFINALPRED,
					SRNFINALPRED.

      SRFINALPREDP: (UL(EAD1) != '-') //
				FINAL/
					RSUIPRED1P,
					RSUIPRED2P,
					RSUIPRED3P,
					RSUIPRED4P,
					RSUIPRED5P.

      SRNFINALPREDP: (UL(EAD1) = '-')//
				ARD/
					RSUIPRED1,
					RSUIPRED2,
					RSUIPRED3,
					RSUIPRED4,
					RSUIPRED5.

      SRFINALPRED: (UL(EAD1) != '-') //
				FINAL/
					RSUIPRED1,
					RSUIPRED2,
					RSUIPRED3,
					RSUIPRED4,
					RSUIPRED5.

      SRNFINALPRED: (UL(EAD1) = '-')//
				ARD/
					RSUIPRED1,
					RSUIPRED2,
					RSUIPRED3,
					RSUIPRED4,
					RSUIPRED5.

      RPREDITTPTP: (CHAINE(CC,-0,4)='...')/
			FRM(EC)= FRM(FPREFIXN) || CHAINE(CC,-4,*);
			LEMME(EC)=FRM(EC);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC)/
				TCHAINE(-4,*,'');
				SOLV/
					SRFINALPRED6P,
					SRNFINALPRED6P.

      RPREDITTPT: (CHAINE(CC,-0,3)='...')/
			FRM(EC)= FRM(FPREFIXN) || CHAINE(CC,-3,*);
			LEMME(EC)=FRM(EC);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC)/
				TCHAINE(-3,*,'');
				SOLV/
					SRFINALPRED6,
					SRNFINALPRED6.


      SRFINALPRED6: (UL(EAD1) != '-') //
				FINAL/
					RSUIPRED6.

      SRNFINALPRED6: (UL(EAD1) = '-')//
				ARD/
					RSUIPRED6.

      SRFINALPRED6P: (UL(EAD1) != '-') //
				FINAL/
					RSUIPRED6P.

      SRNFINALPRED6P: (UL(EAD1) = '-')//
				ARD/
					RSUIPRED6P.

      RSUIPRED1: (CHAINE(CC,0,1)='.')/
			FRM(EC)=CHAINE(CC);
			LEMME(EC)=CHAINE(CC);
			VARGNS(EC)=0;
			VARGNSY(EC)=0;
			GTPREPSEMC(EC)=0;
			TPREPNM(EC)=0;
			CAT(EC)=PONCT;
			SOUSP(EC)=POINT|TERMINAISON;
			UL(EC)='.'/
				TCHAINE(0,*,'').

      RSUIPRED2: (CHAINE(CC,0,1)=';')/
			FRM(EC)=CHAINE(CC);
			LEMME(EC)=CHAINE(CC);
			VARGNS(EC)=0;
			VARGNSY(EC)=0;
			GTPREPSEMC(EC)=0;
			TPREPNM(EC)=0;
			CAT(EC)=PONCT;
			SOUSP(EC)=CONJONCTION|TERMINAISON;
			UL(EC)=';'/
				TCHAINE(0,*,'').

      RSUIPRED3: (CHAINE(CC,0,1)=',')/
			FRM(EC)=CHAINE(CC);
			LEMME(EC)=CHAINE(CC);
			VARGNS(EC)=0;
			VARGNSY(EC)=0;
			GTPREPSEMC(EC)=0;
			TPREPNM(EC)=0;
			CAT(EC)=PONCT;
			SOUSP(EC)=CONJONCTION;
			UL(EC)=','/
				TCHAINE(0,*,'').

      RSUIPRED4: (CHAINE(CC,0,1)='?')/
			FRM(EC)=CHAINE(CC);
			LEMME(EC)=CHAINE(CC);
			VARGNS(EC)=0;
			VARGNSY(EC)=0;
			GTPREPSEMC(EC)=0;
			TPREPNM(EC)=0;
			CAT(EC)=PONCT;
			SOUSP(EC)=POINT|TERMINAISON;
			UL(EC)='?'/
				TCHAINE(0,*,'').

      RSUIPRED5: (CHAINE(CC,0,1)='!')/
			FRM(EC)=CHAINE(CC);
			LEMME(EC)=CHAINE(CC);
			VARGNS(EC)=0;
			VARGNSY(EC)=0;
			GTPREPSEMC(EC)=0;
			TPREPNM(EC)=0;
			CAT(EC)=PONCT;
			SOUSP(EC)=POINT|TERMINAISON;
			UL(EC)='!'/
				TCHAINE(0,*,'').

      RSUIPRED6: (CHAINE(CC,0,3)='...')/
			FRM(EC)=CHAINE(CC);
			LEMME(EC)=CHAINE(CC);
			VARGNS(EC)=0;
			VARGNSY(EC)=0;
			GTPREPSEMC(EC)=0;
			TPREPNM(EC)=0;
			CAT(EC)=PONCT;
			SOUSP(EC)=POINT|TERMINAISON;
			UL(EC)='...'/
				TCHAINE(0,*,'').

      RSUIPRED1P: (CHAINE(CC,0,2)='.')/
			FRM(EC)=CHAINE(CC,0,1);
			LEMME(EC)=CHAINE(CC,0,1);
			VARGNS(EC)=0;
			VARGNSY(EC)=0;
			GTPREPSEMC(EC)=0;
			TPREPNM(EC)=0;
			CAT(EC)=PONCT;
			SOUSP(EC)=POINT|PARAGRAPHE|TERMINAISON;
			UL(EC)='.'/
				TCHAINE(0,*,'').

      RSUIPRED2P: (CHAINE(CC,0,2)=';')/
			FRM(EC)=CHAINE(CC,0,1);
			LEMME(EC)=CHAINE(CC,0,1);
			VARGNS(EC)=0;
			VARGNSY(EC)=0;
			GTPREPSEMC(EC)=0;
			TPREPNM(EC)=0;
			CAT(EC)=PONCT;
			SOUSP(EC)=CONJONCTION|PARAGRAPHE|TERMINAISON;
			UL(EC)=';'/
				TCHAINE(0,*,'').

      RSUIPRED3P: (CHAINE(CC,0,2)=',')/
			FRM(EC)=CHAINE(CC,0,1);
			LEMME(EC)=CHAINE(CC,0,1);
			VARGNS(EC)=0;
			VARGNSY(EC)=0;
			GTPREPSEMC(EC)=0;
			TPREPNM(EC)=0;
			CAT(EC)=PONCT;
			SOUSP(EC)=CONJONCTION|PARAGRAPHE;
			UL(EC)=','/
				TCHAINE(0,*,'').

      RSUIPRED4P: (CHAINE(CC,0,2)='?')/
			FRM(EC)=CHAINE(CC,0,1);
			LEMME(EC)=CHAINE(CC,0,1);
			VARGNS(EC)=0;
			VARGNSY(EC)=0;
			GTPREPSEMC(EC)=0;
			TPREPNM(EC)=0;
			CAT(EC)=PONCT;
			SOUSP(EC)=POINT|PARAGRAPHE|TERMINAISON;
			UL(EC)='?'/
				TCHAINE(0,*,'').

      RSUIPRED5P: (CHAINE(CC,0,2)='!')/
			FRM(EC)=CHAINE(CC,0,1);
			LEMME(EC)=CHAINE(CC,0,1);
			VARGNS(EC)=0;
			VARGNSY(EC)=0;
			GTPREPSEMC(EC)=0;
			TPREPNM(EC)=0;
			CAT(EC)=PONCT;
			SOUSP(EC)=POINT|PARAGRAPHE|TERMINAISON;
			UL(EC)='!'/
				TCHAINE(0,*,'').

      RSUIPRED6P: (CHAINE(CC,0,4)='...')/
			FRM(EC)=CHAINE(CC,0,3);
			LEMME(EC)=CHAINE(CC,0,1);
			VARGNS(EC)=0;
			VARGNSY(EC)=0;
			GTPREPSEMC(EC)=0;
			TPREPNM(EC)=0;
			CAT(EC)=PONCT;
			SOUSP(EC)=POINT|PARAGRAPHE|TERMINAISON;
			UL(EC)='...'/
				TCHAINE(0,*,'').

      RPREDIT: (CHAINE(CC,-0,1)!='.')|(CHAINE(CC,-0,1)!=';')|
		(CHAINE(CC,-0,1)!=',')| (CHAINE(CC,-0,1)!='?')|
		(CHAINE(CC,-0,1)!='!')|(CHAINE(CC,-0,3)!='...')|
		(CHAINE(CC,-0,2)!='.')|(CHAINE(CC,-0,2)!=';')|
		(CHAINE(CC,-0,2)!=',')| (CHAINE(CC,-0,2)!='?')|
		(CHAINE(CC,-0,2)!='!')|(CHAINE(CC,-0,4)!='...')/
			FRM(EC)= FRM(FPREFIXN) || CHAINE(CC);
			LEMME(EC)=FRM(EC);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEM(ED);
			TPREPNM(EC)=TPREPNM(ED)/
				TCHAINE(0,*,'')/
					SRFINAL,
					SRNFINAL.

      RNOMPRP:  (CHAINE(CC,0,1) >= 'A') & (CHAINE(CC,0,1) <= 'Z') &
                (((CHAINE(CC,-0,1) >= 'A') & (CHAINE(CC,-0,1) <= 'Z')) |
		 ((CHAINE(CC,-0,1) >= '0') & (CHAINE(CC,-0,1) <= '9')) |
                 ((((CHAINE(CC,-1,1) >= 'A') & (CHAINE(CC,-1,1) <= 'Z')) |
		 ((CHAINE(CC,-1,1) >= '0') & (CHAINE(CC,-1,1) <= '9'))) &
		 (%LGCH(FRM(EC)) > 1)) |
                 ((((CHAINE(CC,-2,1) >= 'A') & (CHAINE(CC,-2,1) <= 'Z')) |
		 ((CHAINE(CC,-2,1) >= '0') & (CHAINE(CC,-2,1) <= '9'))) &
		 (%LGCH(FRM(EC)) > 2)) |
                 ((((CHAINE(CC,-3,1) >= 'A') & (CHAINE(CC,-3,1) <= 'Z')) |
		 ((CHAINE(CC,-3,1) >= '0') & (CHAINE(CC,-3,1) <= '9'))) &
		 (%LGCH(FRM(EC)) > 3))|
                 ((((CHAINE(CC,-5,1) >= 'A') & (CHAINE(CC,-5,1) <= 'Z')) |
		 ((CHAINE(CC,-5,1) >= '0') & (CHAINE(CC,-5,1) <= '9'))) &
		 (%LGCH(FRM(EC)) > 5))|
                 ((((CHAINE(CC,-6,1) >= 'A') & (CHAINE(CC,-6,1) <= 'Z')) |
		 ((CHAINE(CC,-6,1) >= '0') & (CHAINE(CC,-6,1) <= '9'))) &
		 (%LGCH(FRM(EC)) > 6)))/
			CAT(EC)=N;
			SOUSN(EC)=NPRO;
			MAJUSCULE(EC)=1;
                	UL(EC)='nom-propre';
			LEMME(EC)=FRM(EC);
			ADRG(EC)='*INC';
			ETAT(EC)=8 //
					RNPRP0,RNPRPF.

      RNOMPRPH: (CHAINE(CC,0,1) >= 'A') & (CHAINE(CC,0,1) <= 'Z')/
			DICT(EC)=5;
			ETAT(EC)=2;
			MAJUSCULE(EC)=1;
			ADRG(EC) = '*INC';
			ETAT(EC)=8 //
					RNOMPRPH1,
					RNOMPRPH2,
					RNOMPRPH3,
					RNOMPRPH4,
					RNOMPRPH5,
					RNOMPRPH6,
					RNOMPRPH7.

      RNOMPRPH1: ((CHAINE(CC,-6,1) >= 'A') & (CHAINE(CC,-6,1) <= 'Z'))|
		 ((CHAINE(CC,-6,1) >= 'a') & (CHAINE(CC,-6,1) <= 'z'))/
			CAT(EC)=N;
			SOUSN(EC)=NPRO;
			UL(EC)='nom-propre';
			LEMME(EC)=FRM(EC)/
				TCHAINE(-6,*,'').

      RNOMPRPH2: ((CHAINE(CC,-5,1) >= 'A') & (CHAINE(CC,-5,1) <= 'Z'))|
		 ((CHAINE(CC,-5,1) >= 'a') & (CHAINE(CC,-5,1) <= 'z'))/
			CAT(EC)=N;
			SOUSN(EC)=NPRO;
			UL(EC)='nom-propre';
			LEMME(EC)=FRM(EC)/
				TCHAINE(-5,*,'').

      RNOMPRPH3: ((CHAINE(CC,-4,1) >= 'A') & (CHAINE(CC,-4,1) <= 'Z'))|
		 ((CHAINE(CC,-4,1) >= 'a') & (CHAINE(CC,-4,1) <= 'z'))/
			CAT(EC)=N;
			SOUSN(EC)=NPRO;
			UL(EC)='nom-propre';
			LEMME(EC)=FRM(EC)/
				TCHAINE(-4,*,'').

      RNOMPRPH4: ((CHAINE(CC,-3,1) >= 'A') & (CHAINE(CC,-3,1) <= 'Z'))|
		 ((CHAINE(CC,-3,1) >= 'a') & (CHAINE(CC,-3,1) <= 'z'))/
			CAT(EC)=N;
			SOUSN(EC)=NPRO;
			UL(EC)='nom-propre';
			LEMME(EC)=FRM(EC)/
				TCHAINE(-3,*,'').

      RNOMPRPH5: ((CHAINE(CC,-2,1) >= 'A') & (CHAINE(CC,-2,1) <= 'Z'))|
		 ((CHAINE(CC,-2,1) >= 'a') & (CHAINE(CC,-2,1) <= 'z'))/
			CAT(EC)=N;
			SOUSN(EC)=NPRO;
			UL(EC)='nom-propre';
			LEMME(EC)=FRM(EC)/
				TCHAINE(-2,*,'').

      RNOMPRPH6: ((CHAINE(CC,-1,1) >= 'A') & (CHAINE(CC,-1,1) <= 'Z'))|
		 ((CHAINE(CC,-1,1) >= 'a') & (CHAINE(CC,-1,1) <= 'z'))/
			CAT(EC)=N;
			SOUSN(EC)=NPRO;
			UL(EC)='nom-propre';
			LEMME(EC)=FRM(EC)/
				TCHAINE(-1,*,'').

      RNOMPRPH7: ((CHAINE(CC,-0,1) >= 'A') & (CHAINE(CC,-0,1) <= 'Z'))|
		 ((CHAINE(CC,-0,1) >= 'a') & (CHAINE(CC,-0,1) <= 'z'))/
			CAT(EC)=N;
			SOUSN(EC)=NPRO;
			UL(EC)='nom-propre';
			LEMME(EC)=FRM(EC)/
				TCHAINE(-0,*,'').

      RNPRP0:   (((CHAINE(CC,-0,1) >= 'A') & (CHAINE(CC,-0,1) <= 'Z')) |
		 ((CHAINE(CC,-0,1) >= '0') & (CHAINE(CC,-0,1) <= '9')))//
                 		TCHAINE(0,*,'').

      RNPRPF:	/	ETAT(EC)=2;
			DICT(EC)=5;
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC)//
					RNPRP1,
					RNPRP2,
					RNPRP3,
					RNPRP5,
					RNPRP6.

      RNPRP1:   ((CHAINE(CC,-1,1) >= 'A') & (CHAINE(CC,-1,1) <= 'Z'))|
		((CHAINE(CC,-1,1) >= '0') & (CHAINE(CC,-1,1) <= '9'))/
				LEMME(EC)=LEMME(EC,-1,*)/
                		TCHAINE(-1,*,'').

      RNPRP2:   ((CHAINE(CC,-2,1) >= 'A') & (CHAINE(CC,-2,1) <= 'Z'))|
		((CHAINE(CC,-2,1) >= '0') & (CHAINE(CC,-2,1) <= '9'))/
				LEMME(EC)=LEMME(EC,-2,*)/
                		TCHAINE(-2,*,'').

      RNPRP3:   ((CHAINE(CC,-3,1) >= 'A') & (CHAINE(CC,-3,1) <= 'Z'))|
		((CHAINE(CC,-3,1) >= '0') & (CHAINE(CC,-3,1) <= '9'))/
				LEMME(EC)=LEMME(EC,-3,*)/
                		TCHAINE(-3,*,'').

      RNPRP5:   ((CHAINE(CC,-5,1) >= 'A') & (CHAINE(CC,-5,1) <= 'Z'))|
		((CHAINE(CC,-5,1) >= '0') & (CHAINE(CC,-5,1) <= '9'))/
				LEMME(EC)=LEMME(EC,-5,*)/
                		TCHAINE(-5,*,'').

      RNPRP6:   / LEMME(EC)=LEMME(EC,-6,*)/
				TCHAINE(-6,*,'').

      RINITC:   ((CHAINE(CC,0,1) >= 'A') & (CHAINE(CC,0,1) <= 'Z'))|
 		((CHAINE(CC,0,1) > 'z') &
		((CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')))/
			MAJUSCULE(EC)=1/
				TCHAINE(0,'A','a');
				TCHAINE(0,'B','b');
				TCHAINE(0,'C','c');
				TCHAINE(0,'D','d');
				TCHAINE(0,'E','e');
				TCHAINE(0,'F','f');
				TCHAINE(0,'G','g');
				TCHAINE(0,'H','h');
				TCHAINE(0,'I','i');
				TCHAINE(0,'J','j');
				TCHAINE(0,'K','k');
				TCHAINE(0,'L','l');
				TCHAINE(0,'M','m');
				TCHAINE(0,'N','n');
				TCHAINE(0,'O','o');
				TCHAINE(0,'P','p');
				TCHAINE(0,'Q','q');
				TCHAINE(0,'R','r');
				TCHAINE(0,'S','s');
				TCHAINE(0,'T','t');
				TCHAINE(0,'U','u');
				TCHAINE(0,'V','v');
				TCHAINE(0,'W','w');
				TCHAINE(0,'X','x');
				TCHAINE(0,'Y','y');
				TCHAINE(0,'Z','z');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','')/
					RINITCN,
					RINITCP.
      RINITCN:	/
 			DICT(EC)=1|2.
      RINITCP:	(MAJUSCULE(EC) = 0) /
			DICT(EC) = 6.

      RINITCS:  (MAJUSCULE(EOM) = 1) &
		(((CHAINE(CC,0,1) >= 'A') & (CHAINE(CC,0,1) <= 'Z'))|
		(CHAINE(CC,0,1) > 'z') &
		((CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')))/
			DICT(EC)=1|2|6;
			MAJUSCULE(EC)=1;
			POSITION(EC) = MOT_TEXTE;
			LEMME(EC) = '';
			LEMME(FRMLEMME)='';
			FRM(FPREFIXN)=''/
				TCHAINE(0,'A','a');
				TCHAINE(0,'B','b');
				TCHAINE(0,'C','c');
				TCHAINE(0,'D','d');
				TCHAINE(0,'E','e');
				TCHAINE(0,'F','f');
				TCHAINE(0,'G','g');
				TCHAINE(0,'H','h');
				TCHAINE(0,'I','i');
				TCHAINE(0,'J','j');
				TCHAINE(0,'K','k');
				TCHAINE(0,'L','l');
				TCHAINE(0,'M','m');
				TCHAINE(0,'N','n');
				TCHAINE(0,'O','o');
				TCHAINE(0,'P','p');
				TCHAINE(0,'Q','q');
				TCHAINE(0,'R','r');
				TCHAINE(0,'S','s');
				TCHAINE(0,'T','t');
				TCHAINE(0,'U','u');
				TCHAINE(0,'V','v');
				TCHAINE(0,'W','w');
				TCHAINE(0,'X','x');
				TCHAINE(0,'Y','y');
				TCHAINE(0,'Z','z');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','').

      RINITCS2: (CHAINE(CC,0,1)='#')&(MAJUSCULE(EOM)=1)/
			FRM(FPREFIXN) = '#'||CHAINE(CC,1,'#')/
				TCHAINE(0,*1,'');
				TCHAINE(0,*'#','');
				TCHAINE(0,*1,'')/
					RINITCS.

      RINITE:   (CHAINE(CC,0,1) = 'E') /
			DICT(EC)=1|2|6//
					SRINITE,
					SRINITE1,
					SRINITE2,
					SRINITE3.

      SRINITE:  /	MAJUSCULE(EC)=1/
				TCHAINE(0,'E','e').

      SRINITE1: /	MAJUSCULE(EC)=1/
				TCHAINE(0,'E','').

      SRINITE2: /	MAJUSCULE(EC)=1/
				TCHAINE(0,'E','').

      SRINITE3: /	MAJUSCULE(EC)=1/
				TCHAINE(0,'E','').

      RABREV:   (CHAINE(CC,-0,1) = '.') /
			CAT(EC)=N;
			SOUSN(EC)=NCOM|NPRO;
			NUM(EC)=SIN|PLU;
			GNR(EC)=MAS|FEM;
                	UL(EC)='*abrev';
			ADRG(EC) = '*INC'/
				TCHAINE(0,*,'').

      RABREVPAR:   (CHAINE(CC,-0,2) = '.') /
			CAT(EC)=N;
			SOUSN(EC)=NCOM|NPRO;
			NUM(EC)=SIN|PLU;
			GNR(EC)=MAS|FEM;
                	UL(EC)='*abrev';
			ADRG(EC) = '*INC';
			DICT(EC) = 5;
			ETAT(EC) = 2/
				TCHAINE(-2,*,'').

      RGUILL:	(CHAINE(CC,0,1) = '"') /
			FRM(EC) = '"';
			CAT(EC)=PONCT;
			SOUSP(EC) = PARENTHESE;
			UL(EC)='"';
			LEMME(EC)='"';
			UL(EOC) = 'ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC)/
				SOL;
				TCHAINE(0,'"','') /
					RSUITGUILL.

      RSUITGUILL: /	FRM(EC)=CHAINE(CC);
			SOUSP(EC) = 0;
			UL(EC) = 0;
			ADRG(EC) = '*INC'//
					RISTE,
					RISME,
					REUR,
					REUSE,
					RION,
					RMENT,
					RADJNEG,
					RMATH,
					RINCP8,
					RINCN8PCT,
					RINCN8,
					RINC8.

      MOTINC1: (CHAINE(CC,0,1) >= 'A') & (CHAINE(CC,0,1) <= 'Z')/
			MAJUSCULE(EC)=1;
			ADRG(EC) = '*INC' //
					MOTINCPONCT,
					MOTINCNPCT.

      MOTINCPONCT: (CHAINE(CC,-0,1) = ',')|(CHAINE(CC,-0,1) = ';') |
			(CHAINE(CC,-0,1) = '!')|(CHAINE(CC,-0,1) = '(')|
			(CHAINE(CC,-0,1) = ')')|(CHAINE(CC,-0,1) = '\'')|
			(CHAINE(CC,-0,1) = '"')|(CHAINE(CC,-0,1) = '?')///
					RISTEPT,
					RISMEPT,
					REURPT,
					REUSEPT,
					RIONPT,
					RMENTPT,
                                  	RADJNEGPT,
					RMATHPT,
					RINCP8,
					RINCN8PCTPT,
					RINCN8PT,
					RINC8PT.
      MOTINCNPCT: ///
					RISTE,
					RISME,
					REUR,
					REUSE,
					RION,
					RMENT,
                                  	RADJNEG,
					RMATH,
					RINCP8,
					RINCN8PCT,
					RINCN8,
					RINC8.

      MOTINC2:   /	ADRG(EC) = '*INC' //
					MOTINCPONCT,
					MOTINCNPCT.

      RISTE:    (CHAINE(CC,-0,4) = 'iste') | (CHAINE(CC,-1,4) = 'iste') |
                (CHAINE(CC,-0,4) = 'able') | (CHAINE(CC,-1,4) = 'able') |
                (CHAINE(CC,-0,4) = 'aire') | (CHAINE(CC,-1,4) = 'aire') |
                (CHAINE(CC,-0,4) = 'ible') | (CHAINE(CC,-1,4) = 'ible') /
			CAT(EC)=ADJOINT;
			SOUSA(EC)=ADVERB|ADNOM;
			GNR(EC)=MAS|FEM;
			UL(EC)='*INC';
			LEMME(EC)='INC'//
					RINCPL,
					RINCSIN.

      RISME:    (CHAINE(CC,-0,4) = 'isme') | (CHAINE(CC,-1,4) = 'isme') |
                (CHAINE(CC,-0,3) = 'age') | (CHAINE(CC,-1,3) = 'age') |
                (CHAINE(CC,-0,5) = 'ments') / CAT(EC)=N;SOUSN(EC)=NCOM;
			GNR(EC)=MAS;
			UL(EC)='*INC';
			LEMME(EC)='INC'//
					RINCPL,
					RINCSIN.

      REUR:    (CHAINE(CC,-0,3) = 'eur') | (CHAINE(CC,-1,3) = 'eur') |
                (CHAINE(CC,-0,4) = 'able') | (CHAINE(CC,-1,4) = 'able') |
                (CHAINE(CC,-0,3) = 'ain') | (CHAINE(CC,-1,3) = 'ain') |
                (CHAINE(CC,-0,3) = 'ien') | (CHAINE(CC,-1,3) = 'ien') /
			CAT(EC)=ADJOINT;
			SOUSA(EC)=ADVERB|ADNOM;
			GNR(EC)=MAS;
			UL(EC)='*INC';
			LEMME(EC)='INC'//
					RINCPL,
					RINCSIN.

      REUSE:    (CHAINE(CC,-0,4) = 'euse') | (CHAINE(CC,-1,4) = 'euse') |
                (CHAINE(CC,-0,4) = 'aine') | (CHAINE(CC,-1,4) = 'aine') |
                (CHAINE(CC,-0,5) = 'ienne') | (CHAINE(CC,-1,5) = 'ienne') /
			CAT(EC)=ADJOINT;
			SOUSA(EC)=ADVERB|ADNOM;
			GNR(EC)=FEM;
			UL(EC)='*INC';
			LEMME(EC)='INC'//
					RINCPL,
					RINCSIN.

      RION:    (CHAINE(CC,-0,3) = 'ion') | (CHAINE(CC,-1,3) = 'ion') /
			CAT(EC)=N;
			SOUSN(EC)=NCOM;
			GNR(EC)=FEM;
			UL(EC)='*INC';
			LEMME(EC)='INC'//
					RINCPL,
					RINCSIN.

      RMENT:    (CHAINE(CC,-0,4) = 'ment') /
			CAT(EC)=N|ADJOINT;
			SOUSN(EC)=NCOM;
			SOUSA(EC)=ADVERB;
			NUM(EC)=SIN;
			GNR(EC)=MAS/
				TCHAINE(0,*,'').

      RINCPL:   (CHAINE(CC,-0,1) = 's')/
			NUM(EC)=PLU/
				TCHAINE(0,*,'').

      RINCSIN:   /	NUM(EC)=SIN/
				TCHAINE(0,*,'').

      RADJNEG:  (CHAINE(CC,0,2)='in')|(CHAINE(CC,0,2)='ir')|
                (CHAINE(CC,0,2)='im')|(CHAINE(CC,0,2)='il')/
			CAT(EC)=ADJOINT;
			SOUSA(EC)=ADNOM/
				TCHAINE(0,*,'').

      RINCP8:    (CHAINE(CC,0,1) = '(') /
			FRM(EC)=CHAINE(CC,0,1);
			CAT(EC)=PONCT;
			UL(EC)='(';
			LEMME(EC)='(';
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC)/
				TCHAINE(0,*1,'');
				SOL/
					RSINCP8.

      RSINCP8:   /	FRM(EC)=CHAINE(CC);
			DICT(EC)=1|2|6.

      RINCN8PCT:   (CHAINE(CC,0,1) >= 'A') & (CHAINE(CC,0,1) <= 'Z') /
			CAT(EC)=N;
			SOUSN(EC)=NPRO;
			UL(EC)='nom-propre';
			LEMME(EC)=FRM(EC);
			DICT(EC)=5;
			ETAT(EC)=2 /
				TCHAINE(-1,*,'').

      RINCN8:   (CHAINE(CC,0,1) >= 'A') & (CHAINE(CC,0,1) <= 'Z') /
			CAT(EC)=N;
			SOUSN(EC)=NPRO;
			UL(EC)='nom-propre';
			LEMME(EC)=FRM(EC)/
				TCHAINE(0,*,'').

      RINC8:    /	CAT(EC)=INCONNU/
				TCHAINE(0,*,'').

      RMATH:    ((CHAINE(CC,0,1) = '(') & (CHAINE(CC,-0,1) = ')')) | 
		((CHAINE(CC,0,1) = '[') & (CHAINE(CC,-0,1) = ']'))|
		((CHAINE(CC,0,1) = '<') & (CHAINE(CC,-0,1) = '>')) /
			CAT(EC) = N;
			SOUSN(EC) = NPRO;
			UL(EC) = '*EXPRESSION';
			LEMME(EC)='EXPRESSION'/
				TCHAINE(0,*,'').

		/* Traitement des mots inconnus avec une ponctuation  la fin */

      RISTEPT:    (CHAINE(CC,-1,4) = 'iste') | (CHAINE(CC,-2,4) = 'iste') |
                (CHAINE(CC,-1,4) = 'able') | (CHAINE(CC,-2,4) = 'able') |
                (CHAINE(CC,-1,4) = 'aire') | (CHAINE(CC,-2,4) = 'aire') |
                (CHAINE(CC,-1,4) = 'ible') | (CHAINE(CC,-2,4) = 'ible') /
			CAT(EC)=ADJOINT;
			SOUSA(EC)=ADVERB|ADNOM;
			GNR(EC)=MAS|FEM;
			UL(EC)='*INC';
			LEMME(EC)='INC'//
					RINCPLPT,
					RINCSINPT.

      RISMEPT:    (CHAINE(CC,-1,4) = 'isme') | (CHAINE(CC,-2,4) = 'isme') |
                (CHAINE(CC,-1,3) = 'age') | (CHAINE(CC,-2,3) = 'age') |
                (CHAINE(CC,-1,5) = 'ments') / CAT(EC)=N;SOUSN(EC)=NCOM;
			GNR(EC)=MAS;
			UL(EC)='*INC';
			LEMME(EC)='INC'//
					RINCPLPT,
					RINCSINPT.

      REURPT:    (CHAINE(CC,-1,3) = 'eur') | (CHAINE(CC,-2,3) = 'eur') |
                (CHAINE(CC,-1,4) = 'able') | (CHAINE(CC,-2,4) = 'able') |
                (CHAINE(CC,-1,3) = 'ain') | (CHAINE(CC,-2,3) = 'ain') |
                (CHAINE(CC,-1,3) = 'ien') | (CHAINE(CC,-2,3) = 'ien') /
			CAT(EC)=ADJOINT;
			SOUSA(EC)=ADVERB|ADNOM;
			GNR(EC)=MAS;
			UL(EC)='*INC';
			LEMME(EC)='INC'//
					RINCPLPT,
					RINCSINPT.

      REUSEPT:    (CHAINE(CC,-1,4) = 'euse') | (CHAINE(CC,-2,4) = 'euse') |
                (CHAINE(CC,-1,4) = 'aine') | (CHAINE(CC,-2,4) = 'aine') |
                (CHAINE(CC,-1,5) = 'ienne') | (CHAINE(CC,-2,5) = 'ienne') /
			CAT(EC)=ADJOINT;
			SOUSA(EC)=ADVERB|ADNOM;
			GNR(EC)=FEM;
			UL(EC)='*INC';
			LEMME(EC)='INC'//
					RINCPLPT,
					RINCSINPT.

      RIONPT:    (CHAINE(CC,-1,3) = 'ion') | (CHAINE(CC,-2,3) = 'ion') /
			CAT(EC)=N;
			SOUSN(EC)=NCOM;
			GNR(EC)=FEM;
			UL(EC)='*INC';
			LEMME(EC)='INC'//
					RINCPLPT,
					RINCSINPT.

      RMENTPT:    (CHAINE(CC,-1,4) = 'ment') /
			CAT(EC)=N|ADJOINT;
			SOUSN(EC)=NCOM;
			SOUSA(EC)=ADVERB;
			NUM(EC)=SIN;
			PLACEMOT(EOC) = PLACEMOT(EC);
			GNR(EC)=MAS/
				TCHAINE(-1,*,'')/
			RSINCP8PT.

      RINCPLPT:   (CHAINE(CC,-1,1) = 's')/
			NUM(EC)=PLU/
				TCHAINE(-1,*,'')/
			RSINCP8PT.

      RINCSINPT:   /	
			NUM(EC)=SIN/
				TCHAINE(-1,*,'')/
			RSINCP8PT.

      RADJNEGPT:  (CHAINE(CC,0,2)='in')|(CHAINE(CC,0,2)='ir')|
                (CHAINE(CC,0,2)='im')|(CHAINE(CC,0,2)='il')/
			CAT(EC)=ADJOINT;
			SOUSA(EC)=ADNOM/
				TCHAINE(-1,*,'')/
			RSINCP8PT.

      RINCN8PCTPT:   (CHAINE(CC,0,1) >= 'A') & (CHAINE(CC,0,1) <= 'Z') /
			CAT(EC)=N;
			SOUSN(EC)=NPRO;
			UL(EC)='nom-propre';
			LEMME(EC)=FRM(EC);
			ETAT(EC)=2 /
				TCHAINE(-1,*,'')/
			RSINCP8PT.

      RINCN8PT:   (CHAINE(CC,0,1) >= 'A') & (CHAINE(CC,0,1) <= 'Z') /
			CAT(EC)=N;
			SOUSN(EC)=NPRO;
			UL(EC)='nom-propre';
			LEMME(EC)=FRM(EC) /
				TCHAINE(-1,*,'')/
			RSINCP8PT.

      RINC8PT:    /	CAT(EC)=INCONNU;
			LEMME(EC)=FRM(EC,-1,*)/
				TCHAINE(-1,*,'')/
			RSINCP8PT.

      RMATHPT:    ((CHAINE(CC,0,1) = '(') & (CHAINE(CC,-1,1) = ')')) | 
		((CHAINE(CC,0,1) = '[') & (CHAINE(CC,-1,1) = ']'))|
		((CHAINE(CC,0,1) = '<') & (CHAINE(CC,-1,1) = '>')) /
			CAT(EC) = N;
			SOUSN(EC) = NPRO;
			UL(EC) = '*EXPRESSION';
			LEMME(EC)='EXPRESSION'/
				TCHAINE(-1,*,'')/
			RSINCP8PT.

      RSINCP8PT:   /	ETAT(EC) = 2;
			DICT(EC)=5.

             /* regles concernant la preedition */

      RPREDT:   /	VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			FRM(EC)=CHAINE(CC)/
				TCHAINE(0,*,'')/
					SRFINAL,
					SRNFINAL.

      SRFINAL: (UL(EAD1) != '-') //
				FINAL.

      SRNFINAL: (UL(EAD1) = '-')//
				ARD.

             /*  traitement des invariants  */
             /*  invariants non ambigus (par, trois) */

      R1:       ((ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))) &
			(CHAINE(CC) = '') /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			LEMME(EC) = CHAINE(CD);
			TPREPNM(EC)=TPREPNM(ED)//
					SRFINAL,
					SRNFINAL.

      R1L:       ((ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))) &
			(CHAINE(CC) = '') /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			LEMME(EC) = LEMME(ED);
			TPREPNM(EC)=TPREPNM(ED)//
					SRFINAL,
					SRNFINAL.

     R1P:       ((ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))) &
			(CHAINE(CC) = '') /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			FRM(EC) = FRM(EC,-1,*);
			LEMME(EC) = FRM(EC)//
					SRFINAL,
					SRNFINAL.



      RENUM:       (ETAT(EC) = 0)|(ETAT(EC) = 7) ///
					RSIMPLENUM,
					RSOULIGN,
					RFINSOULIGN.

      RSIMPLENUM:  (ETAT(EC)=0) & (CHAINE(CC)!='') & (CAT(EAD1)!=PONCT) & (CAT(EC) != PONCT) /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			FRM(EC) = CHAINE(CD);
			LEMME(EC) = CHAINE(CD);
			FRM(FRMCA)=CHAINE(CA);
			FRM(FRMDICT)=CHAINE(CC);
			PLACEMOT(EC) = PLACEMOT(EC) + %LGCH(FRM(FRMCA)) - (%LGCH(FRM(EC)) + %LGCH(FRM(FRMDICT)))/
				SOL/
					RFENUM.

      RFENUM:  /	FRM(EC) = CHAINE(CC);
			VARGNS(EC)=0;GTPREPSEMC(EC) = 0;
			VARGNSY(EC)=0;
			TPREPNM(EC) = 0;
			VARGNM(EC)=0;
			DICT(EC)=1|2;
			FRM(FRMDICT) = CHAINE(CD);
			PLACEMOT(EC) = PLACEMOT(EC) + %LGCH(FRM(FRMDICT)).

      RSOULIGN:   (ETAT(EC) = 0) & (CAT(EAD1)=0) & ((CAT(EC) = 0)|((CAT(EC)=PONCT)&(UL(EC)=UL(ED))))/
			CAT(EC)=PONCT;
			SOUSP(EC)=SOULIGNEMENT;
			SOUSP->FONCT(EC)=SEPARATION;
			UL(EC)=UL(ED);
			ETAT(EC) = 7.

      RFINSOULIGN: (ETAT(EC) = 7).

      RPRECED:     (ETAT(EC)=0) & (CHAINE(CC)!='') /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			FRM(EC) = CHAINE(CD);
			LEMME(EC) = CHAINE(CD);
			FRM(FRMCA)=CHAINE(CA);
			FRM(FRMDICT)=CHAINE(CC);
			PLACEMOT(EC) = PLACEMOT(EC) + %LGCH(FRM(FRMCA)) - (%LGCH(FRM(EC)) + %LGCH(FRM(FRMDICT)));
			PLACEMOT(EOC) = PLACEMOT(EC)/
				SOL/
					RFPRECED.

      RFPRECED:   /	FRM(EC) = CHAINE(CC);
			VARGNS(EC)=0;GTPREPSEMC(EC) = 0;
			VARGNSY(EC)=0;
			TPREPNM(EC) = 0;
			VARGNM(EC)=0;
			DICT(EC)=6;
			FRM(FRMDICT) = CHAINE(CD);
			PLACEMOT(EC) = PLACEMOT(EC) + %LGCH(FRM(FRMDICT)).

      R1PRP:    (ETAT(EC)=0) & (CHAINE(CC)='') /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			LEMME(EC) = LEMME(ED)/
				ART.

      RCITAT:   (ETAT(EC)=0)/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			FRM(EC)=CHAINE(CD);
			LEMME(EC)=CHAINE(CD);
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC)/
				SOL/
					RDBCITAT,
					RSUITCIT.

      RDBCITAT:  /	PLACEMOT(EC) = PLACEMOT(EC) + %LGCH(FRM(EC));
			FRM(EC)=CHAINE(CC).

      RSUITCIT:  /	PLACEMOT(EC) = PLACEMOT(EC) + %LGCH(FRM(EC));
			FRM(EC)=CHAINE(CC)//
					RINITC.

      RCITAT2:  ((ETAT(EC)=2) | (ETAT(EC)=3) | (ETAT(EC)=4)) & (UL(EA1)=0) &
		(CHAINE(CC)!='') /
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC);
			FRM(FRMCA) = CHAINE(CC);
			FRM(FRMDICT) = CHAINE(CD)//
					SREFCITATC,
					SREFCITATD,
					SREFCITATF.

      SREFCITATC: (%LGCH(FRM(FRMCA)) > 0) /
			FRM(EC,-0,1) = '';
			FRM(FRMCA,0,1) = ''//
      					SREFCITATC,
					SREFCITATD,
					SREFCITATF.

      SREFCITATD: (%LGCH(FRM(FRMDICT)) > 0) /
			FRM(EC,-0,1) = '';
			FRM(FRMDICT,0,1) = ''//
      					SREFCITATD,
					SREFCITATF.

      SREFCITATF: //		SOLV/
					SRCITAT.

      RPRPCIT:  (CHAINE(CC,-0,1) = CHAINE(CD))&(UL(EA1) = 0) /
			CAT(EC) = N;
			SOUSN(EC) = NPRO;
			UL(EC)='nom-propre';
			LEMME(EC)=FRM(EC)/
				TCHAINE(0,*,'').

      SRCITAT:  /	FRM(EC)=CHAINE(CD)||CHAINE(CC);
			LEMME(EC)=CHAINE(CD);
			VARGNSP(EC)=VARGNSP(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMCM(EC)=GTPREPSEMCM(ED);
			TPREPNM(EC)=TPREPNM(ED).

		/* prefixes */

      R1CARD:   (ETAT(EC)=0) & (CHAINE(CC,0,1)='e') /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			DICT(EC)=5;
			LEMME(EC)=%CHAINE(UL(EC));
			ETAT(EC)=2 /
				TCHAINE(0,'e','')/
					SRFINAL,
					SRNFINAL.

             /* formes invariantes suivies d'une ponctuation */

      R1A:      ((ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))) &
		(CHAINE(CC) != '')/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			ETAT(EC)=2;
			DICT(EC)=5;
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC);
			LEMME(EC)=%CHAINE(UL(EC))//
					SRFINAL,
					SRNFINAL.

       R1AL:      ((ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))) &
		(CHAINE(CC) != '')/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			ETAT(EC)=2;
			DICT(EC)=5;
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC);
			LEMME(EC)=LEMME(ED)//
					SRFINAL,
					SRNFINAL.

            /* le (art,pronom)  */

      R2:       ((ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))) & (CHAINE(CC)='')/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			LEMME(EC) = %CHAINE(UL(EC)) /
				ARD.

             /* le (art,pronom) suivi d'une ponctuation */

      R2A:      ((ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0)))&(CHAINE(CC) != '')/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			ETAT(EC)=2;
			DICT(EC)=5;
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			LEMME(EC) = %CHAINE(UL(EC));
			PLACEMOT(EOC) = PLACEMOT(EC)/
				ARD.

             /* Pierre  */

      R2S:      ((ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0)))&(CHAINE(CC)='')/
			MAJUSCULE(EOM)=1;
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			LEMME(EC) = %CHAINE(UL(EC));
			TPREPNM(EC)=TPREPNM(ED) /
				ARD.

             /* Pierre suivi d'une ponctuation */

      R2AS:     ((ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0)))&(CHAINE(CC) != '')/
			MAJUSCULE(EOM)=1;
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			ETAT(EC)=2;
			DICT(EC)=5;
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			LEMME(EC) = %CHAINE(UL(EC));
			PLACEMOT(EOC) = PLACEMOT(EC)/
				ART.

             /* contre */

      R3:       (ETAT(EC)=0) & (CHAINE(CC) = '') /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			LEMME(EC) = CHAINE(CD);
			LEMME(EC) = %CHAINE(UL(EC)).

             /* contre suivi d'une ponctuation. */

      R3A:      (ETAT(EC)=0) & (CHAINE(CC) != '') /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			ETAT(EC)=2;
			DICT(EC)=5;
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			LEMME(EC) = %CHAINE(UL(EC));
			PLACEMOT(EOC) = PLACEMOT(EC).

             /* Prefixe: forme accolee */

      R4PM:       (ETAT(EC)=0)&(CHAINE(CC)!='')&(MAJUSCULE(EC)=1)/
			MAJUSCULE(EOM)=C;
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC);
			FRM(EC)=CHAINE(CD);
			LEMME(EC)=CHAINE(CD);
			FRM(FRMDICT) = CHAINE(CD);
			CASSEM(EC) = 0;
			POSPREF(EC) = 1/
				SOL;ARD/
					R4PF.

      R4P:       (ETAT(EC)=0)&(CHAINE(CC)!='')&(MAJUSCULE(EC)=0)/
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC);
			FRM(EC)=CHAINE(CD);
			LEMME(EC)=CHAINE(CD);
			FRM(FRMDICT) = CHAINE(CD);
			CASSEM(EC) = 0;
			POSPREF(EC) = 1/
				SOL;ARD/
					R4PF.

      R4PF:     /	FRM(EC)=CHAINE(CC);
			LEMME(EC)=CHAINE(CC);
			VARGNS(EC) = 0;
			VARGNSY(EC)=0;
			GTPREPSEMC(EC) = 0;
			TPREPNM(EC) = 0;
			PLACEMOT(EC) = PLACEMOT(EC) + %LGCH(FRM(FRMDICT));
			ETAT(EC) = 6;
			DICT(EC)=1|2//
					R4PN,
					RNOMPRP.

      R4PREP:       (ETAT(EC)=0)&(CHAINE(CC)!='')/
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC);
			FRM(EC)=CHAINE(CD);
			FRM(FRMDICT) = CHAINE(CD);
			CASSEM(EC) = 0;
			POSPREF(EC) = 1/
				SOL;ARD/
					R4PFPREP.

      R4PFPREP:     /	FRM(EC)=CHAINE(CC);
			VARGNS(EC) = 0;
			VARGNSY(EC)=0;
			GTPREPSEMC(EC) = 0;
			TPREPNM(EC) = 0;
			PLACEMOT(EC) = PLACEMOT(EC) + %LGCH(FRM(FRMDICT)) //
					RINITM,
					RINIT,
					RNOMPRP,
					RINITC,
					RINITE,
					RNOMPRPH.
      R4PN: 	.

      R4T:       (ETAT(EC)=0)&(CHAINE(CC)!='')/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			ETAT(EC) = 2; DICT(EC)=5;
			LEMME(EC) = CHAINE(CD,-1,*)/
			ART/R4TINIT.

      R4TINIT:   // TCHAINE(0,'','-').

      R4:       (ETAT(EC)=0)&(CHAINE(CC)!='')/
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC);
			FRM(EC)=FRM(FPREFIXN)||CHAINE(CD);
			LEMME(EC) = %CHAINE(UL(EC));
			LEMME(EC) = FRM(FPREFIXN)||LEMME(EC)/
				SOL/
					R4INIT.
      R4INIT:	/	PLACEMOT(EC) = PLACEMOT(EC) + %LGCH(FRM(EC));
			FRM(EC) = CHAINE(CC);
			FRM(FRMLEMME) = CHAINE(CC);
			VARGNSP(EC) = 0;
			VARGNSY(EC)=0;
			MAJUSCULE(EC) = 0;
			DICT(EC) = 1|2|6 //
					RMAJ4,
					RNMAJ4,
					RNOMPRP,
					RNOMPRPH.

      RMAJ4:	((CHAINE(CC,0,1) >= 'A') & (CHAINE(CC,0,1) <= 'Z'))|
 		((CHAINE(CC,0,1) > 'z') &
		((CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')|
		(CHAINE(CC,0,1) = '')|(CHAINE(CC,0,1) = '')))/
			MAJUSCULE(EC)=1/
				TCHAINE(0,'A','a');
				TCHAINE(0,'B','b');
				TCHAINE(0,'C','c');
				TCHAINE(0,'D','d');
				TCHAINE(0,'E','e');
				TCHAINE(0,'F','f');
				TCHAINE(0,'G','g');
				TCHAINE(0,'H','h');
				TCHAINE(0,'I','i');
				TCHAINE(0,'J','j');
				TCHAINE(0,'K','k');
				TCHAINE(0,'L','l');
				TCHAINE(0,'M','m');
				TCHAINE(0,'N','n');
				TCHAINE(0,'O','o');
				TCHAINE(0,'P','p');
				TCHAINE(0,'Q','q');
				TCHAINE(0,'R','r');
				TCHAINE(0,'S','s');
				TCHAINE(0,'T','t');
				TCHAINE(0,'U','u');
				TCHAINE(0,'V','v');
				TCHAINE(0,'W','w');
				TCHAINE(0,'X','x');
				TCHAINE(0,'Y','y');
				TCHAINE(0,'Z','z');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','');
				TCHAINE(0,'','').

      RNMAJ4:   .

      R4PRP:    (ETAT(EC)=0)&(CHAINE(CC)!='')&(CAT(EOM)=0)/
			CAT(EC)=N;
			SOUSN(EC)=NPRO;
			UL(EC)='nom-propre';
			LEMME(EC) = FRM(EC);
			ETAT(EC)=2;
			DICT(EC)=5;
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC)//
					SRFINAL,
					SRNFINAL.

      RN4:      (ETAT(EC)=0)&(CHAINE(CC)!='')/
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC);
			FRM(EC)=FRM(FPREFIXN)||CHAINE(CD)/
				FRM.

      RN4PRP:   (ETAT(EC) = 0)&(CHAINE(CC) != '')&(CAT(EOM)  = 0)/
			CAT(EC)=N;
			SOUSN(EC)=NPRO;
			UL(EC)='nom-propre';
			LEMME(EC)=FRM(EC);
			ETAT(EC)=2;
			DICT(EC)=5;
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC).

             /* suffixes -ci -la */

      R6:       /	FRM(EC)=FRM(EC,0,'-');
			FRM(EC)=FRM(EC,-1,*);
			CASSEM(EC) = 0;
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC)/
				SOLV/
					SR6.

      SR6:      /	FRM(EC)='-';
			VARGNS(EC)=0;
			VARGNSY(EC)=0;
			CHIFFRE(EC)=0;
			CAT(EC)=PONCT;
			UL(EC)='-';
			LEMME(EC)='-' /
				SOLV/
					SSR6.

      SSR6:     /	FRM(EC)=CHAINE(CD)||CHAINE(CC);
			FRM(EC)=FRM(EC,1,*);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			LEMME(EC)=%CHAINE(UL(EC)).

             /* au/aux  */

      R5:       (ETAT(EC)=0) & (CHAINE(CC) = '') /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			VARGRNB(EC)=0;
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC);
			LEMME(EC)=%CHAINE(UL(EC))/
				SOLV/
					SRFINALSR5,
					SRNFINALSR5.

      R5A:      (ETAT(EC)=0) & (CHAINE(CC) != '') /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			VARGRNB(EC)=0;
			ETAT(EC)=2;
			DICT(EC)=5;
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			LEMME(EC)='';
			PLACEMOT(EOC) = PLACEMOT(EC)/
				SOL/
					SRFINALSR5,
					SRNFINALSR5.


      SRFINALSR5: (UL(EAD1) != '-') //
				FINAL/
					SR5.

      SRNFINALSR5: (UL(EAD1) = '-')//
				ARD/
					SR5.

     SR5:       /	VARGNS(EC)=VARGNS(FARTLE);
			VARGNSY(EC)=VARGNSY(FARTLE);
			VARGRNB(EC)=VARGRNB(ED);
			LEMME(EC) = %CHAINE(UL(EC)).

		/* desdits	*/

      R5D:      (ETAT(EC)=0) & (CHAINE(CC) = '') /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			VARGRNB(EC)=0;
			FRM(EC)='de';
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			LEMME(EC)='de';
			PLACEMOT(EOC) = PLACEMOT(EC)/
				SOLV/
					SRFINAL5DP,
					SRNFINAL5DP.

      R5AD:     (ETAT(EC)=0) & (CHAINE(CC) != '') /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			VARGRNB(EC)=0;
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			LEMME(EC)='de';
			PLACEMOT(EOC) = PLACEMOT(EC)/
				SOL/
					SRFINAL5D,
					SRNFINAL5D.

      SRFINAL5DP: (UL(EAD1) != '-') //
				FINAL/
					SR5DPLU,
					SR5D.

      SRNFINAL5DP: (UL(EAD1) = '-')//
				ARD/
					SR5DPLU,
					SR5D.

     SR5DPLU:   (NUM(ED) = PLU) /
			FRM(EC)='lesdits'||CHAINE(CC)/
				TCHAINE(0,'','lesdits').

      SRFINAL5D: (UL(EAD1) != '-') //
				FINAL/
					SR5D.

      SRNFINAL5D: (UL(EAD1) = '-')//
				ARD/
					SR5D.

     SR5D:      /	FRM(EC)='ledit'||CHAINE(CC)/
				TCHAINE(0,'','ledit').

		/* des: indefini */

      R5I:      (ETAT(EC)=0) & (CHAINE(CC) = '') /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			VARGRNB(EC)=0;
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			LEMME(EC)=%CHAINE(UL(EC));
			PLACEMOT(EOC) = PLACEMOT(EC)/
				SOLV/
			 		SRFINALSR5I,
					SRNFINALSR5I.

      R5AI:     (ETAT(EC)=0) & (CHAINE(CC) != '') /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			VARGRNB(EC)=0;
			ETAT(EC)=2;
			DICT(EC)=5;
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC)/
				SOL/
					SRFINALSR5I,
					SRNFINALSR5I.

      SRFINALSR5I: (UL(EAD1) != '-') //
				FINAL/
					SR5I.

      SRNFINALSR5I: (UL(EAD1) = '-')//
				ARD/
					SR5I.

     SR5I:      /	VARGNS(EC)=VARGNS(FARTDES);
			VARGNSY(EC)=VARGNSY(FARTDES);
			VARGRNB(EC)=VARGRNB(ED);
			LEMME(EC)=%CHAINE(UL(EC)).

		/* duquel */

      R5Q:       (ETAT(EC)=0) & (CHAINE(CC) = '') /
			CAT(EC)=PREP;
			TPREP(EC)=DE;
			TPREPNM(EC)=DE;
			UL(EC)='de';
			FRM(EC)='de';
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			LEMME(EC)='de';
			PLACEMOT(EOC) = PLACEMOT(EC)/
				SOLV/
					SRFINALSR5Q,
					SRNFINALSR5Q.

      R5AQ:      (ETAT(EC)=0) & (CHAINE(CC) != '') /
			CAT(EC)=PREP;
			TPREP(EC)=DE;
			TPREPNM(EC)=DE;
			UL(EC)='de';
			FRM(EC) = 'de';
			ETAT(EC)=2;
			DICT(EC)=5;
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			LEMME(EC)='de';
			PLACEMOT(EOC) = PLACEMOT(EC)/
				SOL/
					SRFINALSR5Q,
					SRNFINALSR5Q.

      SRFINALSR5Q: (UL(EAD1) != '-') //
				FINAL/
					SR5Q.

      SRNFINALSR5Q: (UL(EAD1) = '-')//
				ARD/
					SR5Q.

     SR5Q:      /	VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			VARGRNB(EC)=VARGRNB(ED);
			FRM(EC)='le' || CHAINE(CA,2,*).

              /*  Expression entre parentheses ou crochets */

      R7:      (ETAT(EC) = 0) & (CHAINE(CC,0,1) = FRM(ED))/
			CAT(EC)=N;
			SOUSN(EC)=NPRO;
			UL(EC)='*EXPRESSION'/
				TCHAINE(0,*,'').

		/* Ponctuation apres un mot inconnu (nom propre) */

     R8I:       (ETAT(EC)=8)/
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC);
			FRM(FRMCA)=CHAINE(CC);
			FRM(FRMDICT)=CHAINE(CD);
			CASSEM(EC) = 0/ ARD /
					SREF8CI,
					SREF8DI,
					SREF8I.

    SREF8CI:     (%LGCH(FRM(FRMCA)) > 0) /
			FRM(EC,-0,1) = '';
			LEMME(EC,-0,1) = '';
			FRM(FRMCA,0,1) = ''//
					SREF8CI,
					SREF8DI,
					SREF8I.

    SREF8DI:	(%LGCH(FRM(FRMDICT)) > 0) /
			FRM(EC,-0,1) = '';
			LEMME(EC,-0,1) = '';
			FRM(FRMDICT,0,1) = ''//
					SREF8DI,
					SREF8I.

    SREF8I:	//		SOLV/
					SR8CI.

    SR8CI:       /	PLACEMOT(EC) = PLACEMOT(EC) + %LGCH(FRM(EC));
			ADRG(EC) = 0;
			FRM(EC)=CHAINE(CD)||CHAINE(CC);
			VARGNSP(EC)=VARGNSP(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMM(EC)=GTPREPSEMM(ED);
			TPREPNM(EC)=TPREPNM(ED);
			LEMME(EC)=FRM(EC).

		/* ponctuation en fin de forme
		*/

     R8:       ((ETAT(EC)=2) | (ETAT(EC)=3) | (ETAT(EC)=4)) &
		(((CHAINE(CC)='')|(CHAINE(CC,0,1) = ')')|(CHAINE(CC) = '"')|
			(FRM(EAD1)=')')|(FRM(EAD1)='"'))|
		(((CHAINE(CD) = ')')&(CHAINE(CC)='.'))|
		 ((CHAINE(CD) = ',')&(CHAINE(CC,0,2) = '..'))))/
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC);
			FRM(FRMCA)=CHAINE(CC);
			FRM(FRMDICT)=CHAINE(CD);
			CASSEM(EC) = 0/ ARD /
					SREF8C,
					SREF8D,
					SREF8.

    SREF8C:     (%LGCH(FRM(FRMCA)) > 0) /
			FRM(EC,-0,1) = '';
			FRM(FRMCA,0,1) = ''//
					SREF8C,
					SREF8D,
					SREF8.

    SREF8D:	(%LGCH(FRM(FRMDICT)) > 0) /
			FRM(EC,-0,1) = '';
			FRM(FRMDICT,0,1) = ''//
					SREF8D,
					SREF8.

    SREF8:	//		SOLV/
					SR8C.

    SR8C:       /	PLACEMOT(EC) = PLACEMOT(EC) + %LGCH(FRM(EC));
			ADRG(EC) = 0;
			FRM(EC)=CHAINE(CD)||CHAINE(CC);
			VARGNSP(EC)=VARGNSP(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMM(EC)=GTPREPSEMM(ED);
			TPREPNM(EC)=TPREPNM(ED);
			LEMME(EC)=%CHAINE(UL(EC)).

     R8P:       ((ETAT(EC)=2) | (ETAT(EC)=3) | (ETAT(EC)=4)) & ((CHAINE(CC)='')|
		(CHAINE(CC,0,1) = ')')|(CHAINE(CC) = '"')| (FRM(EAD1)=')')|
		(FRM(EAD1)='"'))|((CHAINE(CD) = ')')&(CHAINE(CC)='.'))/
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC);
			FRM(FRMCA)=CHAINE(CC);
			FRM(FRMDICT)=CHAINE(CD,-1,*);
			CASSEM(EC) = 0;
			FRM(EC) = FRM(EC,-1,*)/ ARD /
					SREF8CP,
					SREF8DP,
					SREF8P.

    SREF8CP:     (%LGCH(FRM(FRMCA)) > 0) /
			FRM(EC,-0,1) = '';
			FRM(FRMCA,0,1) = ''//
					SREF8CP,
					SREF8DP,
					SREF8P.

    SREF8DP:	(%LGCH(FRM(FRMDICT)) > 0) /
			FRM(EC,-0,1) = '';
			FRM(FRMDICT,0,1) = ''//
					SREF8DP,
					SREF8P.

    SREF8P:	//		SOLV/
					SR8CP.

    SR8CP:       /	PLACEMOT(EC) = PLACEMOT(EC) + %LGCH(FRM(EC));
			ADRG(EC) = 0;
			FRM(EC)=CHAINE(CD,-1,*)||CHAINE(CC);
			VARGNSP(EC)=VARGNSP(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMM(EC)=GTPREPSEMM(ED);
			TPREPNM(EC)=TPREPNM(ED).

     R8M:       ((ETAT(EC)=2) | (ETAT(EC)=3) | (ETAT(EC)=4)) & ((CHAINE(CC)='')|
		(CHAINE(CC,0,1) = ')')|(CHAINE(CC,0,1) = '"')| 
		(CHAINE(CC,0,1) = CHAINE(CD,-0,1))|(FRM(EAD1)=')')|
		(FRM(EAD1)='"'))|((CHAINE(CD) = ')')&(CHAINE(CC)='.'))/
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC);
			FRM(FRMCA)=CHAINE(CC);
			FRM(FRMDICT)=CHAINE(CD);
			CASSEM(EC) = 0/ ARD /
					SR8PM,
					SR8M.

     SR8PM:	(CHAINE(CC,0,1) = CHAINE(CD,0,1))&(CHAINE(CD) = '..')//
				TCHAINE(0,*1,'') /
					SR8M,
					SREF8C,
					SREF8D,
					SREF8.

     SR8M:	(CHAINE(CC,0,1) = CHAINE(CD,0,1))//
				TCHAINE(0,*1,'') /
					SR8M,
					SREF8C,
					SREF8D,
					SREF8.

		/* prefixes */

    RPREF:     ((ETAT(EC) = 0)|(ETAT(EC) = 6))&(CHAINE(CC)!='')/
			TPREF(EC)=TPREF(ED);
			PREFIX(EC)=PREFIX(ED);
			LEMME(FRMLEMME)=CHAINE(CD);
			ETAT(EC)=1;
			DICT(EC)=2 //
				ROKPREF,RNOKPREF.

    ROKPREF: .

    RNOKPREF:  / DICT(EC)=0; LEMME(FRMLEMME)=''.

		/* tiret separant deux formes */

    R10:        ((ETAT(EC)=2)|(ETAT(EC)=3)|(ETAT(EC)=4)|(ETAT(EC) = 6))/
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC);
			FRM(EC)=FRM(EC,0,'-');
			CASSEM(EC) = 0/
				ARD/ SRTCHTIRET,SRTCHSLASH.

    SRTCHTIRET: (FRM(EC,'-',1) = '-') /
			FRM(EC)=FRM(EC,0,'-')//
					SRTCH10S.

    SRTCHSLASH: (FRM(EC,'/',1) = '/') /
			FRM(EC)=FRM(EC,0,'/')//
					SRTCH10S.

    SRTCH10S:   /	FRM(EC)=FRM(EC,-1,*);
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC)/
				SOLV/
					SR10M,
					SR10.

    SR10M:      (UL(EAD1) != 0)&(CHAINE(CC) != '')/
			PLACEMOT(EC) = PLACEMOT(EC) + %LGCH(FRM(EC));
			FRM(EC)=CHAINE(CD);
			LEMME(EC)=FRM(EC);
			VARGNM(EC)=0;
			MAJUSCULE(EC) = 0;
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			ADRG(EC) = 0;
			DICT(EC) = 1|2;
			CAT(EC) = CAT(EC)|CONJCT;
			SOUSC(EC) = COORD;
			PRIORITE_CAT(EC) = CONJCT/
				SOL/
					SRTCH10M.

    SRTCH10M:   /	PLACEMOT(EC) = PLACEMOT(EC) + %LGCH(FRM(EC));
			FRM(EC)=CHAINE(CC) // RMAJ4,RNMAJ4.

    SR10:       /	PLACEMOT(EC) = PLACEMOT(EC) + %LGCH(FRM(EC));
			FRM(EC)=CHAINE(CD);
			LEMME(EC)=CHAINE(CD);
			VARGNM(EC)=0;
			MAJUSCULE(EC) = 0;
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			ADRG(EC) = 0. 

			/* chiffres */

    RCHIFFRE:   /	VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			ETAT(EC)=2;
			DICT(EC)=5;
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC);
			LEMME(EC) = CHAINE(CD)//
					SRFINALRELCH,
					SRNFINALRELCH.

      SRFINALRELCH: (UL(EAD1) != '-') //
				FINAL/
					RELCHI,
					RDECIM,
					RHORAIRE,
					RPOURCENT,
					RORDINAL1,
					RORDINAL2,
					RFINCHI.

      SRNFINALRELCH: (UL(EAD1) = '-')//
				ARD/
					RELCHI,
					RDECIM,
					RHORAIRE,
					RPOURCENT,
					RORDINAL1,
					RORDINAL2,
					RFINCHI.

    RELCHI:    ((CHAINE(CC,0,1) >= '0') & (CHAINE(CC,0,1) <= '9'))/
			NUM(EC)=PLU;
			LEMME(EC)=LEMME(EC)||CHAINE(CC,0,1)/
				TCHAINE(0,*1,'')/
					RELCHI,
					RDECIM,
					RHORAIRE,
					RPOURCENT,
					RNUMREF,
					RFINCHI.

    RDECIM:    (((CHAINE(CC,0,1) = '.') | (CHAINE(CC,0,1) = ',')) &
		(CHAINE(CC,1,1) >= '0') & (CHAINE(CC,1,1) <= '9')) /
			NUM(EC)=PLU;
			LEMME(EC)=LEMME(EC)||CHAINE(CC,0,1)/
				TCHAINE(0,*1,'')/
					RELCHIDEC,
					RFINCHI.

    RELCHIDEC: ((CHAINE(CC,0,1) >= '0') & (CHAINE(CC,0,1) <= '9'))/
			NUM(EC)=PLU;
			LEMME(EC)=LEMME(EC)||CHAINE(CC,0,1)/
				TCHAINE(0,*1,'')/
					RELCHIDEC,
					RDECIM,
					RFINCHI.

    RHORAIRE:  (CHAINE(CC,0,1)='h')|(CHAINE(CC,0,1)='H')/
			CAT(EC)=N;
			SOUSN(EC)=NCOM;
			GNR(EC)=FEM;
			SOUSD(EC)=CARD;
			NUM(EC)=PLU;
			SEMA(EC)=TEMPS;
			LEMME(EC)=LEMME(EC)||CHAINE(CC,0,1)/
				TCHAINE(0,*1,'')/
					RDECIM,
					RELCHIDEC,
					RFINCHI.

    RPOURCENT:  (CHAINE(CC,0,1)='%')/
			CAT(EC)=N;
			SOUSN(EC)=NCOM;
			GNR(EC)=FEM;
			SOUSD(EC)=0;
			NUM(EC)=PLU;
			SEMA(EC)=TEMPS;
			LEMME(EC)=LEMME(EC)||CHAINE(CC,0,1)/
				TCHAINE(0,*1,'').

    RORDINAL1:	(CHAINE(CC,0,2) = 'Er')|(CHAINE(CC,0,2)='er')| (CHAINE(CC,0,2) = 'ER')/
			SOUSD(EC) = ORD;
			LEMME(EC)=LEMME(EC)||CHAINE(CC,0,2)/
				TCHAINE(0,*2,'').

    RORDINAL2:	(CHAINE(CC,0,3) = 'me')|(CHAINE(CC,0,3) = 'Eme') |
    		(CHAINE(CC,0,3) = 'EME')|(CHAINE(CC,0,3) = 're') |
		(CHAINE(CC,0,3) = 'Ere')|(CHAINE(CC,0,3) = 'ERE') /
			SOUSD(EC) = ORD;
			LEMME(EC)=LEMME(EC)||CHAINE(CC,0,3)/
				TCHAINE(0,*3,'').

    RELCHICAR: ((CHAINE(CC,0,1) >= '0') & (CHAINE(CC,0,1) <= '9'))|
		((CHAINE(CC,0,1) >= 'a') & (CHAINE(CC,0,1) <= 'z'))|
		((CHAINE(CC,0,1) >= 'A') & (CHAINE(CC,0,1) <= 'Z'))/
			NUM(EC)=PLU;
			LEMME(EC)=LEMME(EC)||CHAINE(CC,0,1)/
				TCHAINE(0,*1,'')/
					RELCHICAR,
					RNUMREF,
					RFINCHI.

    RNUMREF:   (CHAINE(CC,0,1)='/')|(CHAINE(CC,0,1)='-')/
			CAT(EC)=DETERM;
			SOUSD(EC)=ORD|CARD;
			NUM(EC)=PLU;
			LEMME(EC)=LEMME(EC)||CHAINE(CC,0,1)/
				TCHAINE(0,*1,'')/
					RELCHICAR,
					RFINCHI.

    RFINCHI:   .

    RORDCH:    SOUSD(EC)=CARD/
			SOUSD(EC)=SOUSD(ED);
			NUM(EC)=NUM(ED).

		/* expression entre parentheses ou crochets */

    REXPR:      ///
					REXPRN,
					REXPRP,
					RDETACH.

    REXPRN:     (CHAINE(CC,-0,1) = FRM(ED))&(UL(EA1) = 0) /
			CAT(EC) = N;
			SOUSN(EC) = NPRO;
			UL(EC) = '*EXPRESSION'/
				TCHAINE(0,*,'').

		/* expression entre parentheses ou crochets avec ponctuation */

    REXPRP:    ((CHAINE(CC,-1,1) = FRM(ED)) | (CHAINE(CC,-2,1) = FRM(ED)) |
                (CHAINE(CC,-3,1) = FRM(ED)))&(UL(EA1) = 0)/
			CAT(EC) = N;
			SOUSN(EC) = NPRO;
			UL(EC) = '*EXPRESSION';
			ETAT(EC)=2;
			DICT(EC)=5//
					REL1,
					REL2,
					REL3.

    RDETACH:	(ETAT(EC)=0)&(UL(EA1) = 0)/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED)/
				FRM.

    RPONCT:     (ETAT(EC) != 5)&(ETAT(EC) != 1)&(ETAT(EC) != 6) /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC);
			LEMME(EC) = CHAINE(CD);
			FRM(EC) = CHAINE(CD)/
				SOL/
					RSPONCT.

    RSPONCT: / FRM(EC) = CHAINE(CC).

    RPONCTP:     (ETAT(EC) != 5)&(ETAT(EC) != 1)&(ETAT(EC) != 6) /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			UL(EOC)='ULMCP';
			LEMME(EOC)='ULMCP';
			PLACEMOT(EOC) = PLACEMOT(EC);
			FRM(EC) = FRM(EC,-1,*)/
				SOL.

    REL1:       (CHAINE(CC,-1,1)=FRM(ED))//
				TCHAINE(-1,*,'').

    REL2:       (CHAINE(CC,-2,1)=FRM(ED))//
				TCHAINE(-2,*,'').

    REL3:       //
				TCHAINE(-3,*,'').

		/* adverbe ordinal: cinquiemement  */

     RCDLMNTU:   (ETAT(EC)=0) & (CHAINE(CC,0,9) = 'uimement') /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			ETAT(EC)=2;
			GSCAT(EC)=SOUSA->ADVERB;
			CAT(EC)=ADJOINT;
			DICT(EC)=5 /
				TCHAINE(0,*9,'')/
					SRFINAL,
					SRNFINAL.

                /* ordinaux cinquieme */

      RCDLU:     (ETAT(EC)=0) & (CHAINE(CC,0,5) = 'uime') /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			ETAT(EC)=2;
			CAT(EC)=DETERM;
			DECL(EC)=42;
			GSCAT(EC)=SOUSD->ORD;
			GNR(EC)=MAS|FEM;
			NUM(EC)=SIN;
			DICT(EC)=4|5 /
				TCHAINE(0,*5,'')/
					SRFINAL,
					SRNFINAL.

		/* adverbe ordinal: deuxiemement  */

     RCDLMNT:   (ETAT(EC)=0) & (CHAINE(CC,0,8) = 'imement') /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			ETAT(EC)=2;
			SOUSA(EC)=ADVERB;
			CAT(EC)=ADJOINT;
			DICT(EC)=5 /
				TCHAINE(0,*8,'')/
					SRFINAL,
					SRNFINAL.

                /* ordinaux deuxieme,troisieme,... */

      RCDL:      (ETAT(EC)=0) & (CHAINE(CC,0,4) = 'ime') /
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			ETAT(EC)=2;
			DECL(EC)=42;
			GSCAT(EC)=SOUSD->ORD;
			GNR(EC)=MAS|FEM;
			NUM(EC)=SIN;
			CAT(EC)=DETERM;
			DICT(EC)=4|5 /
				TCHAINE(0,*4,'')/
					SRFINAL,
					SRNFINAL.

		/* noms derives des cardinaux: dixaine, centaine, ... */

      RCDLDRV:  (ETAT(EC)=0) & (CHAINE(CC) != '')/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			DECLRV(EC)=DECLRV(ED);
			DECLRVB(EC)=DECLRVB(ED);
			ETAT(EC)=2;
			DICT(EC)=4 //
					SRFINAL,
					SRNFINAL.

      RBASV1:   ((ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))| (ETAT(EC) = 6))& (CHAINE(CC)!='')/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			ETAT(EC)=5;
			TPREF(EC)=TPREF(EC)&TPREF(ED);
			DCLRVVN(EC)=DCLRVVN(ED);
			DECLRVV2(EC)=DECLRVV2(ED);
			DICT(EC)=3;
			LEMME(EC)= LEMME(FRMLEMME)||%CHAINE(VSYNTF->UL(EC));
			FRM(FRMLEMME)=LEMME(FRMLEMME)||CHAINE(CD)//
					SRFINAL,
					SRNFINAL.

     RBASV2PR:  (ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0)&(CHAINE(CC)!='')/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			ETAT(EC)=5;
			TPREF(EC)=TPREF(EC)&TPREF(ED);
			DCLRVVN(EC)=DCLRVVN(ED);
			DECLRVV2(EC)=DECLRVV2(ED);
			DICT(EC)=3;
			LEMME(EC)=LEMME(FRMLEMME)||%CHAINE(UL(EC));
			FRM(FRMLEMME)=LEMME(FRMLEMME)||CHAINE(CD)/
				ARD.

     RBASV2:    ((ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))|(ETAT(EC) = 6))& (CHAINE(CC)!='')/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			ETAT(EC)=5;
			TPREF(EC)=TPREF(EC)&TPREF(ED);
			DCLRVVN(EC)=DCLRVVN(ED);
			DECLRVV2(EC)=DECLRVV2(ED);
			DICT(EC)=3;
			LEMME(EC)=LEMME(FRMLEMME)||%CHAINE(UL(EC));
			FRM(FRMLEMME)=LEMME(FRMLEMME)||CHAINE(CD)/
				ARD.

     RBASV3:    ((ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))|(ETAT(EC) = 6))& (CHAINE(CC)!='')/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			ETAT(EC)=5;
			TPREF(EC)=TPREF(EC)&TPREF(ED);
			DCLRVVN(EC)=DCLRVVN(ED);
			DECLRVV2(EC)=DECLRVV2(ED);
			DICT(EC)=3;
			LEMME(EC)=LEMME(FRMLEMME)||%CHAINE(UL(EC));
			FRM(FRMLEMME)=LEMME(FRMLEMME)||CHAINE(CD).

     RBASV4:    ((ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))|(ETAT(EC) = 6))/
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			ETAT(EC)=2;
			TPREF(EC)=TPREF(EC)&TPREF(ED);
			VARGNM(EC)=0;
			VRDSPAPA(EC)=0;
			SOUSV(EC)=PAPA;
			SOUSA(EC)=ADNOM;
			ETAT(EC)=4;
			CAT(EC)=CAT(EC)|ADJOINT;
			DCLRVVN(EC)=0;
			DECLRVV2(EC)=0;
			GNR(EC)=MAS;
			NUM(EC)=SIN;
			DICT(EC)=5;
			LEMME(EC)=LEMME(FRMLEMME)||%CHAINE(UL(EC));
			FRM(FRMLEMME)=LEMME(FRMLEMME)||CHAINE(CD)/
				ARD.

     RBASV5:    ((ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))|(ETAT(EC) = 6))/
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			TPREPNM(EC)=TPREPNM(ED);
			ETAT(EC)=2;
			TPREF(EC)=TPREF(EC)&TPREF(ED);
			VARGNM(EC)=0;
			VRDSPAPA(EC)=0;
			SOUSV(EC)=PAPA;
			SOUSA(EC)=ADNOM;
			ETAT(EC)=4;
			CAT(EC)=CAT(EC)|ADJOINT;
			DCLRVVN(EC)=0;
			DECLRVV2(EC)=0;
			GNR(EC)=MAS;
			NUM(EC)=SIN|PLU;
			DICT(EC)=5;
			LEMME(EC)=LEMME(FRMLEMME)||%CHAINE(UL(EC));
			FRM(FRMLEMME)=LEMME(FRMLEMME)||CHAINE(CD).

     RBASDRNM: (ETAT(EC)=0)|(ETAT(EC) = 6)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))/
			VARDNS(EC)=VARDNS(FSN01);
			VARGNSY(EC)=VARGNSY(FSN01);
			MPHDER(EC)=PHI;
			MPHDER(ED)=PHI;
			TPREPNM(EC)=TPREPNM(DICT(ED));
			GTPREPSEM(EC)=GTPREPSEM(DICT(ED));
			VARGNM(EC)=VARGNM(FSN01);
			UL(EC)=UL(ED);
			ETAT(EC)=2;
			DICT(EC)=4|5;
			LEMME(EC)=LEMME(FRMLEMME)||CHAINE(CD).

     RBASDRNF:  (ETAT(EC)=0)|(ETAT(EC) = 6)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))/
			VARDNS(EC)=VARDNS(FSN02);
			VARGNSY(EC)=VARGNSY(FSN02);
			MPHDER(EC)=PHI;
			MPHDER(ED)=PHI;
			TPREPNM(EC)=TPREPNM(DICT(ED));
			GTPREPSEM(EC)=GTPREPSEM(DICT(ED));
			VARGNM(EC)=VARGNM(FSN02);
			UL(EC)=UL(ED);
			ETAT(EC)=2;
			DICT(EC)=4|5;
			LEMME(EC)=LEMME(FRMLEMME)||CHAINE(CD).

     RBASDRN:   (ETAT(EC)=0)|(ETAT(EC) = 6)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))/
			VARDNS(EC)=VARDNS(FSN08);
			VARGNSY(EC)=VARGNSY(FSN08);
			MPHDER(EC)=PHI;
			MPHDER(ED)=PHI;
			TPREPNM(EC)=TPREPNM(DICT(ED));
			GTPREPSEM(EC)=GTPREPSEM(DICT(ED));
			VARGNM(EC)=VARGNM(FSN08);
			UL(EC)=UL(ED);
			ETAT(EC)=2;
			DICT(EC)=4|5;
			LEMME(EC)=LEMME(FRMLEMME)||CHAINE(CD).

     RBASDRNMF: (ETAT(EC)=0)|(ETAT(EC) = 6)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))/
			VARDNS(EC)=VARDNS(FSN07);
			VARGNSY(EC)=VARGNSY(FSN07);
			MPHDER(EC)=PHI;
			MPHDER(ED)=PHI;
			TPREPNM(EC)=TPREPNM(DICT(ED));
			GTPREPSEM(EC)=GTPREPSEM(DICT(ED));
			VARGNM(EC)=VARGNM(FSN07);
			UL(EC)=UL(ED);
			ETAT(EC)=2;
			DICT(EC)=4|5;
			LEMME(EC)=LEMME(FRMLEMME)||CHAINE(CD).

     RBASDRNMP: (ETAT(EC)=0)|(ETAT(EC) = 6)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))/
			VARDNS(EC)=VARDNS(FSN10);
			VARGNSY(EC)=VARGNSY(FSN10);
			MPHDER(EC)=PHI;
			MPHDER(ED)=PHI;
			TPREPNM(EC)=TPREPNM(DICT(ED));
			GTPREPSEM(EC)=GTPREPSEM(DICT(ED));
			VARGNM(EC)=VARGNM(FSN10);
			UL(EC)=UL(ED);
			ETAT(EC)=2;
			DICT(EC)=4|5;
			LEMME(EC)=LEMME(FRMLEMME)||CHAINE(CD).

     RBASDRNMN: (ETAT(EC)=0)|(ETAT(EC) = 6)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))/
			VARDNS(EC)=VARDNS(FSN25);
			VARGNSY(EC)=VARGNSY(FSN25);
			MPHDER(EC)=PHI;
			MPHDER(ED)=PHI;
			TPREPNM(EC)=TPREPNM(DICT(ED));
			GTPREPSEM(EC)=GTPREPSEM(DICT(ED));
			VARGNM(EC)=VARGNM(FSN10);
			UL(EC)=UL(ED);
			ETAT(EC)=2;
			DICT(EC)=4|5;
			LEMME(EC)=LEMME(FRMLEMME)||CHAINE(CD).

     RBASDRNA:  (ETAT(EC)=0)|(ETAT(EC) = 6)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))/
			VARDNS(EC)=VARDNS(FSNA32);
			VARGNSY(EC)=VARGNSY(FSNA32);
			MPHDER(EC)=PHI;
			VARGNM(EC)=VARGNM(FSNA32);
			MPHDER(ED)=PHI;
			TPREPNM(EC)=TPREPNM(DICT(ED));
			GTPREPSEM(EC)=GTPREPSEM(DICT(ED));
			UL(EC)=UL(ED);
			ETAT(EC)=2;
			DICT(EC)=4|5;
			LEMME(EC)=LEMME(FRMLEMME)||CHAINE(CD).

     RBASDRNAAS:  (ETAT(EC)=0)|(ETAT(EC) = 6)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))/
			VARDNS(EC)=VARDNS(FSNA26);
			VARGNSY(EC)=VARGNSY(FSNA26);
			MPHDER(EC)=PHI;
			VARGNM(EC)=VARGNM(FSNA26);
			MPHDER(ED)=PHI;
			TPREPNM(EC)=TPREPNM(DICT(ED));
			GTPREPSEM(EC)=GTPREPSEM(DICT(ED));
			UL(EC)=UL(ED);
			ETAT(EC)=2;
			DICT(EC)=4|5;
			LEMME(EC)=LEMME(FRMLEMME)||CHAINE(CD).

     RBASDRAAC:  (CHAINE(CC) != '')& ((ETAT(EC)=0)|(ETAT(EC) = 6)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0)))/
			VARDNS(EC)=VARDNS(FSA27);
			VARGNSY(EC)=VARGNSY(FSA27);
			MPHDER(EC)=PHI;
			MPHDER(ED)=PHI;
			TPREPNM(EC)=TPREPNM(DICT(ED));
			GTPREPSEM(EC)=GTPREPSEM(DICT(ED));
			VARGNM(EC)=VARGNM(FSA27);
			UL(EC)=UL(ED);
			ETAT(EC)=2;
			DICT(EC)=4|5;
			FRM(FRMLEMME)=LEMME(FRMLEMME)||CHAINE(CD).

     RBASDRAA:  (ETAT(EC)=0)|(ETAT(EC) = 6)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))/
			VARDNS(EC)=VARDNS(FSA01);
			VARGNSY(EC)=VARGNSY(FSA01);
			MPHDER(EC)=PHI;
			MPHDER(ED)=PHI;
			TPREPNM(EC)=TPREPNM(DICT(ED));
			GTPREPSEM(EC)=GTPREPSEM(DICT(ED));
			VARGNM(EC)=VARGNM(FSA01);
			UL(EC)=UL(ED);
			ETAT(EC)=2;
			DICT(EC)=4|5;
			LEMME(EC)=LEMME(FRMLEMME)||CHAINE(CD).

   RBASDRAAAP:  (ETAT(EC)=0)|(ETAT(EC) = 6)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))/
			VARDNS(EC)=VARDNS(FSA29);
			VARGNSY(EC)=VARGNSY(FSA29);
			MPHDER(EC)=PHI;
			MPHDER(ED)=PHI;
			TPREPNM(EC)=TPREPNM(DICT(ED));
			GTPREPSEM(EC)=GTPREPSEM(DICT(ED));
			VARGNM(EC)=VARGNM(FSA29);
			UL(EC)=UL(ED);
			ETAT(EC)=2;
			DICT(EC)=4|5;
			LEMME(EC)=LEMME(FRMLEMME)||CHAINE(CD).

     RBASDCNS:  (CHAINE(CC)!='')&((ETAT(EC)=0)|(ETAT(EC) = 6)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0)))/
			VARDNS(EC)=VARDNS(FSN21);
			VARGNSY(EC)=VARGNSY(FSN21);
			MPHDER(EC)=PHI;
			MPHDER(ED)=PHI;
			TPREPNM(EC)=TPREPNM(DICT(ED));
			GTPREPSEM(EC)=GTPREPSEM(DICT(ED));
			VARGNM(EC)=VARGNM(FSN21);
			UL(EC)=UL(ED);
			ETAT(EC)=5;
			DICT(EC)=4|5;
			FRM(FRMLEMME)=LEMME(FRMLEMME)||CHAINE(CD).

     RBASVNA:   (ETAT(EC)=0)|(ETAT(EC) = 6)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))/
			VARDNS(EC)=VARDNS(FSNA11);
			VARGNSY(EC)=VARGNSY(FSNA11);
			MPHDER(EC)=PHI;
			MPHDER(ED)=PHI;
			TPREPNM(EC)=TPREPNM(DICT(ED));
			GTPREPSEM(EC)=GTPREPSEM(DICT(ED));
			VARGNM(EC)=VARGNM(FSNA11);
			UL(EC)=UL(ED);
			ETAT(EC)=2;
			DICT(EC)=5;
			LEMME(EC)=LEMME(FRMLEMME)||CHAINE(CD).

     RBASVA:    (CHAINE(CC)!='')&((ETAT(EC)=0)|(ETAT(EC) = 6)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0)))/
			VARDNS(EC)=VARDNS(FSA01);
			VARGNSY(EC)=VARGNSY(FSA01);
			MPHDER(EC)=PHI;
			MPHDER(ED)=PHI;
			TPREPNM(EC)=TPREPNM(DICT(ED));
			GTPREPSEM(EC)=GTPREPSEM(DICT(ED));
			VARGNM(EC)=VARGNM(FSA01);
			UL(EC)=UL(ED);
			ETAT(EC)=2;
			DICT(EC)=4;
			LEMME(EC)=LEMME(FRMLEMME)||CHAINE(CD).

     RNNMP:     (ETAT(EC)=0)|(ETAT(EC) = 6)/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			ETAT(EC)=2;
			DCLRVNPA(EC)=DCLRVNPA(ED);
			DCLRVNA(EC)=DCLRVNA(ED);
			DICT(EC)=4|5//
					SRFINAL,
					SRNFINAL.

     RNNMPC:    ((ETAT(EC)=0)|(ETAT(EC) = 6))&(CHAINE(CC)!='')/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			ETAT(EC)=2;
			DCLRVNPA(EC)=DCLRVNPA(ED);
			DCLRVNA(EC)=DCLRVNA(ED);
			DICT(EC)=4|5//
					SRFINAL,
					SRNFINAL.

     RANMPC:    ((ETAT(EC)=0)|(ETAT(EC) = 6))&(CHAINE(CC)!='')/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			ETAT(EC)=2;
			DCLRVNPA(EC)=DCLRVNPA(ED);
			DCLRVNA(EC)=DCLRVNA(ED);
			LEMME(EC) = %CHAINE(UL(EC));
			DICT(EC)=4|5.

    RBASN1:    (ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))|(ETAT(EC) = 6)/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			ETAT(EC)=2;
			DECLRV(EC)=DECLRV(ED);
			DECLRVB(EC)=DECLRVB(ED);
			TPREF(EC)=TPREF(EC)&TPREF(ED);
			DICT(EC)=4|5;
			LEMME(EC)=%CHAINE(UL(ED));
			FRM(FRMLEMME)=LEMME(FRMLEMME)||CHAINE(CD)//
					SRFINAL,
					SRNFINAL.

     RBASN2:    ((ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))|(ETAT(EC) = 6))&(CHAINE(CC)!='')/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			DECLRV(EC)=DECLRV(ED);
			DECLRVB(EC)=DECLRVB(ED);
			ETAT(EC)=5;
			TPREF(EC)=TPREF(EC)&TPREF(ED);
			DICT(EC)=4|5;
			LEMME(EC)=%CHAINE(UL(ED));
			FRM(FRMLEMME)=LEMME(FRMLEMME)||CHAINE(CD)//
					SRFINAL,
					SRNFINAL.

     RBASN3:    (ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))|(ETAT(EC) = 6)/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			ETAT(EC)=2;
			DECLRV(EC)=DECLRV(ED);
			DECLRVB(EC)=DECLRVB(ED);
			TPREF(EC)=TPREF(EC)&TPREF(ED);
			DICT(EC)=4|5;
			LEMME(EC)=LEMME(FRMLEMME)||%CHAINE(UL(EC));
			FRM(FRMLEMME)=LEMME(FRMLEMME)||CHAINE(CD)/
			ARD.

     RBASN4:    ((ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))|(ETAT(EC) = 6))&(CHAINE(CC)!='')/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			ETAT(EC)=5;
			TPREF(EC)=TPREF(EC)&TPREF(ED);
			DECLRV(EC)=DECLRV(ED);
			DECLRVB(EC)=DECLRVB(ED);
			DICT(EC)=4|5;
			LEMME(EC)=LEMME(FRMLEMME)||%CHAINE(UL(EC));
			FRM(FRMLEMME)=LEMME(FRMLEMME)||CHAINE(CD)/
			ARD.

     RBASN5:    (ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))|(ETAT(EC) = 6)/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			ETAT(EC)=2;
			TPREF(EC)=TPREF(EC)&TPREF(ED);
			DECLRV(EC)=DECLRV(ED);
			DECLRVB(EC)=DECLRVB(ED);
			DICT(EC)=4|5;
			LEMME(EC)=LEMME(FRMLEMME)||%CHAINE(UL(EC));
			FRM(FRMLEMME)=LEMME(FRMLEMME)||CHAINE(CD).

     RBASN6:    ((ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))|(ETAT(EC) = 6))&(CHAINE(CC)!='')/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			ETAT(EC)=5;
			TPREF(EC)=TPREF(EC)&TPREF(ED);
			DECLRV(EC)=DECLRV(ED);
			DECLRVB(EC)=DECLRVB(ED);
			DICT(EC)=4|5;
			LEMME(EC)=LEMME(FRMLEMME)||%CHAINE(UL(EC));
			FRM(FRMLEMME)=LEMME(FRMLEMME)||CHAINE(CD).

     RBASNAV1:  (ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))|(ETAT(EC) = 6)/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			ETAT(EC)=2;
			DECLRV(EC)=DECLRV(ED);
			DECLRVB(EC)=DECLRVB(ED);
			TPREF(EC)=TPREF(EC)&TPREF(ED);
			DECL(EC)=0;
			DICT(EC)=5;
			LEMME(EC)=LEMME(FRMLEMME)||%CHAINE(UL(EC));
			FRM(FRMLEMME)=LEMME(FRMLEMME)||CHAINE(CD)//
					SRFINAL,
					SRNFINAL.

     RBASNAV2:  (ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))|(ETAT(EC) = 6)/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			ETAT(EC)=2;
			DECLRV(EC)=DECLRV(ED);
			DECLRVB(EC)=DECLRVB(ED);
			TPREF(EC)=TPREF(EC)&TPREF(ED);
			DECL(EC)=38;
			SOUSA(EC)=SOUSA(EC)&^ADVERB;
			DICT(EC)=4|5;
			LEMME(EC)=LEMME(FRMLEMME)||%CHAINE(UL(EC));
			FRM(FRMLEMME)=LEMME(FRMLEMME)||CHAINE(CD)//
					SRFINAL,
					SRNFINAL.

     RBASNAV3:  (ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))|(ETAT(EC) = 6)/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			ETAT(EC)=2;
			DECLRV(EC)=DECLRV(ED);
			DECLRVB(EC)=DECLRVB(ED);
			TPREF(EC)=TPREF(EC)&TPREF(ED);
			SOUSA(EC)=SOUSA(EC)&^ADVERB;
			SOUSN(EC)=0;
			CAT(EC)=CAT(EC)&^N;
			DICT(EC)=4|5;
			LEMME(EC)=LEMME(FRMLEMME)||%CHAINE(UL(EC));
			FRM(FRMLEMME)=LEMME(FRMLEMME)||CHAINE(CD)//
					SRFINAL,
					SRNFINAL.

     RBASAV1:  (ETAT(EC)=0)|((ETAT(EC)=1)&(TPREF(EC)&TPREF(ED)!=0))|(ETAT(EC) = 6)/
			VARGNM(EC)=VARGNM(ED);
			VARGNS(EC)=VARGNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(ED);
			GTPREPSEMC(EC)=GTPREPSEMC(ED);
			ETAT(EC)=2;
			DECLRV(EC)=DECLRV(ED);
			DECLRVB(EC)=DECLRVB(ED);
			TPREF(EC)=TPREF(EC)&TPREF(ED);
			SOUSA(EC)=SOUSA(EC)&^ADVERB;
			DICT(EC)=4|5;
			LEMME(EC)=LEMME(FRMLEMME)||%CHAINE(UL(EC));
			FRM(FRMLEMME)=LEMME(FRMLEMME)||CHAINE(CD)//
					SRFINAL,
					SRNFINAL.

     RDRVVA:    (ETAT(EC)=5)&(DCLRVVA(EC)&DCLRVVA(ED)!=0)&((TPREF(EC)=0)|(TPREF(EC)&TPREF(FMTPRFA)!=0))/
			VARDVN(EC)=VARDVN(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC));
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			VARGNM(EC)=VARGNM(ED);
			ETAT(EC)=3;
			DCLRVVN(EC)=0;
			DECLRVV2(EC)=0;
			DICT(EC)=4|5;
			LEMME(EC)=FRM(FRMLEMME)||CHAINE(CD).

     RDRVVAC:   (ETAT(EC)=5)&(DCLRVVA(EC)&DCLRVVA(ED)!=0)&(CHAINE(CC)!='')&((TPREF(EC)=0)|(TPREF(EC)&TPREF(FMTPRFA)!=0))/
			VARDVN(EC)=VARDVN(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC));
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			VARGNM(EC)=VARGNM(ED);
			ETAT(EC)=5;
			DCLRVVN(EC)=0;
			DECLRVV2(EC)=0;
			DICT(EC)=4|5;
			LEMME(EC)=FRM(FRMLEMME)||CHAINE(CD).

     RDRVVAPR:  (ETAT(EC)=5)&(DCLRVVA(EC)&DCLRVVA(ED)!=0)&((TPREF(EC)=0)|(TPREF(EC)&TPREF(FMTPRFA)!=0))/
			VARDVN(EC)=VARDVN(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC));
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			VARGNM(EC)=VARGNM(ED);
			ETAT(EC)=3;
			DCLRVVN(EC)=0;
			DECLRVV2(EC)=0;
			DICT(EC)=4|5;
			LEMME(EC)=FRM(FRMLEMME)||CHAINE(CD).


     RDRVVN:    (ETAT(EC)=5)&(DCLRVVN(EC)&DCLRVVN(ED)!=0)&((TPREF(EC)=0)|(TPREF(EC)&TPREF(FMTPRFN)!=0))/
			TPREPNM(ED) = TPREPNM(EC);
			VARDVN(EC)=VARDVN(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC))|TPREPNM(ED);
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			VARGNM(EC)=VARGNM(ED);
			ETAT(EC)=3;
			DCLRVVN(EC)=0;
			DECLRVV2(EC)=0;
			DICT(EC)=4|5;
			LEMME(EC)=FRM(FRMLEMME)||CHAINE(CD).

     RDRVVNC:   (ETAT(EC)=5)&(DCLRVVN(EC)&DCLRVVN(ED)!=0)&(CHAINE(CC)!='')&
		((TPREF(EC)=0)|(TPREF(EC)&TPREF(FMTPRFN)!=0))/
			TPREPNM(ED) = TPREPNM(EC);
			VARDVN(EC)=VARDVN(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC))|TPREPNM(ED);
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			VARGNM(EC)=VARGNM(ED);
			ETAT(EC)=5;
			DCLRVVN(EC)=0;
			DECLRVV2(EC)=0;
			DICT(EC)=4|5;
			LEMME(EC)=FRM(FRMLEMME)||FRM(ED).

     RDRVVM:    (ETAT(EC)=5)&(DCLRVVM(EC)&DCLRVVM(ED)!=0)&((TPREF(EC)=0)|(TPREF(EC)&TPREF(FMTPRFM)!=0))/
			VARDVN(EC)=VARDVN(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC));
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			VARGNM(EC)=VARGNM(ED);
			ETAT(EC)=3;
			DCLRVVN(EC)=0;
			DECLRVV2(EC)=0;
			DICT(EC)=5;
			LEMME(EC)=FRM(FRMLEMME)||CHAINE(CD).

     RDRVVNA:   (ETAT(EC)=5)&(DCLRVVNA(EC)&DCLRVVNA(ED)!=0)&((TPREF(EC)=0)|(TPREF(EC)&TPREF(FMTPRFNA)!=0))/
			TPREPNM(ED) = TPREPNM(EC);
			VARDVN(EC)=VARDVN(ED);
			VARGNSY(EC)=VARGNSY(ED);
			PRIORITE_CAT(EC)=PRIORITE_CAT(DICT(EC));
			TPREPNM(EC)=TPREPNM(DICT(EC))|TPREPNM(ED);
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			VARGNM(EC)=VARGNM(ED);
			ETAT(EC)=3;
			DCLRVVN(EC)=0;
			DECLRVV2(EC)=0;
			DICT(EC)=4|5;
			LEMME(EC)=FRM(FRMLEMME)||CHAINE(CD).

     RDRVVNAC:  (ETAT(EC)=5)&(DCLRVVNA(EC)&DCLRVVNA(ED)!=0)&(CHAINE(CC)!='')&
		((TPREF(EC)=0)|(TPREF(EC)&TPREF(FMTPRFNA)!=0))/
			TPREPNM(ED) = TPREPNM(EC);
			VARDVN(EC)=VARDVN(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC))|TPREPNM(ED);
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			PRIORITE_CAT(EC)=PRIORITE_CAT(DICT(EC));
			VARGNM(EC)=VARGNM(ED);
			ETAT(EC)=5;
			DCLRVVN(EC)=0;
			DECLRVV2(EC)=0;
			DICT(EC)=4|5;
			LEMME(EC)=FRM(FRMLEMME)||FRM(ED).

     RDESVB:    (ETAT(EC)=5)&(CONJ(EC)&CONJ(ED)!=0)&((TPREF(EC)=0)|(TPREF(EC)&TPREF(FMTPRFV)!=0))/
			VARDESVB(EC)=VARDESVB(ED);
			CONJ(EC)=CONJ(EC)&CONJ(ED);
			DCLRVVN(EC)=0;
			DECLRVV2(EC)=0;
			ETAT(EC)=4;
			DICT(EC)=5.

     RDESVBIF:  (ETAT(EC)=5)&(CONJ(EC)&CONJ(ED)!=0)&((TPREF(EC)=0)|(TPREF(EC)&TPREF(FMTPRFV)!=0))/
			VARDESVB(EC)=VARDESVB(ED);
			CONJ(EC)=CONJ(EC)&CONJ(ED);
			SOUSV(EC)=SOUSV(ED);
			DCLRVVN(EC)=0;
			DECLRVV2(EC)=0;
			ETAT(EC)=4;
			DICT(EC)=5.

     RPARTPRE:  (ETAT(EC)=5)&(CONJ(EC)&CONJ(ED)!=0)&((TPREF(EC)=0)|(TPREF(EC)&TPREF(FMTPRFV)!=0))/
			VARDESVB(EC)=VARDESVB(ED);
			CONJ(EC)=CONJ(EC)&CONJ(ED);
			SOUSV(EC)=SOUSV(ED);
			DECL(EC)=0;
			DECLRVV2(EC)=0;
			DCLRVVN(EC)=0;
			ETAT(EC)=4;
			DICT(EC)=5.

     RDESNA:	(DECL(EC)&DECL(ED)!=0)&((ETAT(EC)=3)|(ETAT(EC)=5)|((ETAT(EC)=2)&
		((TPREF(EC)=0)|((CAT(EC)$>=ADJOINT)&(TPREF(EC)&TPREF(FMTPRFA)!=0)|(CAT(EC)$>=N)&
		(TPREF(EC)&TPREF(FMTPRFN)!=0)))))/
			VARGRNB(EC)=VARGRNB(ED);
			ETAT(EC)=4;
			DECLRV(EC)=0;
			DECLRVB(EC)=0;
			DICT(EC)=5.

     RDSVBPAS:  (ETAT(EC)=5)&(DECL(EC)&DECL(ED)!=0)&((TPREF(EC)=0)|(TPREF(EC)&TPREF(FMTPRFV)!=0))/
			VARGNM(EC)=0;
			VRDSPAPA(EC)=0;
			SOUSV(EC)=PAPA;
			SOUSA(EC)=ADNOM;
			ETAT(EC)=4;
			CAT(EC)=CAT(EC)|ADJOINT;
			DECLRVV2(EC)=0;
			DCLRVVN(EC)=0;
			VARGRNB(EC)=VARGRNB(ED);
			LEMME(EC)=FRM(FRMLEMME)||CHAINE(CD);
			DICT(EC)=5.

    RDRVNA:     ((ETAT(EC)=2)|(ETAT(EC)=5))&((DCLRVNA(EC)&DCLRVNA(ED)!=0)|(DCLRVNPA(EC)&DCLRVNPA(ED)!=0))/
			VARDNS(EC)=VARDNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			DECL(EC)=DECL(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC));
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			DECLRV(EC)=0;
			DECLRVB(EC)=0;
			ETAT(EC)=3;
			DICT(EC)=4|5;
			LEMME(EC)=FRM(FRMLEMME)||CHAINE(CD).

    RDRVNAC:    ((ETAT(EC)=2)|(ETAT(EC)=5))&((DCLRVNA(EC)&DCLRVNA(ED)!=0)|(DCLRVNPA(EC)&DCLRVNPA(ED)!=0))&(CHAINE(CC)!='')/
			VARDNS(EC)=VARDNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			DECL(EC)=DECL(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC));
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			DECLRV(EC)=0;
			DECLRVB(EC)=0;
			ETAT(EC)=5;
			DICT(EC)=4|5;
			LEMME(EC)=FRM(FRMLEMME)||FRM(ED).

    RDRVNN:     ((ETAT(EC)=2)|(ETAT(EC)=5))&(DCLRVNN(EC)&DCLRVNN(ED)!=0)/
			VARDNS(EC)=VARDNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			DECL(EC)=DECL(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC));
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			DECLRV(EC)=0;
			DECLRVB(EC)=0;
			ETAT(EC)=3;
			DICT(EC)=4|5;
			LEMME(EC)=FRM(FRMLEMME)||CHAINE(CD).

    RDRVNNC:    ((ETAT(EC)=2)|(ETAT(EC)=5))&(DCLRVNN(EC)&DCLRVNN(ED)!=0)&(CHAINE(CC)!='')/
			VARDNS(EC)=VARDNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			DECL(EC)=DECL(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC));
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			DECLRV(EC)=0;
			DECLRVB(EC)=0;
			ETAT(EC)=5;
			DICT(EC)=4|5;
			LEMME(EC)=FRM(FRMLEMME)||FRM(ED).

    RDRVNNA:    ((ETAT(EC)=2)|(ETAT(EC)=5))&(DCLRVNNA(EC)&DCLRVNNA(ED)!=0)/
			VARDNS(EC)=VARDNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			DECL(EC)=DECL(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC));
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			DECLRV(EC)=0;
			DECLRVB(EC)=0;
			ETAT(EC)=3;
			DICT(EC)=4|5;
			LEMME(EC)=FRM(FRMLEMME)||CHAINE(CD).

    RDRVNNAC:   ((ETAT(EC)=2)|(ETAT(EC)=5))&(DCLRVNNA(EC)&DCLRVNNA(ED)!=0)&(CHAINE(CC)!='')/
			VARDNS(EC)=VARDNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			DECL(EC)=DECL(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC));
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			DECLRV(EC)=0;
			DECLRVB(EC)=0;
			ETAT(EC)=5;
			DICT(EC)=4|5;
			LEMME(EC)=FRM(FRMLEMME)||FRM(ED).

    RDRVNM:     ((ETAT(EC)=2)|(ETAT(EC)=5))&(DCLRVNM(EC)&DCLRVNM(ED)!=0)/
			VARDNS(EC)=VARDNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC));
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			DECLRV(EC)=0;
			DECLRVB(EC)=0;
			ETAT(EC)=3;
			LEMME(EC)=FRM(FRMLEMME)||CHAINE(CD).

    RDRVAA:     ((ETAT(EC)=2)|(ETAT(EC)=5))&(DCLRVAA(EC)&DCLRVAA(ED)!=0)/
			VARDNS(EC)=VARDNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			DECL(EC)=DECL(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC));
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			DECLRV(EC)=0;
			DECLRVB(EC)=0;
			ETAT(EC)=3;
			DICT(EC)=4|5;
			LEMME(EC)=FRM(FRMLEMME)||CHAINE(CD).

    RDRVAAC:    ((ETAT(EC)=2)|(ETAT(EC)=5))&(DCLRVAA(EC)&DCLRVAA(ED)!=0)&(CHAINE(CC)!='')/
			VARDNS(EC)=VARDNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			DECL(EC)=DECL(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC));
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			DECLRV(EC)=0;
			DECLRVB(EC)=0;
			ETAT(EC)=5;
			DICT(EC)=4|5;
			LEMME(EC)=FRM(FRMLEMME)||FRM(ED).

    RDRVAN:     ((ETAT(EC)=2)|(ETAT(EC)=5))&(DCLRVAN(EC)&DCLRVAN(ED)!=0)/
			VARDNS(EC)=VARDNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			DECL(EC)=DECL(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC));
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			DECLRV(EC)=0;
			DECLRVB(EC)=0;
			ETAT(EC)=3;
			DICT(EC)=4|5;
			LEMME(EC)=FRM(FRMLEMME)||CHAINE(CD).

    RDRVANC:    ((ETAT(EC)=2)|(ETAT(EC)=5))&(DCLRVAN(EC)&DCLRVAN(ED)!=0)&(CHAINE(CC)!='')/
			VARDNS(EC)=VARDNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			DECL(EC)=DECL(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC));
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			DECLRV(EC)=0;
			DECLRVB(EC)=0;
			ETAT(EC)=5;
			DICT(EC)=4|5;
			LEMME(EC)=FRM(FRMLEMME)||FRM(ED).

    RDRVANA:    ((ETAT(EC)=2)|(ETAT(EC)=5))&(DCLRVANA(EC)&DCLRVANA(ED)!=0)/
			VARDNS(EC)=VARDNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			DECL(EC)=DECL(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC));
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			DECLRV(EC)=0;
			DECLRVB(EC)=0;
			ETAT(EC)=3;
			DICT(EC)=4|5;
			LEMME(EC)=FRM(FRMLEMME)||CHAINE(CD).

    RDRVANAC:   ((ETAT(EC)=2)|(ETAT(EC)=5))&(DCLRVANA(EC)&DCLRVANA(ED)!=0)&(CHAINE(CC)!='')/
			VARDNS(EC)=VARDNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			DECL(EC)=DECL(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC));
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			DECLRV(EC)=0;
			DECLRVB(EC)=0;
			ETAT(EC)=5;
			DICT(EC)=4|5;
			LEMME(EC)=FRM(FRMLEMME)||FRM(ED).

    RDRVAM:     ((ETAT(EC)=2)|(ETAT(EC)=5))&(DCLRVAM(EC)&DCLRVAM(ED)!=0)/
			VARDNS(EC)=VARDNS(ED);
			VARGNSY(EC)=VARGNSY(ED);
			TPREPNM(EC)=TPREPNM(DICT(EC));
			GTPREPSEM(EC)=GTPREPSEM(DICT(EC));
			DECLRV(EC)=0;
			DECLRVB(EC)=0;
			ETAT(EC)=3;
			LEMME(EC)=FRM(FRMLEMME)||CHAINE(CD).

    RELIMSEM:   /	CASSEM(EC) = 0.

  &FIN(RELIMSEM).
