From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00,FREEMAIL_FROM, FROM_STARTS_WITH_NUMS autolearn=no autolearn_force=no version=3.4.4 X-Received: by 10.107.12.94 with SMTP id w91mr3283225ioi.85.1518609861044; Wed, 14 Feb 2018 04:04:21 -0800 (PST) X-Received: by 10.157.71.25 with SMTP id a25mr147200otf.3.1518609860848; Wed, 14 Feb 2018 04:04:20 -0800 (PST) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!feed.usenet.farm!feeder4.usenet.farm!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!w142no1696326ita.0!news-out.google.com!s63ni4039itb.0!nntp.google.com!w142no1696324ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Wed, 14 Feb 2018 04:04:20 -0800 (PST) In-Reply-To: <66ff85f0-0550-4568-afe9-49eb85e6ab55@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=85.242.254.95; posting-account=rhqvKAoAAABpikMmPHJSZh4400BboHwT NNTP-Posting-Host: 85.242.254.95 References: <634e9064-33f8-42c0-9032-e630f98c89d4@googlegroups.com> <1d7b8c25-b206-4ad0-b3ab-1ee1b8b34dc8@googlegroups.com> <29277750-1fc5-4d1d-96d4-a3ac9b5ec755@googlegroups.com> <03f8711d-bca3-4389-b980-d0abc308c719@googlegroups.com> <66ff85f0-0550-4568-afe9-49eb85e6ab55@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Re: troubles learning OOP: expected type "Parent.Some_Child", found type Parent'Class From: Mehdi Saada <00120260a@gmail.com> Injection-Date: Wed, 14 Feb 2018 12:04:21 +0000 Content-Type: text/plain; charset="UTF-8" Xref: reader02.eternal-september.org comp.lang.ada:50446 Date: 2018-02-14T04:04:20-08:00 List-Id: Ah... Of course, I haven't mastered that part. For instance, I'm not sure how many times in if TOKEN_COURANT in T_TOKEN_OPERANDE then SUITE; elsif TOKEN_COURANT in T_TOKEN_PARENTHESE then if GET_ELEM (T_Token_Parenthese (TOKEN_COURANT)) = '(' then VALIDE; else SUITE; end if; else OK := FALSE; TOKEN_COURANT is called. Only once is what I would like, but I code it only assuming, without knowing for sure... Each subprogram being meant to test one character at once, I wrote that: procedure SUITE; procedure SUITE is TOKEN_COURANT : T_TOKEN'Class := TOKEN_COURANT_APPEL; begin if TOKEN_COURANT in T_Token_Operateur then VALIDE; else OK := FALSE; end if; end SUITE; But that's not the problem (since it still fails). The recursive design was given by the teacher, and part of the exercice's interest is to teach us that. Eventhough, I find these designs horrible to read and to be avoided at (almost) all costs.