home *** CD-ROM | disk | FTP | other *** search
- program Listing5_7;
-
- uses FrenchVb; { Listing5_6 converted to a unit. }
-
- type
-
- IrregularVerb = object( Verb )
- PresentTense: Ending;
- constructor Init( Inf, FPSin, SPSin, TPSin,
- FPPlu, SPPlu, TPPlu : string );
- function VerbForm( E : Person ) : string; virtual;
- end;
-
- constructor IrregularVerb.Init;
- begin
- Verb.Init( 'etre' );
- PresentTense[fps] := FPSin;
- PresentTense[sps] := SPSin;
- PresentTense[tps] := TPSin;
- PresentTense[fpp] := FPPlu;
- PresentTense[spp] := SPPlu;
- PresentTense[tpp] := TPPlu;
- end;
-
- function IrregularVerb.VerbForm( E : Person ) : string;
- begin
- VerbForm := PresentTense[ E ];
- end;
-
- var
- repondre : RE_Verb;
- finir : IR_Verb;
- manquer : ER_Verb;
- etre : IrregularVerb;
-
- begin
- repondre.Init( 'repondre' );
- finir.Init( 'finir' );
- manquer.Init( 'manquer' );
- etre.Init( 'etre', 'suis', 'es', 'est', 'sommes', 'etes', 'sont');
- { ^ ^ }
- { 'e' with caret beneath is ASCII 136 }
-
- repondre.ConjugateVerb;
- finir.ConjugateVerb;
- manquer.ConjugateVerb;
- etre.ConjugateVerb;
-
- end.
- { Listing 5-7 }