12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193(*
Copyright 2013-2018 RIKEN
Copyright 2018-2025 Chiba Institude of Technology
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*)(* Author: Masatomo Hashimoto <m.hashimoto@stair.center> *)[%%prepare_logger]openLabel_commontype_t=|AccessStmtofF_access_spec.t|AllocatableStmt|AllocateStmt|ArithmeticIfStmt|AssignedGotoStmt|AssignmentStmt|AssignStmtoflabel|AssociateStmtofnameoption|BackspaceStmt|BlockDataStmtofnameoption|BlockStmtofnameoption|CallStmtofname|CaseStmtofnameoption|CloseStmt|CommonStmt|ComponentDefStmt|ComputedGotoStmt|ContainsStmt|ContinueStmt|CriticalStmtofnameoption|CycleStmtofnameoption|DataStmt|DeallocateStmt|DerivedTypeStmtofname|DimensionStmt|DoStmtofnameoption*labeloption*varoption(* var for Diff/TS *)|ElseIfStmtofnameoption|ElseStmtofnameoption|ElsewhereStmtofnameoption|EndAssociateStmtofnameoption|EndEnumStmt|EndStmt(* dummy *)|EndBlockDataStmtofnameoption|EndBlockStmtofnameoption|EndCriticalStmtofnameoption|EndDoStmtofnameoption|EndfileStmt|EndForallStmtofnameoption|EndFunctionStmtofnameoption|EndIfStmtofnameoption|EndInterfaceStmt|EndModuleStmtofnameoption|EndMpSubprogramStmtofnameoption|EndProgramStmtofnameoption|EndSelectStmtofnameoption|EndSubmoduleStmtofnameoption|EndSubroutineStmtofnameoption|EndTypeStmtofnameoption|EndWhereStmtofnameoption|EntryStmtofname|EnumDefStmt|EnumeratorDefStmt|EquivalenceStmt|ExitStmtofnameoption|ExternalStmt|ForallStmt|ForallConstructStmtofnameoption|FormatStmt|FlushStmt|FunctionStmtofname|GotoStmt|IfStmt|IfThenStmtofnameoption|ImplicitStmt|InquireStmt|IntentStmt|InterfaceStmtofnameoption|IntrinsicStmt|ModuleStmtofname|MpSubprogramStmtofname|NamelistStmt|NullifyStmt|OpenStmt|OptionalStmt|ParameterStmt|PauseStmt|PointerAssignmentStmt|PointerStmt|PrintStmt|PrivateStmt|ProcedureStmt|ProgramStmtofname|SequenceStmt|ReadStmt|ReturnStmt|RewindStmt|SaveStmt|SelectCaseStmtofnameoption|StmtFunctionStmtofname|StopStmt|SubmoduleStmtofname*nameoption*name|SubroutineStmtofname|TargetStmt|TypeDeclarationStmtofnamelist(* named for Diff/TS *)|UseStmtofname|WhereStmt|WhereConstructStmtofnameoption|WriteStmt|PpMacroIdofname|PpMacroStmtofname|StructureStmtofnameoption(* Intel and IBM *)|EndStructureStmt(* Intel and IBM *)|UnionStmt(* Intel and IBM *)|EndUnionStmt(* Intel and IBM *)|MapStmt(* Intel and IBM *)|EndMapStmt(* Intel and IBM *)|RecordStmt(* Intel and IBM *)|VirtualStmt(* Intel and IBM *)|AutomaticStmt(* Intel and IBM *)|StaticStmt(* Intel and IBM *)|AsynchronousStmt(* F2003 *)|BindStmt(* F2003 *)|ProtectedStmt(* F2003 *)|ValueStmt(* F2003 *)|VolatileStmt(* F2003 *)|AbstractInterfaceStmt(* F2003 *)|ImportStmt(* F2003 *)|BindingPrivateStmt(* F2003 *)|FinalProcedureStmt(* F2003 *)|TypeBoundGenericStmt(* F2003 *)|ProcComponentDefStmt(* F2003 *)|ProcedureDeclarationStmt(* F2003 *)|SelectTypeStmtofnameoption(* F2003 *)|TypeIsTypeGuardStmtofnameoption(* F2003 *)|ClassIsTypeGuardStmtofnameoption(* F2003 *)|ClassDefaultTypeGuardStmtofnameoption(* F2003 *)|EndSelectTypeStmtofnameoption(* F2003 *)|WaitStmt(* F2003 *)|TypeBoundProcedureStmtofnameoption(* F2008 *)|ErrorStopStmt(* F2008 *)|CodimensionStmt(* F2008 *)|ContiguousStmt(* F2008 *)|LockStmt(* F2008 *)|SyncAllStmt(* F2008 *)|SyncImagesStmt(* F2008 *)|SyncMemoryStmt|AcceptStmt(* Intel *)|DecodeStmt(* Intel *)|DefineFileStmt(* Intel *)|DeleteStmt(* Intel *)|EncodeStmt(* Intel *)|FindStmt(* Intel *)|RewriteStmt(* Intel *)|TypeStmt(* Intel *)|UnlockStmt(* Intel *)let_to_string=function|AccessStmta->"AccessStmt."^(F_access_spec.to_stringa)|AllocatableStmt->"AllocatableStmt"|AllocateStmt->"AllocateStmt"|ArithmeticIfStmt->"ArithmeticIfStmt"|AssignedGotoStmt->"AssignedGotoStmt"|AssignmentStmt->"AssignmentStmt"|AssignStmtl->"AssignStmt:"^l|AssociateStmtn_opt->"AssociateStmt"^(string_opt_to_string~prefix:":"n_opt)|AutomaticStmt->"AutomaticStmt"|BackspaceStmt->"BackspaceStmt"|BlockDataStmtn_opt->"BlockDataStmt"^(string_opt_to_string~prefix:":"n_opt)|BlockStmtn_opt->"BlockStmt"^(string_opt_to_string~prefix:":"n_opt)|CallStmtn->"CallStmt:"^n|CaseStmtn_opt->"CaseStmt"^(string_opt_to_string~prefix:":"n_opt)|CloseStmt->"CloseStmt"|CommonStmt->"CommonStmt"|ComponentDefStmt->"ComponentDefStmt"|ComputedGotoStmt->"ComputedGotoStmt"|ContainsStmt->"ContainsStmt"|ContinueStmt->"ContinueStmt"|CriticalStmtn_opt->"CriticalStmt"^(string_opt_to_string~prefix:":"n_opt)|CycleStmtn_opt->"CycleStmt"^(string_opt_to_string~prefix:":"n_opt)|DataStmt->"DataStmt"|DeallocateStmt->"DeallocateStmt"|DerivedTypeStmtn->"DerivedTypeStmt:"^n|DimensionStmt->"DimensionStmt"|DoStmt(n_opt,l_opt,v_opt)->"DoStmt"^(string_opt_to_string~prefix:":"n_opt)^(string_opt_to_string~prefix:":"l_opt)^(string_opt_to_string~prefix:":"v_opt)|ElseIfStmtn_opt->"ElseIfStmt"^(string_opt_to_string~prefix:":"n_opt)|ElseStmtn_opt->"ElseStmt"^(string_opt_to_string~prefix:":"n_opt)|ElsewhereStmtn_opt->"ElsewhereStmt"^(string_opt_to_string~prefix:":"n_opt)|EndAssociateStmtn_opt->"EndAssociateStmt"^(string_opt_to_string~prefix:":"n_opt)|EndEnumStmt->"EndEnumStmt"|EndStmt->"EndStmt"|EndBlockDataStmtn_opt->"EndBlockDataStmt"^(string_opt_to_string~prefix:":"n_opt)|EndBlockStmtn_opt->"EndBlockStmt"^(string_opt_to_string~prefix:":"n_opt)|EndCriticalStmtn_opt->"EndCriticalStmt"^(string_opt_to_string~prefix:":"n_opt)|EndDoStmtn_opt->"EndDoStmt"^(string_opt_to_string~prefix:":"n_opt)|EndfileStmt->"EndfileStmt"|EndForallStmtn_opt->"EndForallStmt"^(string_opt_to_string~prefix:":"n_opt)|EndFunctionStmtn_opt->"EndFunctionStmt"^(string_opt_to_string~prefix:":"n_opt)|EndIfStmtn_opt->"EndIfStmt"^(string_opt_to_string~prefix:":"n_opt)|EndInterfaceStmt->"EndInterfaceStmt"|EndModuleStmtn_opt->"EndModuleStmt"^(string_opt_to_string~prefix:":"n_opt)|EndMpSubprogramStmtn_opt->"EndMpSubprogramStmt"^(string_opt_to_string~prefix:":"n_opt)|EndProgramStmtn_opt->"EndProgramStmt"^(string_opt_to_string~prefix:":"n_opt)|EndSelectStmtn_opt->"EndSelectStmt"^(string_opt_to_string~prefix:":"n_opt)|EndSubmoduleStmtn_opt->"EndSubmoduleStmt"^(string_opt_to_string~prefix:":"n_opt)|EndSubroutineStmtn_opt->"EndSubroutineStmt"^(string_opt_to_string~prefix:":"n_opt)|EndTypeStmtn_opt->"EndTypeStmt"^(string_opt_to_string~prefix:":"n_opt)|EndWhereStmtn_opt->"EndWhereStmt"^(string_opt_to_string~prefix:":"n_opt)|EntryStmtn->"EntryStmt:"^n|EnumDefStmt->"EnumDefStmt"|EnumeratorDefStmt->"EnumeratorDefStmt"|EquivalenceStmt->"EquivalenceStmt"|ExitStmtn_opt->"ExitStmt"^(string_opt_to_string~prefix:":"n_opt)|ExternalStmt->"ExternalStmt"|ForallStmt->"ForallStmt"|ForallConstructStmtn_opt->"ForallConstructStmt"^(string_opt_to_string~prefix:":"n_opt)|FormatStmt->"FormatStmt"|FlushStmt->"FlushStmt"|FunctionStmtn->"FunctionStmt:"^n|GotoStmt->"GotoStmt"|IfStmt->"IfStmt"|IfThenStmtn_opt->"IfThenStmt"^(string_opt_to_string~prefix:":"n_opt)|ImplicitStmt->"ImplicitStmt"|InquireStmt->"InquireStmt"|IntentStmt->"IntentStmt"|InterfaceStmtn_opt->"InterfaceStmt"^(string_opt_to_string~prefix:":"n_opt)|IntrinsicStmt->"IntrinsicStmt"|ModuleStmtn->"ModuleStmt:"^n|MpSubprogramStmtn->"MpSubprogramStmt:"^n|NamelistStmt->"NamelistStmt"|NullifyStmt->"NullifyStmt"|OpenStmt->"OpenStmt"|OptionalStmt->"OptionalStmt"|ParameterStmt->"ParameterStmt"|PauseStmt->"PauseStmt"|PointerAssignmentStmt->"PointerAssignmentStmt"|PointerStmt->"PointerStmt"|PrintStmt->"PrintStmt"|PrivateStmt->"PrivateStmt"|ProcedureStmt->"ProcedureStmt"|ProgramStmtn->"ProgramStmt:"^n|SequenceStmt->"SequenceStmt"|StaticStmt->"StaticStmt"|ReadStmt->"ReadStmt"|ReturnStmt->"ReturnStmt"|RewindStmt->"RewindStmt"|SaveStmt->"SaveStmt"|SelectCaseStmtn_opt->"SelectCaseStmt"^(string_opt_to_string~prefix:":"n_opt)|StmtFunctionStmtn->"StmtFunctionStmt:"^n|StopStmt->"StopStmt"|SubmoduleStmt(a,p_opt,n)->"SubmoduleStmt:"^a^(string_opt_to_string~prefix:":"p_opt)^":"^n|SubroutineStmtn->"SubroutineStmt:"^n|TargetStmt->"TargetStmt"|TypeDeclarationStmtns->"TypeDeclarationStmt"^(string_list_to_string~prefix:":"";"ns)|UseStmtn->"UseStmt:"^n|WhereStmt->"WhereStmt"|WhereConstructStmtn_opt->"WhereConstructStmt"^(string_opt_to_string~prefix:":"n_opt)|WriteStmt->"WriteStmt"|PpMacroIdn->"PpMacroId:"^n|PpMacroStmtn->"PpMacroStmt:"^n|StructureStmtn_opt->"StructureStmt"^(string_opt_to_string~prefix:":"n_opt)|EndStructureStmt->"EndStructureStmt"|UnionStmt->"UnionStmt"|EndUnionStmt->"EndUnionStmt"|MapStmt->"MapStmt"|EndMapStmt->"EndMapStmt"|RecordStmt->"RecordStmt"|VirtualStmt->"VirtualStmt"|AsynchronousStmt->"AsynchronousStmt"|BindStmt->"BindStmt"|ProtectedStmt->"ProtectedStmt"|ValueStmt->"ValueStmt"|VolatileStmt->"VolatileStmt"|AbstractInterfaceStmt->"AbstractInterfaceStmt"|ImportStmt->"ImportStmt"|BindingPrivateStmt->"BindingPrivateStmt"|TypeBoundProcedureStmtn_opt->"TypeBoundProcedureStmt"^(string_opt_to_string~prefix:":"n_opt)|ErrorStopStmt->"ErrorStopStmt"|CodimensionStmt->"CodimensionStmt"|ContiguousStmt->"ContiguousStmt"|LockStmt->"LockStmt"|SyncAllStmt->"SyncAllStmt"|SyncImagesStmt->"SyncImagesStmt"|SyncMemoryStmt->"SyncMemoryStmt"|FinalProcedureStmt->"FinalProcedureStmt"|TypeBoundGenericStmt->"TypeBoundGenericStmt"|ProcComponentDefStmt->"ProcComponentDefStmt"|ProcedureDeclarationStmt->"ProcedureDeclarationStmt"|SelectTypeStmtn_opt->"SelectTypeStmt"^(string_opt_to_string~prefix:":"n_opt)|TypeIsTypeGuardStmtn_opt->"TypeIsTypeGuardStmt"^(string_opt_to_string~prefix:":"n_opt)|ClassIsTypeGuardStmtn_opt->"ClassIsTypeGuardStmt"^(string_opt_to_string~prefix:":"n_opt)|ClassDefaultTypeGuardStmtn_opt->"ClassDefaultTypeGuardStmt"^(string_opt_to_string~prefix:":"n_opt)|EndSelectTypeStmtn_opt->"EndSelectTypeStmt"^(string_opt_to_string~prefix:":"n_opt)|WaitStmt->"WaitStmt"|AcceptStmt->"AcceptStmt"|DecodeStmt->"DecodeStmt"|DefineFileStmt->"DefineFileStmt"|DeleteStmt->"DeleteStmt"|EncodeStmt->"EncodeStmt"|FindStmt->"FindStmt"|RewriteStmt->"RewriteStmt"|TypeStmt->"TypeStmt"|UnlockStmt->"UnlockStmt"let_to_simple_string=function|AccessStmta->F_access_spec.to_simple_stringa|AllocatableStmt->"allocatable"|AllocateStmt->"allocate"|ArithmeticIfStmt->"if"|AssignedGotoStmt->"goto"|AssignmentStmt->"<assignment>"|AssignStmtl->"assign "^l|AssociateStmtn_opt->(string_opt_to_string~suffix:":"n_opt)^"associate"|AutomaticStmt->"automatic"|BackspaceStmt->"backspace"|BlockDataStmtn_opt->"block data"^(string_opt_to_string~prefix:" "n_opt)|BlockStmtn_opt->"block"^(string_opt_to_string~prefix:" "n_opt)|CallStmtn->"call "^n|CaseStmtn_opt->"case"^(string_opt_to_string~prefix:" "n_opt)|CloseStmt->"close"|CommonStmt->"common"|ComponentDefStmt->"<component-def>"|ComputedGotoStmt->"goto"|ContainsStmt->"contains"|ContinueStmt->"continue"|CriticalStmtn_opt->(string_opt_to_string~suffix:":"n_opt)^"critical"|CycleStmtn_opt->"cycle"^(string_opt_to_string~prefix:" "n_opt)|DataStmt->"data"|DeallocateStmt->"deallocate"|DerivedTypeStmtn->"type "^n|DimensionStmt->"dimention"|DoStmt(n_opt,l_opt,v_opt)->"do"^(string_opt_to_string~prefix:" "n_opt)^(string_opt_to_string~prefix:" "l_opt)^(string_opt_to_string~prefix:" "v_opt)|ElseIfStmtn_opt->"else if"^(string_opt_to_string~prefix:" "n_opt)|ElseStmtn_opt->"else"^(string_opt_to_string~prefix:" "n_opt)|ElsewhereStmtn_opt->"elsewhere"^(string_opt_to_string~prefix:" "n_opt)|EndAssociateStmtn_opt->"end associate"^(string_opt_to_string~prefix:" "n_opt)|EndEnumStmt->"end enum"|EndStmt->"end"|EndBlockDataStmtn_opt->"end block data"^(string_opt_to_string~prefix:" "n_opt)|EndBlockStmtn_opt->"end block"^(string_opt_to_string~prefix:" "n_opt)|EndCriticalStmtn_opt->"end critical"^(string_opt_to_string~prefix:" "n_opt)|EndDoStmtn_opt->"end do"^(string_opt_to_string~prefix:" "n_opt)|EndfileStmt->"endfile"|EndForallStmtn_opt->"end forall"^(string_opt_to_string~prefix:" "n_opt)|EndFunctionStmtn_opt->"end function"^(string_opt_to_string~prefix:" "n_opt)|EndIfStmtn_opt->"end if"^(string_opt_to_string~prefix:" "n_opt)|EndInterfaceStmt->"end interface"|EndModuleStmtn_opt->"end module"^(string_opt_to_string~prefix:" "n_opt)|EndMpSubprogramStmtn_opt->"end procedure"^(string_opt_to_string~prefix:" "n_opt)|EndProgramStmtn_opt->"end program"^(string_opt_to_string~prefix:" "n_opt)|EndSelectStmtn_opt->"end select"^(string_opt_to_string~prefix:" "n_opt)|EndSubmoduleStmtn_opt->"end submodule"^(string_opt_to_string~prefix:" "n_opt)|EndSubroutineStmtn_opt->"end subroutine"^(string_opt_to_string~prefix:" "n_opt)|EndTypeStmtn_opt->"end type"^(string_opt_to_string~prefix:" "n_opt)|EndWhereStmtn_opt->"end where"^(string_opt_to_string~prefix:" "n_opt)|EntryStmtn->"entry "^n|EnumDefStmt->"enum, bind(c)"|EnumeratorDefStmt->"enumerator"|EquivalenceStmt->"equivalence"|ExitStmtn_opt->"exit"^(string_opt_to_string~prefix:" "n_opt)|ExternalStmt->"external"|ForallStmt->"forall"|ForallConstructStmtn_opt->(string_opt_to_string~suffix:":"n_opt)^"forall"|FormatStmt->"format"|FlushStmt->"flush"|FunctionStmtn->"function "^n|GotoStmt->"goto"|IfStmt->"if"|IfThenStmtn_opt->(string_opt_to_string~suffix:":"n_opt)^"if then"|ImplicitStmt->"implicit"|InquireStmt->"inquire"|IntentStmt->"intent"|InterfaceStmtn_opt->"interface"^(string_opt_to_string~prefix:" "n_opt)|IntrinsicStmt->"intrinsic"|ModuleStmtn->"module "^n|MpSubprogramStmtn->"module procedure "^n|NamelistStmt->"namelist"|NullifyStmt->"nullify"|OpenStmt->"open"|OptionalStmt->"optional"|ParameterStmt->"parameter"|PauseStmt->"pause"|PointerAssignmentStmt->"<pointer-assignment>"|PointerStmt->"pointer"|PrintStmt->"print"|PrivateStmt->"private"|ProcedureStmt->"procedure"|ProgramStmtn->"program "^n|SequenceStmt->"sequence"|StaticStmt->"static"|ReadStmt->"read"|ReturnStmt->"return"|RewindStmt->"rewind"|SaveStmt->"save"|SelectCaseStmtn_opt->(string_opt_to_string~suffix:":"n_opt)^"select case"|StmtFunctionStmtn->n|StopStmt->"stop"|SubmoduleStmt(a,p_opt,n)->"submodule ("^a^(string_opt_to_string~prefix:":"p_opt)^") "^n|SubroutineStmtn->"subroutine "^n|TargetStmt->"target"|TypeDeclarationStmt_->"<type-declaration>"|UseStmtn->"use "^n|WhereStmt->"where"|WhereConstructStmtn_opt->(string_opt_to_string~suffix:":"n_opt)^"where"|WriteStmt->"write"|PpMacroIdn->n|PpMacroStmtn->n|StructureStmtn_opt->"structure"^(string_opt_to_string~prefix:" /"~suffix:"/"n_opt)|EndStructureStmt->"end structure"|UnionStmt->"union"|EndUnionStmt->"end union"|MapStmt->"map"|EndMapStmt->"end map"|RecordStmt->"record"|VirtualStmt->"virtual"|AsynchronousStmt->"asynchronous"|BindStmt->"bind"|ProtectedStmt->"protected"|ValueStmt->"value"|VolatileStmt->"volatile"|AbstractInterfaceStmt->"abstract interface"|ImportStmt->"import"|BindingPrivateStmt->"private"|TypeBoundProcedureStmtn_opt->"procedure"^(string_opt_to_string~prefix:"("~suffix:")"n_opt)|ErrorStopStmt->"error stop"|CodimensionStmt->"codimension"|ContiguousStmt->"contiguous"|LockStmt->"lock"|SyncAllStmt->"sync all"|SyncImagesStmt->"sync images"|SyncMemoryStmt->"sync memory"|FinalProcedureStmt->"final"|TypeBoundGenericStmt->"generic"|ProcComponentDefStmt->"procedure"|ProcedureDeclarationStmt->"procedure"|SelectTypeStmtn_opt->(string_opt_to_string~suffix:":"n_opt)^"select type"|TypeIsTypeGuardStmtn_opt->"type is"^(string_opt_to_string~prefix:" "n_opt)|ClassIsTypeGuardStmtn_opt->"class is"^(string_opt_to_string~prefix:" "n_opt)|ClassDefaultTypeGuardStmtn_opt->"class default"^(string_opt_to_string~prefix:" "n_opt)|EndSelectTypeStmtn_opt->"end select"^(string_opt_to_string~prefix:" "n_opt)|WaitStmt->"wait"|AcceptStmt->"accept"|DecodeStmt->"decode"|DefineFileStmt->"define file"|DeleteStmt->"delete"|EncodeStmt->"encode"|FindStmt->"find"|RewriteStmt->"rewrite"|TypeStmt->"type"|UnlockStmt->"unlock"let_to_tag=function|AccessStmta->beginmatchawith|F_access_spec.Private->"PrivateAccessStmt",[]|F_access_spec.Public->"PublicAccessStmt",[]end|AllocatableStmt->"AllocatableStmt",[]|AllocateStmt->"AllocateStmt",[]|ArithmeticIfStmt->"ArithmeticIfStmt",[]|AssignedGotoStmt->"AssignedGotoStmt",[]|AssignmentStmt->"AssignmentStmt",[]|AssignStmtl->"AssignStmt",[label_attr_name,l]|AssociateStmtn_opt->"AssociateStmt",(string_opt_to_attrname_attr_namen_opt)|AutomaticStmt->"AutomaticStmt",[]|BackspaceStmt->"BackspaceStmt",[]|BlockDataStmtn_opt->"BlockDataStmt",(string_opt_to_attrname_attr_namen_opt)|BlockStmtn_opt->"BlockStmt",(string_opt_to_attrname_attr_namen_opt)|CallStmtn->"CallStmt",[name_attr_name,n]|CaseStmtn_opt->"CaseStmt",(string_opt_to_attrname_attr_namen_opt)|CloseStmt->"CloseStmt",[]|CommonStmt->"CommonStmt",[]|ComponentDefStmt->"ComponentDefStmt",[]|ComputedGotoStmt->"ComputedGotoStmt",[]|ContainsStmt->"ContainsStmt",[]|ContinueStmt->"ContinueStmt",[]|CriticalStmtn_opt->"CriticalStmt",(string_opt_to_attrname_attr_namen_opt)|CycleStmtn_opt->"CycleStmt",(string_opt_to_attrname_attr_namen_opt)|DataStmt->"DataStmt",[]|DeallocateStmt->"DeallocateStmt",[]|DerivedTypeStmtn->"DerivedTypeStmt",[name_attr_name,n]|DimensionStmt->"DimensionStmt",[]|DoStmt(n_opt,l_opt,v_opt)->"DoStmt",(string_opt_to_attrname_attr_namen_opt)@(string_opt_to_attrlabel_attr_namel_opt)@(string_opt_to_attrvar_attr_namev_opt)|ElseIfStmtn_opt->"ElseIfStmt",(string_opt_to_attrname_attr_namen_opt)|ElseStmtn_opt->"ElseStmt",(string_opt_to_attrname_attr_namen_opt)|ElsewhereStmtn_opt->"ElsewhereStmt",(string_opt_to_attrname_attr_namen_opt)|EndAssociateStmtn_opt->"EndAssociateStmt",(string_opt_to_attrname_attr_namen_opt)|EndEnumStmt->"EndEnumStmt",[]|EndStmt->"EndStmt",[]|EndBlockDataStmtn_opt->"EndBlockDataStmt",(string_opt_to_attrname_attr_namen_opt)|EndBlockStmtn_opt->"EndBlockStmt",(string_opt_to_attrname_attr_namen_opt)|EndCriticalStmtn_opt->"EndCriticalStmt",(string_opt_to_attrname_attr_namen_opt)|EndDoStmtn_opt->"EndDoStmt",(string_opt_to_attrname_attr_namen_opt)|EndfileStmt->"EndfileStmt",[]|EndForallStmtn_opt->"EndForallStmt",(string_opt_to_attrname_attr_namen_opt)|EndFunctionStmtn_opt->"EndFunctionStmt",(string_opt_to_attrname_attr_namen_opt)|EndIfStmtn_opt->"EndIfStmt",(string_opt_to_attrname_attr_namen_opt)|EndInterfaceStmt->"EndInterfaceStmt",[]|EndModuleStmtn_opt->"EndModuleStmt",(string_opt_to_attrname_attr_namen_opt)|EndMpSubprogramStmtn_opt->"EndMpSubprogramStmt",(string_opt_to_attrname_attr_namen_opt)|EndProgramStmtn_opt->"EndProgramStmt",(string_opt_to_attrname_attr_namen_opt)|EndSelectStmtn_opt->"EndSelectStmt",(string_opt_to_attrname_attr_namen_opt)|EndSubmoduleStmtn_opt->"EndSubmoduleStmt",(string_opt_to_attrname_attr_namen_opt)|EndSubroutineStmtn_opt->"EndSubroutineStmt",(string_opt_to_attrname_attr_namen_opt)|EndTypeStmtn_opt->"EndTypeStmt",(string_opt_to_attrname_attr_namen_opt)|EndWhereStmtn_opt->"EndWhereStmt",(string_opt_to_attrname_attr_namen_opt)|EntryStmtn->"EntryStmt",[name_attr_name,n]|EnumDefStmt->"EnumDefStmt",[]|EnumeratorDefStmt->"EnumeratorDefStmt",[]|EquivalenceStmt->"EquivalenceStmt",[]|ExitStmtn_opt->"ExitStmt",(string_opt_to_attrname_attr_namen_opt)|ExternalStmt->"ExternalStmt",[]|ForallStmt->"ForallStmt",[]|ForallConstructStmtn_opt->"ForallConstructStmt",(string_opt_to_attrname_attr_namen_opt)|FormatStmt->"FormatStmt",[]|FlushStmt->"FlushStmt",[]|FunctionStmtn->"FunctionStmt",[name_attr_name,n]|GotoStmt->"GotoStmt",[]|IfStmt->"IfStmt",[]|IfThenStmtn_opt->"IfThenStmt",(string_opt_to_attrname_attr_namen_opt)|ImplicitStmt->"ImplicitStmt",[]|InquireStmt->"InquireStmt",[]|IntentStmt->"IntentStmt",[]|InterfaceStmtn_opt->"InterfaceStmt",(string_opt_to_attrname_attr_namen_opt)|IntrinsicStmt->"IntrinsicStmt",[]|ModuleStmtn->"ModuleStmt",[name_attr_name,n]|MpSubprogramStmtn->"MpSubprogramStmt",[name_attr_name,n]|NamelistStmt->"NamelistStmt",[]|NullifyStmt->"NullifyStmt",[]|OpenStmt->"OpenStmt",[]|OptionalStmt->"OptionalStmt",[]|ParameterStmt->"ParameterStmt",[]|PauseStmt->"PauseStmt",[]|PointerAssignmentStmt->"PointerAssignmentStmt",[]|PointerStmt->"PointerStmt",[]|PrintStmt->"PrintStmt",[]|PrivateStmt->"PrivateStmt",[]|ProcedureStmt->"ProcedureStmt",[]|ProgramStmtn->"ProgramStmt",[name_attr_name,n]|SequenceStmt->"SequenceStmt",[]|StaticStmt->"StaticStmt",[]|ReadStmt->"ReadStmt",[]|ReturnStmt->"ReturnStmt",[]|RewindStmt->"RewindStmt",[]|SaveStmt->"SaveStmt",[]|SelectCaseStmtn_opt->"SelectCaseStmt",(string_opt_to_attrname_attr_namen_opt)|StmtFunctionStmtn->"StmtFunctionStmt",[name_attr_name,n]|StopStmt->"StopStmt",[]|SubmoduleStmt(a,p_opt,n)->"SubmoduleStmt",(name_attr_name,n)::("ancestor",a)::(string_opt_to_attr"parent"p_opt)|SubroutineStmtn->"SubroutineStmt",[name_attr_name,n]|TargetStmt->"TargetStmt",[]|TypeDeclarationStmt_->"TypeDeclarationStmt",[]|UseStmtn->"UseStmt",[name_attr_name,n]|WhereStmt->"WhereStmt",[]|WhereConstructStmtn_opt->"WhereConstructStmt",(string_opt_to_attrname_attr_namen_opt)|WriteStmt->"WriteStmt",[]|PpMacroIdn->"PpMacroId",[name_attr_name,n]|PpMacroStmtn->"PpMacroStmt",[name_attr_name,n]|StructureStmtn_opt->"StructureStmt",(string_opt_to_attrname_attr_namen_opt)|EndStructureStmt->"EndStructureStmt",[]|UnionStmt->"UnionStmt",[]|EndUnionStmt->"EndUnionStmt",[]|MapStmt->"MapStmt",[]|EndMapStmt->"EndMapStmt",[]|RecordStmt->"RecordStmt",[]|VirtualStmt->"VirtualStmt",[]|AsynchronousStmt->"AsynchronousStmt",[]|BindStmt->"BindStmt",[]|ProtectedStmt->"ProtectedStmt",[]|ValueStmt->"ValueStmt",[]|VolatileStmt->"VolatileStmt",[]|AbstractInterfaceStmt->"AbstractInterfaceStmt",[]|ImportStmt->"ImportStmt",[]|BindingPrivateStmt->"BindingPrivateStmt",[]|TypeBoundProcedureStmtn_opt->"TypeBoundProcedureStmt",(string_opt_to_attrname_attr_namen_opt)|ErrorStopStmt->"ErrorStopStmt",[]|CodimensionStmt->"CodimensionStmt",[]|ContiguousStmt->"ContiguousStmt",[]|LockStmt->"LockStmt",[]|SyncAllStmt->"SyncAllStmt",[]|SyncImagesStmt->"SyncImagesStmt",[]|SyncMemoryStmt->"SyncMemoryStmt",[]|FinalProcedureStmt->"FinalProcedureStmt",[]|TypeBoundGenericStmt->"TypeBoundGenericStmt",[]|ProcComponentDefStmt->"ProcComponentDefStmt",[]|ProcedureDeclarationStmt->"ProcedureDeclarationStmt",[]|SelectTypeStmtn_opt->"SelectTypeStmt",(string_opt_to_attrname_attr_namen_opt)|TypeIsTypeGuardStmtn_opt->"TypeIsTypeGuardStmt",(string_opt_to_attrname_attr_namen_opt)|ClassIsTypeGuardStmtn_opt->"ClassIsTypeGuardStmt",(string_opt_to_attrname_attr_namen_opt)|ClassDefaultTypeGuardStmtn_opt->"ClassDefaultTypeGuardStmt",(string_opt_to_attrname_attr_namen_opt)|EndSelectTypeStmtn_opt->"EndSelectTypeStmt",(string_opt_to_attrname_attr_namen_opt)|WaitStmt->"WaitStmt",[]|AcceptStmt->"AcceptStmt",[]|DecodeStmt->"DecodeStmt",[]|DefineFileStmt->"DefineFileStmt",[]|DeleteStmt->"DeleteStmt",[]|EncodeStmt->"EncodeStmt",[]|FindStmt->"FindStmt",[]|RewriteStmt->"RewriteStmt",[]|TypeStmt->"TypeStmt",[]|UnlockStmt->"UnlockStmt",[]let_get_name=function|CallStmtn|DerivedTypeStmtn|EntryStmtn|FunctionStmtn|ModuleStmtn|MpSubprogramStmtn|ProgramStmtn|StmtFunctionStmtn|SubmoduleStmt(_,_,n)|SubroutineStmtn|UseStmtn|PpMacroIdn|PpMacroStmtn->n|AssociateStmtn_opt|BlockDataStmtn_opt|BlockStmtn_opt|DoStmt(n_opt,_,_)|CaseStmtn_opt|CycleStmtn_opt|CriticalStmtn_opt|ElseIfStmtn_opt|ElseStmtn_opt|InterfaceStmtn_opt|EndAssociateStmtn_opt|EndBlockDataStmtn_opt|EndBlockStmtn_opt|EndDoStmtn_opt|EndForallStmtn_opt|EndFunctionStmtn_opt|EndIfStmtn_opt|EndModuleStmtn_opt|EndMpSubprogramStmtn_opt|EndProgramStmtn_opt|EndSelectStmtn_opt|EndSubmoduleStmtn_opt|EndSubroutineStmtn_opt|EndTypeStmtn_opt|EndWhereStmtn_opt|ForallConstructStmtn_opt|ExitStmtn_opt|IfThenStmtn_opt|SelectCaseStmtn_opt|StructureStmtn_opt|WhereConstructStmtn_opt->beginmatchn_optwith|Somex->x|_->raiseNot_foundend|_->raiseNot_foundlet_get_name_opt=function|AssociateStmtn_opt|BlockDataStmtn_opt|BlockStmtn_opt|DoStmt(n_opt,_,_)|CaseStmtn_opt|CycleStmtn_opt|CriticalStmtn_opt|ElseIfStmtn_opt|ElseStmtn_opt|InterfaceStmtn_opt|EndAssociateStmtn_opt|EndBlockDataStmtn_opt|EndBlockStmtn_opt|EndDoStmtn_opt|EndForallStmtn_opt|EndFunctionStmtn_opt|EndIfStmtn_opt|EndModuleStmtn_opt|EndMpSubprogramStmtn_opt|EndProgramStmtn_opt|EndSelectStmtn_opt|EndSubmoduleStmtn_opt|EndSubroutineStmtn_opt|EndTypeStmtn_opt|EndWhereStmtn_opt|ExitStmtn_opt|ForallConstructStmtn_opt|IfThenStmtn_opt|SelectCaseStmtn_opt|WhereConstructStmtn_opt|StructureStmtn_opt->n_opt|CallStmtn|DerivedTypeStmtn|EntryStmtn|FunctionStmtn|ModuleStmtn|MpSubprogramStmtn|ProgramStmtn|StmtFunctionStmtn|SubmoduleStmt(_,_,n)|SubroutineStmtn|UseStmtn|PpMacroIdn|PpMacroStmtn->Somen|_->Nonelet_get_names=function|TypeDeclarationStmtns->ns|_->[]let_is_named_orig=function|TypeDeclarationStmt_->false|lab->(tryignore(_get_namelab);truewithNot_found->false)||(_get_nameslab<>[])let_get_label=function|AssignStmtlab->lab|DoStmt(_,lab_opt,_)->beginmatchlab_optwith|Somelab->lab|_->raiseNot_foundend|_->raiseNot_foundlet_get_var=function|DoStmt(_,_,v_opt)->beginmatchv_optwith|Somex->x|_->raiseNot_foundend|_->raiseNot_foundlet_get_var_opt=function|DoStmt(_,_,v_opt)->v_opt|_->Nonelet_is_other_specification_stmt=function|AccessStmt_|AllocatableStmt|AsynchronousStmt(* F2003 *)|BindStmt(* F2003 *)|CodimensionStmt|CommonStmt|DataStmt|DimensionStmt|EquivalenceStmt|ExternalStmt|IntentStmt|IntrinsicStmt|NamelistStmt|OptionalStmt|PointerStmt|ProtectedStmt(* F2003 *)|SaveStmt|TargetStmt|VolatileStmt(* F2003 *)|ValueStmt(* F2003 *)|VirtualStmt|AutomaticStmt(* Intel *)|StaticStmt(* Intel *)|ContiguousStmt(* ?F2008 *)->true|_->falselet_is_implicit_part_stmt=function|ImplicitStmt|ParameterStmt|FormatStmt|EntryStmt_->true|_->falselet_is_declaration_construct_stmt=function|EntryStmt_|FormatStmt|ParameterStmt|ProcedureDeclarationStmt|TypeDeclarationStmt_|StmtFunctionStmt_->true|DerivedTypeStmt_(* | TypeParamDefStmt _*)|PrivateStmt|SequenceStmt|ComponentDefStmt|BindingPrivateStmt|TypeBoundProcedureStmt_|TypeBoundGenericStmt|FinalProcedureStmt|EndTypeStmt_->true|InterfaceStmt_|FunctionStmt_|SubmoduleStmt_|SubroutineStmt_|ProcedureStmt|EndInterfaceStmt->true|EnumDefStmt|EnumeratorDefStmt|EndEnumStmt->true|s->_is_other_specification_stmts[%%capture_pathlet_is_specification_part_stmts=letb=matchswith|UseStmt_|ImportStmt->true|_->_is_implicit_part_stmts||_is_declaration_construct_stmtsin[%debug_log"%s -> %B"(_to_strings)b];b]let_is_type_decl_stmt=function|TypeDeclarationStmt_->true|_->falselet_is_if_stmt=function|IfStmt->true|_->falselet_is_arithmetic_if_stmt=function|ArithmeticIfStmt->true|_->falselet_is_if_then_stmt=function|IfThenStmt_->true|_->falselet_is_else_if_stmt=function|ElseIfStmt_->true|_->falselet_is_else_stmt=function|ElseStmt_->true|_->falselet_is_action_stmt=function|AcceptStmt|AllocateStmt|AssignmentStmt|BackspaceStmt|CallStmt_|CloseStmt|ComputedGotoStmt|ContinueStmt|CycleStmt_|DeallocateStmt|DecodeStmt|DefineFileStmt|DeleteStmt|EncodeStmt|EndfileStmt|EndFunctionStmt_|EndProgramStmt_|EndSubmoduleStmt_|EndSubroutineStmt_|ErrorStopStmt|ExitStmt_|FindStmt|FlushStmt|ForallStmt|GotoStmt|IfStmt|InquireStmt|LockStmt|NullifyStmt|OpenStmt|PointerAssignmentStmt|PrintStmt|ReadStmt|ReturnStmt|RewindStmt|RewriteStmt|StopStmt|SyncAllStmt|SyncImagesStmt|SyncMemoryStmt|TypeStmt|UnlockStmt|WaitStmt|WhereStmt|WriteStmt|ArithmeticIfStmt|AssignStmt_|AssignedGotoStmt|PauseStmt->true|_->falselet_is_executable_construct_stmt=function|AssociateStmt_|EndAssociateStmt_->true|BlockStmt_|EndBlockStmt_->true|SelectCaseStmt_|CaseStmt_|EndSelectStmt_->true|CriticalStmt_|EndCriticalStmt_->true|DoStmt_|EndDoStmt_|ContinueStmt->true|ForallStmt|ForallConstructStmt_|WhereStmt|AssignmentStmt|PointerAssignmentStmt|EndForallStmt_->true|IfThenStmt_|ElseIfStmt_|ElseStmt_|EndIfStmt_->true|SelectTypeStmt_|TypeIsTypeGuardStmt_|ClassIsTypeGuardStmt_|ClassDefaultTypeGuardStmt_->true|ElsewhereStmt_|WhereConstructStmt_|EndWhereStmt_->true|s->_is_action_stmtslet_is_execution_part_construct_stmt=function|FormatStmt|EntryStmt_|DataStmt->true|s->_is_executable_construct_stmts[%%capture_pathlet_is_execution_part_stmts=letb=_is_execution_part_construct_stmtsin[%debug_log"%s -> %B"(_to_strings)b];b]let_is_end_if_stmt=function|EndIfStmt_->true|_->falselet_is_do_stmt=function|DoStmt_->true|_->falselet_is_end_do_stmt=function|EndDoStmt_->true|_->falselet_is_call_stmt=function|CallStmt_->true|_->falselet_is_function_stmt=function|FunctionStmt_->true|_->falselet_is_subroutine_stmt=function|SubroutineStmt_->true|_->falselet_is_assignment_stmt=function|AssignmentStmt->true|_->falsetypet=|Labeledoflabel*_t|Nonlabeledof_tletto_string=function|Labeled(lab,stmt)->"Labeled:"^lab^"."^(_to_stringstmt)|Nonlabeledstmt->_to_stringstmtletto_simple_string=function|Labeled(lab,stmt)->lab^" "^(_to_stringstmt)|Nonlabeledstmt->_to_simple_stringstmtletto_tag=function|Labeled(lab,stmt)->lett,a=_to_tagstmtint,[slabel_attr_name,lab]@a|Nonlabeledstmt->_to_tagstmtletget_name=function|Labeled(_,stmt)|Nonlabeledstmt->_get_namestmtletget_name_opt=function|Labeled(_,stmt)|Nonlabeledstmt->_get_name_optstmtletget_names=function|Labeled(_,stmt)|Nonlabeledstmt->_get_namesstmtletis_named_orig=function|Labeled(_,stmt)|Nonlabeledstmt->_is_named_origstmtletget_label=function|Labeled(_,stmt)|Nonlabeledstmt->_get_labelstmtletget_stmt_label=function|Labeled(lab,_)->lab|Nonlabeled_->raiseNot_foundletget_var=function|Labeled(_,stmt)|Nonlabeledstmt->_get_varstmtletget_var_opt=function|Labeled(_,stmt)|Nonlabeledstmt->_get_var_optstmtletget_stmt=function|Labeled(_,stmt)|Nonlabeledstmt->stmtletmklabeledlabx=Labeled(lab,x)letmkx=Nonlabeledxletrelablab_lab'=matchlabwith|Labeled(l,_)->Labeled(l,_lab')|Nonlabeled_->Nonlabeled_lab'letis_xxxxxx=function|Labeled(_,stmt)|Nonlabeledstmt->xxxstmtletis_specification_part_stmt=is_xxx_is_specification_part_stmtletis_execution_part_stmt=is_xxx_is_execution_part_stmtletis_action_stmt=is_xxx_is_action_stmtletis_type_decl_stmt=is_xxx_is_type_decl_stmtletis_if_stmt=is_xxx_is_if_stmtletis_arithmetic_if_stmt=is_xxx_is_arithmetic_if_stmtletis_if_then_stmt=is_xxx_is_if_then_stmtletis_else_if_stmt=is_xxx_is_else_if_stmtletis_else_stmt=is_xxx_is_else_stmtletis_end_if_stmt=is_xxx_is_end_if_stmtletis_do_stmt=is_xxx_is_do_stmtletis_end_do_stmt=is_xxx_is_end_do_stmtletis_call_stmt=is_xxx_is_call_stmtletis_function_stmt=is_xxx_is_function_stmtletis_subroutine_stmt=is_xxx_is_subroutine_stmtletis_assignment_stmt=is_xxx_is_assignment_stmtletget_raw_stmt=function|Labeled(_,stmt)|Nonlabeledstmt->stmtletof_keywordkw=matchString.lowercase_asciikwwith|"external"->ExternalStmt|"protected"->ProtectedStmt|"value"->ValueStmt|"volatile"->VolatileStmt|"contiguous"->ContiguousStmt|"automatic"->AutomaticStmt|"static"->StaticStmt|_->failwith"F_stmt.of_keyword"let_anonymize=function|CallStmt_->CallStmt""|DerivedTypeStmt_->DerivedTypeStmt""|EntryStmt_->EntryStmt""|FunctionStmt_->FunctionStmt""|ModuleStmt_->ModuleStmt""|MpSubprogramStmt_->MpSubprogramStmt""|ProgramStmt_->ProgramStmt""|StmtFunctionStmt_->StmtFunctionStmt""|SubroutineStmt_->SubroutineStmt""|UseStmt_->UseStmt""|BlockDataStmt_->BlockDataStmtNone|CaseStmt_->CaseStmtNone|CycleStmt_->CycleStmtNone|ElseIfStmt_->ElseIfStmtNone|ElseStmt_->ElseStmtNone|ElsewhereStmt_->ElsewhereStmtNone|EndBlockDataStmt_->EndBlockDataStmtNone|EndDoStmt_->EndDoStmtNone|EndForallStmt_->EndForallStmtNone|EndFunctionStmt_->EndFunctionStmtNone|EndIfStmt_->EndIfStmtNone|EndModuleStmt_->EndModuleStmtNone|EndMpSubprogramStmt_->EndMpSubprogramStmtNone|EndProgramStmt_->EndProgramStmtNone|EndSelectStmt_->EndSelectStmtNone|EndSubroutineStmt_->EndSubroutineStmtNone|EndTypeStmt_->EndTypeStmtNone|EndWhereStmt_->EndWhereStmtNone|ExitStmt_->ExitStmtNone|ForallConstructStmt_->ForallConstructStmtNone|IfThenStmt_->IfThenStmtNone|SelectCaseStmt_->SelectCaseStmtNone|WhereConstructStmt_->WhereConstructStmtNone|AssociateStmt_->AssociateStmtNone|BlockStmt_->BlockStmtNone|CriticalStmt_->CriticalStmtNone|EndAssociateStmt_->EndAssociateStmtNone|EndBlockStmt_->EndBlockStmtNone|EndCriticalStmt_->EndCriticalStmtNone|SelectTypeStmt_->SelectTypeStmtNone|TypeIsTypeGuardStmt_->TypeIsTypeGuardStmtNone|ClassIsTypeGuardStmt_->ClassIsTypeGuardStmtNone|ClassDefaultTypeGuardStmt_->ClassDefaultTypeGuardStmtNone|EndSelectTypeStmt_->EndSelectTypeStmtNone|TypeBoundProcedureStmt_->TypeBoundProcedureStmtNone|AssignStmt_->AssignStmt""|DoStmt(_,_,_)->DoStmt(None,None,None)|PpMacroStmt_->PpMacroStmt""|StructureStmt_->StructureStmtNone|SubmoduleStmt(_,_,_)->SubmoduleStmt("",None,"")|EndSubmoduleStmt_->EndSubmoduleStmtNone|l->lletanonymize=function|Labeled(_,stmt)->Nonlabeledstmt|l->l