procedure Foo is procedure Foo; function Bar return Integer is package body Baz is package Baz is task body T is protected body P is procedure Foo is procedure Foo is procedure X PROCEDURE FOO IS pRoCeDuRe X Procedure Foo procedurex procedure procedure xprocedure foo function package package body task task protected task type T is protected type P is entry E when True is type T is record separate (Foo) procedure Bar is overriding procedure Foo is procedure Foo is -- comment -- procedure Foo is procedure Foo function X procedure Foo procedure Foo procedure Foo procedure Foo procedure Foo procedure Foo(X : Integer) is function "+" (L, R : T) return T is procedure Foo is new Bar; package Foo is new Gen (X); package Foo renames Bar; procedure Foo is separate; procedure X is separate procedure X is separate x procedure X is separate procedure X is separate( procedure X is separatex procedure X is separate procedure X is separate procedure X IS SEPARATE procedure X is separate; procedure X is newer procedure X is new_x procedure X isnew procedure X is new procedure X is new procedure X is new procedure X IS NEW procedure X iS new procedure X xis new procedure X.is new procedure X;is new procedure X 1is new procedure X is new; procedure X is new( procedure X is new1 procedure X is new procedure X is new procedure X is new procedure X is new procedure X is new procedure X renames procedure X renamesY procedure X xrenames Y procedure X RENAMES Y procedure X Renames procedure renames procedure X renames; procedure X(renames) procedure X.renames procedure X renames_ procedure X renames procedure X renames procedure X renames procedure X renames procedure X renames procedure X renames procedure X renames procedure X renames x procedure X renames procedure X procedure X is newé procedure X é is new procedure X renames Y is new Z procedure is end Foo; with Ada.Text_IO; begin g protected bodybegin protected renamesx end entrybegin task nullbody type Ada. Text_IO is PACKAG%E SUBTYPE PROCEDURE PACKAGE TASK SEPARATELYIS function xfunction Ada.Text_IO procedure task renamesx renames generic renamesx procedure protected not with isnew begin FUNCTION END ; BODYBODY PACKAGED protected is separate; use body not ; type is is -\- comment new procedure fUNctiOn oveRriding new use new (X : Integer)null task record generic function "+" ; protected task body type ; is_new Bar_Baz recordrenamesx withis|_ne functiorecord>n record renames task body function renamesx "+" type news procedurerecord separately isnewnot procedures protected type is separate separate return Xendnot Task function packaged body end protected body Ada.Text_IO separately return procedures package body separately overridingX isnew news body package notwith is -- comment PACKAGE BOisDY NEW protected typegenerc PROTECTED TYPE PROCES packagwithe task type := packageis entry use task use protected function protected body begin subtypeuse generic (X : Integer) task body renames use package body ;ne ws null p rote task bodyprocedures return package "+"X type task type sEpA rAS pAckAge package separately Foo ; end package bodytype packaged begin procedure protec?ted body subtype renames ;package isnew bar_baz not FoO x retURN PackageD package new is_new procedurerecords task body protectedtask begin xfunction end -- comment task typ'erecord Foo ^renames T1 protected with X news ; ; function renames subtype function null renames function (X : Integer) package protected type piis_new function is_new procedure task type procedure := separately function tAsK FuNction SeParaTe Task package body is new not abstract packaged protected overriding declare fproceduresunction paisnewckage Bar_Bazuse renotcord subtype new entry separate type renames "+"is_new protected type function Bar_Baz:= protected new end FUNCTION SUBTYPE (X : INTEGER) task body (X : renamesxInteger) procedure renames xfunction ; ;abstract body Foo entryis_newprocedures null rtasketurn en PROCEDURE IS TYPE BEGIN prot pAckAGE use is dEclARERenameS renameSX iS nEw RenamEs ADA.TexT_IO pAcKAGe boDY task / TASK TYPE := FOO D package body isnew renadeclaremesx use new FoO iSNEW gENErIC wIth NOt ISNEw protected body -- comment protected "+" with X ispackage new sePArAteAda.text_IO new ReNamEs iS_nEw -- coMMt packaged begin xfunction tASk body paCKAGeD overrIDing prOCedurE renaMes isneW pAcKaGe new is new is new is f ta protected abstract entry record tas k return function procedure Bar_Baz news is separate +function is separate is separate is new iswith Bar_Baz protected body task` is separatepackagei is separates subtype is function is package body procedure is new procedurenot isnew tAsK→ boDy X PAckagedIs_NeW protected body renames X xf packtypeage separate is task body xfunction entry renames is entry begin -- comment "+" "+" begin task Foo is separate X record isnewurnody{ -- comment pack Task IS_neW xfUNcTIon abstrACT %sEparaTe beGiN is NeW return procedures renamesx function renamesx protected type abstract function := returnuse task type with renamesx entry with procedures task procedure record ; null begin ta sk task body is package$ body:= (X : Integer) proceckarenamesxge news task Ada.Text_IO -- comment procedure ; generic separately null overriding is new renames procedurenot separate PROCEDU%RE "+" RETURN body protected protected ada.text_io procedures type task body ; ENtR task type packaged renamesx separate protected body abstrpackagedact xfunction is_new task "+" use package task body renames (X : In!teger) task type DECLare is sEgeNeriCparaTE procedures procedure Foo begin protected retprocedureurn -- comment task body body xfunction abstract separatenull procedure procedure function renamesx not body task is separate use PRocedUrE -- COMMent end boDypRocedure task function declare task type function is separate task entry type renames return separately generic ada.text_io := protected body separately is separate use (x : integer) abstract sub type end type TASK BODY ABSTRD PROCEDUREreturn protected type is separatenot news type Bar_ is_new prOtecTed TYpe renaMeS usE witH rECOrd nOTNEW endoverriding FUNCTION NEWS procedure packaged proc edures "+" Ada.Text_IO null null prote+cted "+" protected typenew is :={ declare ] package body := news null procedures begin overriding protected typereturn procedures Foo T1 new procedure isnew -- comment not "+" unction x newtask type task entry -- commseparateent renames task use end procedurewith packaged entry Ada.T is new paCkaGE "+" separaTe t1 new procedures protected body p(rotected prote cted abstractisnew not protected type function subtype task type declare subtype procedure package begin procedures use Foonews Foo protected renames overriding Bar_Baz subtype record protected renames news new abstract procedures renames task body T1 end Bar_Baz not subtype news task type "+" Ada .Text_IO X "+" use renames procedure is_new