Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Source file f_label.ml
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637(*
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> *)(* fortran/label.ml *)moduleXlist=Diffast_misc.XlistmoduleLoc =Diffast_misc.LocmoduleLang_base =Diffast_core.Lang_basemoduleSpec=Diffast_core.SpecmoduleCharpool=Diffast_core.CharpoolmoduleAstml=Diffast_core.AstmlmoduleAst=Fortran_parsing.AstmoduleLabel_common=Fortran_parsing.Label_commonmoduleLabels=Fortran_parsing.LabelsmoduleLabel=Fortran_parsing.LabelmodulePinfo=Fortran_parsing.Pinfoletkeyroot_depth_min =4type tie_id =Lang_base.tie_idletnull_tid =Lang_base.null_tidletmktid =Lang_base.mktidlettid_to_string =Lang_base.tid_to_stringletanonymize_tid=Lang_base.anonymize_tidletmktidattr =Lang_base.mktidattrmoduletypeT=sigincludeSpec.LABEL_Tvallang_prefix :stringvalis_case_construct:t->boolvalis_do_construct :t->boolvalis_forall_construct:t->boolvalis_if_construct :t->boolvalis_where_construct:t->boolvalis_derived_type_def :t->boolvalis_interface_block :t->boolvalis_select_type_construct:t->boolvalis_associate_construct :t->boolvalis_block_construct:t-> boolvalis_critical_construct :t->boolvalis_primary:t-> boolvalis_expr :t->boolvalis_stmt:t->boolvalis_if_stmt:t->boolvalis_arithmetic_if_stmt :t->boolvalis_if_then_stmt :t->boolvalis_else_if_stmt :t->boolvalis_else_stmt:t->boolval is_pp_directive:t->boolvalis_pp_define:t->boolvalis_pp_include :t->boolval is_ocl_directive :t->boolval is_omp_directive:t->boolval is_acc_directive:t->boolvalis_dec_directive:t->boolvalis_program :t->boolvalis_program_unit:t->boolvalis_program_unit_or_fragment:t->boolvalis_program_unit_or_subprogram:t->boolvalis_main_program:t->boolvalis_function:t->boolval is_subroutine:t->boolvalis_subprogram:t->boolvalis_ext_function:t->boolvalis_ext_subroutine:t->boolvalis_int_function:t->boolvalis_int_subroutine:t->boolvalis_mod_function:t-> boolvalis_mod_subroutine:t->boolvalis_module:t->boolvalis_block_data:t->boolvalis_block:t->boolvalis_entity_decl:t->boolvalis_type_decl_stmt:t->boolvalis_var_name:t->boolvalis_part_name:t->boolvalis_if_then_block:t->boolvalis_else_block:t->boolvalis_else_if_block:t->boolvalis_where_block:t->boolvalis_case_block:t->boolvalis_type_guard_block :t->boolvalis_do_block:t->boolval is_pp_branch:t->boolvalis_pp_branch_do:t->boolvalis_pp_branch_end_do :t->boolvalis_pp_branch_if :t->boolvalis_pp_branch_end_if :t->boolvalis_pp_branch_forall:t->boolvalis_pp_branch_end_forall:t->boolvalis_pp_branch_where:t->boolvalis_pp_branch_end_where:t->boolvalis_pp_branch_select :t->boolval is_pp_branch_end_select:t->boolvalis_pp_section_ifdef :t->boolvalis_pp_section_ifndef :t->boolvalis_pp_section_if:t->boolval is_pp_section_elif:t->boolvalis_pp_section_else:t->boolvalis_omp_construct:t->boolvalis_acc_construct:t->boolvalis_fragment:t->boolvalis_execution_part:t-> boolvalis_subprogram_part :t->boolvalis_section_subscript_list:t->boolvalis_ambiguous:t->boolvalis_container_unit:t->boolvalgetlab:Spec.node_t->tvalget_var:t->stringvalget_pp_include_path:t->stringvalget_label:t->stringvalget_stmt_label:t->stringendletconv_loc{Ast.Loc.filename=fn;Ast.Loc.start_offset =so;Ast.Loc.end_offset=eo;Ast.Loc.start_line=sl;Ast.Loc.start_char=sc;Ast.Loc.end_line=el;Ast.Loc.end_char=ec;}=Loc.make~fname:fnsoeoslscelecopenCharpoolinclude Label_commonmoduleHeaderFile=structincludeLabels.HeaderFileletto_short_string=function|Users->mkstr_str0s|Systems->mkstr_str2s|Macro(n,_)->combo4[n]|Generateds->mkstr_str5sendmodulePpDirective=structincludeLabels.PpDirectiveletbranch_to_short_string ?(ignore_identifiers_flag=false)=letcombo=combo~ignore_identifiers_flaginfunction|Ifc->mkstr_str 0c|Elifc->mkstr_str 2c|Ifdefn->combo4[n]|Ifndefn->combo 5[n]|Else->mkstr6|Endif_->mkstr7letmessage_to_short_string=function|Errorm->mkstr_str0m|Warningm->mkstr_str2mlet_to_short_string?(ignore_identifiers_flag=false)=letcombo=combo~ignore_identifiers_flaginfunction|Define(n,b)->mkstr_strs 0[n;b]|Undefn->combo2[n]|Includeh->mkstr_str3(HeaderFile.to_short_string h)|Branch b->mkstr_str5(branch_to_short_string ~ignore_identifiers_flagb)|Messagem->mkstr_str7(message_to_short_stringm)|Unknown(d,r)->mkstr_strs11[d;r]letto_short_stringx=_to_short_stringx.pp_labelendmoduleProgramUnit=structincludeLabels.ProgramUnitletto_short_string?(ignore_identifiers_flag=false)=letcombo=combo~ignore_identifiers_flag infunction|FunctionSubprogramn->combo0[n]|SubroutineSubprogram n->combo1[n]|Modulen->combo2[n]|MainProgramn_opt->combo3(opt_to_listn_opt)|BlockDatan_opt->combo4(opt_to_list n_opt)|Submodulen->combo5[n]endmoduleInternalSubprogram=structincludeLabels.InternalSubprogramletto_short_string?(ignore_identifiers_flag=false)=letcombo=combo ~ignore_identifiers_flaginfunction|FunctionSubprogramn->combo0[n]|SubroutineSubprogram n->combo1[n]endmoduleModuleSubprogram=structincludeLabels.ModuleSubprogramletto_short_string?(ignore_identifiers_flag=false)=letcombo=combo~ignore_identifiers_flaginfunction|FunctionSubprogramn->combo0[n]|SubroutineSubprogram n->combo1[n]|SeparateModuleSubprogramn->combo2[n]endmoduleIntentSpec=structincludeLabels.IntentSpecletto_short_string=function|In->mkstr0|Out-> mkstr1|Inout->mkstr2endmoduleAttrSpec=structincludeLabels.AttrSpecletto_short_string=function|Parameter->mkstr0|Public->mkstr1|Private->mkstr2|Allocatable->mkstr3|Dimension ->mkstr4|External->mkstr5|Intrinsic->mkstr6|Optional ->mkstr7|Pointer->mkstr8|Save->mkstr9|Target->mkstr10|Intenti-> catstr[mkstr11;IntentSpec.to_short_stringi]|Asynchronous->mkstr13|Bind->mkstr14|Protected->mkstr15|Value->mkstr16|Volatile->mkstr17|Automatic->mkstr18|Static->mkstr19|Codimension->mkstr20|Contiguous->mkstr21|Device->mkstr22|Managed->mkstr23|Constant->mkstr24|Shared->mkstr25|Pinned->mkstr26|Texture->mkstr27endmoduleAccessSpec=structincludeLabels.AccessSpecletto_short_string=function|Private->mkstr0|Public->mkstr1endmoduleTypeAttrSpec=structincludeLabels.TypeAttrSpecletto_short_string=function|Abstract->mkstr0|Bind->mkstr1|Extendsn->combo2[n]|Private->mkstr3|Public->mkstr4endmoduleStmt=structincludeLabels.Stmtlet_to_short_string?(ignore_identifiers_flag=false)=letcombo2=combo2~ignore_identifiers_flaginfunction|AllocatableStmt->mkstr20|AllocateStmt->mkstr21|ArithmeticIfStmt->mkstr22|AssignedGotoStmt->mkstr23|AssignmentStmt->mkstr24|BackspaceStmt->mkstr25|CloseStmt->mkstr26|CommonStmt->mkstr27|ComponentDefStmt->mkstr28|ComputedGotoStmt->mkstr29|ContainsStmt->mkstr210|ContinueStmt->mkstr211|DataStmt->mkstr212|DeallocateStmt->mkstr213|DimensionStmt->mkstr214|EndStmt->mkstr215|EndfileStmt->mkstr216|EndInterfaceStmt->mkstr217|EquivalenceStmt->mkstr218|ExternalStmt->mkstr219|ForallStmt->mkstr220|FormatStmt->mkstr221|GotoStmt->mkstr222|IfStmt->mkstr223|ImplicitStmt->mkstr224|InquireStmt->mkstr225|IntentStmt->mkstr226|InterfaceStmtn_opt->combo227(opt_to_listn_opt)|IntrinsicStmt->mkstr228|ProcedureStmt->mkstr229|NamelistStmt->mkstr230|NullifyStmt->mkstr231|OpenStmt->mkstr232|OptionalStmt->mkstr233|ParameterStmt->mkstr234|PauseStmt->mkstr235|PointerAssignmentStmt->mkstr236|PointerStmt->mkstr237|PrintStmt->mkstr238|PrivateStmt->mkstr239|SequenceStmt->mkstr240|ReadStmt->mkstr241|ReturnStmt->mkstr242|RewindStmt->mkstr243|SaveStmt->mkstr244|StopStmt->mkstr245|TargetStmt->mkstr246|TypeDeclarationStmtns->combo247ns|WhereStmt->mkstr248|WriteStmt->mkstr249|CallStmtn->combo250[n]|DerivedTypeStmtn->combo251[n]|EntryStmtn->combo252[n]|FunctionStmtn->combo253[n]|ModuleStmtn->combo254[n]|ProgramStmtn->combo255[n]|StmtFunctionStmtn->combo256[n]|SubroutineStmtn->combo257[n]|UseStmtn->combo258[n]|BlockDataStmtn_opt->combo259(opt_to_listn_opt)|CaseStmtn_opt->combo260(opt_to_listn_opt)|CycleStmtn_opt->combo261(opt_to_listn_opt)|ElseIfStmtn_opt->combo262(opt_to_listn_opt)|ElseStmtn_opt->combo263(opt_to_listn_opt)|ElsewhereStmtn_opt->combo264(opt_to_listn_opt)|EndBlockDataStmtn_opt->combo265(opt_to_listn_opt)|EndDoStmtn_opt->combo266(opt_to_listn_opt)|EndForallStmtn_opt->combo267(opt_to_listn_opt)|EndFunctionStmtn_opt->combo268(opt_to_listn_opt)|EndIfStmtn_opt->combo269(opt_to_listn_opt)|EndModuleStmtn_opt->combo2 70(opt_to_list n_opt)|EndProgramStmtn_opt->combo271(opt_to_listn_opt)|EndSelectStmt n_opt->combo272(opt_to_listn_opt)|EndSubroutineStmtn_opt ->combo273(opt_to_list n_opt)|EndTypeStmtn_opt->combo274(opt_to_listn_opt)|EndWhereStmtn_opt->combo275(opt_to_listn_opt)|ExitStmtn_opt->combo276(opt_to_listn_opt)|ForallConstructStmtn_opt->combo277(opt_to_listn_opt)|IfThenStmtn_opt->combo278(opt_to_listn_opt)|SelectCaseStmtn_opt->combo279(opt_to_listn_opt)|WhereConstructStmtn_opt->combo280(opt_to_listn_opt)|AccessStmta->catstr[mkstr281;AccessSpec.to_short_stringa]|AssignStmtl->combo282[l]|DoStmt(n_opt,l_opt,v_opt)->combo283((opt_to_listn_opt)@(opt_to_listl_opt)@(opt_to_listv_opt))|PpMacroStmtn->combo284[n]|StructureStmtn_opt->combo285(opt_to_listn_opt)|EndStructureStmt->mkstr286|UnionStmt->mkstr287|EndUnionStmt->mkstr288|MapStmt->mkstr289|EndMapStmt->mkstr290|RecordStmt->mkstr291|AsynchronousStmt->mkstr292|BindStmt->mkstr293|ProtectedStmt->mkstr294|ValueStmt->mkstr295|VolatileStmt->mkstr296|AbstractInterfaceStmt->mkstr297|ImportStmt->mkstr298|PpMacroId_->mkstr299|AcceptStmt->mkstr2100|DecodeStmt->mkstr2101|DefineFileStmt->mkstr2102|DeleteStmt->mkstr2103|EncodeStmt->mkstr2104|FindStmt->mkstr2105|RewriteStmt->mkstr2106|TypeStmt->mkstr2107|UnlockStmt->mkstr2108|VirtualStmt->mkstr2109|AssociateStmtn_opt->combo2110(opt_to_listn_opt)|BlockStmtn_opt->combo2111(opt_to_listn_opt)|CriticalStmtn_opt->combo2112(opt_to_listn_opt)|EndAssociateStmtn_opt->combo2113(opt_to_listn_opt)|EndEnumStmt->mkstr2114|EndBlockStmtn_opt->combo2115(opt_to_listn_opt)|EndCriticalStmtn_opt->combo2116(opt_to_listn_opt)|EnumDefStmt->mkstr2117|EnumeratorDefStmt->mkstr2118|FlushStmt->mkstr2119|BindingPrivateStmt->mkstr2120|FinalProcedureStmt->mkstr2121|TypeBoundGenericStmt->mkstr2122|ProcComponentDefStmt->mkstr2123|ProcedureDeclarationStmt->mkstr2124|SelectTypeStmtn_opt->combo2125(opt_to_listn_opt)|TypeIsTypeGuardStmtn_opt->combo2126(opt_to_listn_opt)|ClassIsTypeGuardStmtn_opt->combo2127(opt_to_listn_opt)|ClassDefaultTypeGuardStmtn_opt->combo2128(opt_to_listn_opt)|EndSelectTypeStmtn_opt->combo2129(opt_to_listn_opt)|WaitStmt->mkstr2130|TypeBoundProcedureStmtn_opt->combo2131(opt_to_listn_opt)|ErrorStopStmt->mkstr2132|CodimensionStmt->mkstr2133|ContiguousStmt->mkstr2134|LockStmt->mkstr2135|SyncAllStmt->mkstr2136|SyncImagesStmt->mkstr2137|SyncMemoryStmt->mkstr2138|SubmoduleStmt(a,p_opt,n)->combo2139(a::(opt_to_listp_opt)@[n])|EndSubmoduleStmt n_opt->combo2140 (opt_to_listn_opt)|AutomaticStmt->mkstr2141|StaticStmt ->mkstr2142|MpSubprogramStmtn->combo2 143[n]|EndMpSubprogramStmtn_opt->combo2144(opt_to_list n_opt)letto_short_string?(ignore_identifiers_flag=false)=function|Labeled(lab,stmt)->catstr((_to_short_string stmt)::(encode_ids~ignore_identifiers_flag[lab]))|Nonlabeledstmt->_to_short_stringstmtendmoduleAmbiguous=structincludeLabels.Ambiguousletto_short_string?(ignore_identifiers_flag=false)=letcombo=combo~ignore_identifiers_flaginfunction|Tuple->mkstr0|Primary->mkstr1|Subobject->mkstr2|TripletOrRange->mkstr3|First->mkstr4|Second->mkstr5|DataStmtConstant->mkstr6|Assumed->mkstr7|Deferred->mkstr8|AssumedSize->mkstr9|Designatorn->combo10[n]|NamedTuplen->combo11[n]|NamedDataObjectn->combo12[n]|ArrayAccessn->combo13[n](*
| PpExpr n -> combo 14 [n]
| PpTypeSpec n -> combo 15 [n]
*)|GenericSpecOrUseNamen->combo16[n]endmoduleConstant=structincludeLabels.Constantletto_short_string?(ignore_identifiers_flag=false)=letcombo=combo~ignore_identifiers_flaginfunction|BozLiteralConstants->catstr[mkstr0;s]|CharLiteralConstants->catstr[mkstr1;s]|IntLiteralConstants->catstr[mkstr2;s]|LogicalLiteralConstants->catstr[mkstr3;s]|RealLiteralConstants->catstr[mkstr4;s]|ComplexLiteralConstant(r,i)->catstr[mkstr5;r;i]|NamedConstantn->combo6[n]|HollerithConstants->catstr[mkstr7;s]|PpMacroConstantn->combo8[n]|SignedIntLiteralConstants->catstr[mkstr9;s]|SignedRealLiteralConstants->catstr[mkstr10;s]endmoduleIntrinsicOperator=structincludeLabels.IntrinsicOperatorletto_short_string=function|AND->mkstr0|OR->mkstr1|NOT->mkstr2|EQV->mkstr3|GE->mkstr4|GT->mkstr5|LE->mkstr6|LT->mkstr7|EQ->mkstr8|NE->mkstr9|NEQV->mkstr10|Mult->mkstr11|Div->mkstr12|Power->mkstr13|Add->mkstr14|Subt->mkstr15|Concat->mkstr16|Eq->mkstr17|Neq->mkstr18|Lt->mkstr19|Le->mkstr20|Gt->mkstr21|Ge->mkstr22|Id->mkstr23|Neg->mkstr24endmoduleDefinedOperator=structincludeLabels.DefinedOperatorletto_short_string?(ignore_identifiers_flag=false)=letcombo=combo~ignore_identifiers_flaginfunction|DefinedOps->combo0[s]|DefinedUnaryOps->combo1[s]|DefinedBinaryOps->combo2[s]endmoduleOclDirective=structincludeLabels.OclDirectiveletalign_to_short_string=function|Aaligned->mkstr0|Aunaligned->mkstr1letprefetch_spec_to_short_string=function|Pauto->mkstr0|Psoft->mkstr1letlistv_scope_to_short_string=function|Sall->mkstr0|Sthen->mkstr1|Selse->mkstr2letto_short_string?(ignore_identifiers_flag=false)=letcombo=combo~ignore_identifiers_flaginfunction|ERROR->mkstr0|ArrayFusion->mkstr2|EndArrayFusion->mkstr3|Eval->mkstr4|Noeval->mkstr5|Fltld->mkstr6|Nofltld->mkstr7|FpRelaxed->mkstr8|NofpRelaxed->mkstr9|Nomfunc->mkstr10|LoopNofusion->mkstr11|Preex->mkstr12|Nopreex->mkstr13|Prefetch->mkstr14|Noprefetch->mkstr15|PrefetchInfer->mkstr16|PrefetchNoinfer->mkstr17|Nostriping->mkstr18|Swp->mkstr19|Noswp->mkstr20|UnrollFull->mkstr21|Nounroll->mkstr22|Nosimd->mkstr23|EndCacheSectorSize->mkstr24|EndCacheSubsector->mkstr25|LoopNofission->mkstr26|Noxfill->mkstr27|PrefetchStrong->mkstr28|PrefetchNostrong->mkstr29|PrefetchStrongL2->mkstr30|PrefetchNostrongL2->mkstr31|FpContract->mkstr32|NofpContract->mkstr33|LoopNoblocking->mkstr34|Nouxsimd->mkstr35|ArrayPrivate->mkstr36|NoarrayPrivate->mkstr37|Noalias->mkstr38|Serial->mkstr39|Parallel->mkstr40|ParallelStrong->mkstr41|Reduction->mkstr42|Noreduction->mkstr43|LoopNointerchange->mkstr44|Noarraypadn->combo45[n]|ArraySubscriptns->combo46ns|LoopInterchangens->combo47ns|Novrecns->combo48ns|CacheSubsectorAssignns->combo49ns|Norecurrencens->combo50ns|Independentns->combo51ns|Tempns->combo52ns|PrefetchIterationi->catstr[mkstr53;string_of_inti]|PrefetchIterationL2i->catstr[mkstr54;string_of_inti]|LoopBlockingi->catstr[mkstr55;string_of_inti]|Unrolli->catstr[mkstr56;string_of_inti]|CacheSectorSizeis->catstr((mkstr57)::(List.mapstring_of_intis))|Mfunci_opt->catstr((mkstr58)::(opt_to_list_mapstring_of_inti_opt))|Stripingi_opt->catstr((mkstr59)::(opt_to_list_mapstring_of_inti_opt))|FissionPointi_opt->catstr((mkstr60)::(opt_to_list_mapstring_of_inti_opt))|Xfilli_opt->catstr((mkstr61)::(opt_to_list_mapstring_of_inti_opt))|Simda_opt->catstr((mkstr62)::(opt_to_list_mapalign_to_short_stringa_opt))|Uxsimda_opt->catstr((mkstr63)::(opt_to_list_mapalign_to_short_stringa_opt))|ArrayMerge(n_opt,ns)->catstr((mkstr64)::(string_opt_to_stringn_opt)::ns)|PrefetchCacheLevellv->combo65[num_or_name_to_stringlv]|PrefetchRead(lv_opt,st_opt)->catstr((mkstr66)::((opt_to_list_mapnum_or_name_to_stringlv_opt)@(opt_to_list_mapstring_of_intst_opt)))|PrefetchWrite(lv_opt,st_opt)->catstr((mkstr67)::((opt_to_list_mapnum_or_name_to_stringlv_opt)@(opt_to_list_mapstring_of_intst_opt)))|PrefetchSequentials_opt->catstr((mkstr68)::(opt_to_list_mapprefetch_spec_to_short_strings_opt))|RelOpop->catstr[mkstr69;IntrinsicOperator.to_short_stringop]|LoopPartSimd->mkstr70|LoopNopartSimd->mkstr71|Shortloopi->catstr[mkstr72;string_of_inti]|Noshortloop->mkstr73|SimdListvs_opt->catstr((mkstr74)::(opt_to_list_maplistv_scope_to_short_strings_opt))|Unswitching->mkstr75|LoopPartParallel->mkstr76|LoopNopartParallel->mkstr77|FirstPrivatens->combo78ns|LastPrivatens->combo79ns|TempPrivatens->combo80ns|ParallelCyclici_opt->catstr((mkstr81)::(opt_to_list_mapstring_of_inti_opt))endmoduleDec=structmoduleDirective=structincludeLabels.Dec.Directiveletto_short_string=function|Alias(i,e)->combo0[i;e]|Assume->mkstr1|Assume_aligned->mkstr2|Attributes->mkstr3|Declare->mkstr4|Nodeclare->mkstr5|Definen->combo6[n]|Undefinen->combo7[n]|DistributePoint->mkstr8|Fixedformlinesizei->combo9[i]|Fma->mkstr10|Nofma->mkstr11|Freeform->mkstr12|Nofreeform->mkstr13|Idents->combo14[s]|If->mkstr15|IfDefinedn->combo16[n]|Inlineb->catstr[mkstr17;(ifbthenmkstr1elsemkstr0)]|Forceinlineb->catstr[mkstr18;(ifbthenmkstr1elsemkstr0)]|Noinline->mkstr19|Integeri->combo20[i]|Ivdepo->combo21[o]|Init_dep_fwd->mkstr22|LoopCountil->combo23(List.mapstring_of_intil)|Messages->combo24[s]|Nofusion->mkstr25|Objcomments->combo26[s]|Optimizei->combo27[i]|Nooptimize->mkstr28|Optionsol->combo29ol|Packi->combo30[i]|Parallel->mkstr31|Noparallel->mkstr32|Prefetch->mkstr33|Noprefetch->mkstr34|Psectn->combo35[n]|Reali->combo36[i]|Simd->mkstr37|Strict->mkstr38|Nostrict->mkstr39|Unrolli_opt->combo40[int_opt_to_string~prefix:""i_opt]|Nounroll->mkstr41|Unroll_and_jami_opt->combo42[int_opt_to_string~prefix:""i_opt]|Nounroll_and_jam->mkstr43|Vector->mkstr44|Novector->mkstr45|Elseif->mkstr46|Else->mkstr47|Endif->mkstr48|EndOptions->mkstr49|Block_loop->mkstr50|Noblock_loop->mkstr51|Code_aligni->combo52[string_of_inti]endmoduleClause=structincludeLabels.Dec.Clauseletto_short_string=function|Always->mkstr0|Assert->mkstr1|Aligned->mkstr2|Unaligned->mkstr3|Temporal->mkstr4|Nontemporal->mkstr5|Vecremainder->mkstr6|Novecremainder->mkstr7|Noassert->mkstr8|Firstprivate->mkstr9|Lastprivate->mkstr10|Linear->mkstr11|Private->mkstr12|Reduction->mkstr13|Vectorlengthil->combo14(List.mapstring_of_intil)|Vectorlengthfor->mkstr15|Num_threads->mkstr16|Mask->mkstr17|Nomask->mkstr18|Processorp->combo19[p]|Uniform->mkstr20|Profitable->mkstr21|Cost->mkstr22|Factor->mkstr23|Levelll->combo24(List.mapLabels.Dec.level_to_stringll)endmoduleAttribute=structincludeLabels.Dec.Attributeletto_short_string=function|Aliass->combo0[s]|Aligni->combo1[string_of_inti]|Allocatable->mkstr2|Array_null->mkstr3|C->mkstr4|Code_aligni->combo5[string_of_inti]|Concurrency_safe->mkstr6|Cvf->mkstr7|Decorate->mkstr8|Default->mkstr9|Dllexport->mkstr10|Dllimport->mkstr11|Extern->mkstr12|Fastmem->mkstr13|Forceinline->mkstr14|Ignore_loc->mkstr15|Inline->mkstr16|Mixed_str_len_arg->mkstr17|No_arg_check->mkstr18|Noclone->mkstr19|Noinline->mkstr20|Offloadn->combo21[n]|Optimization_parameters->combo22[s]|Reference->mkstr23|Stdcall->mkstr24|Value->mkstr25|Varying->mkstr26|Vector->mkstr27endtypet=Labels.Dec.tletto_string=Labels.Dec.to_stringletto_simple_string=Labels.Dec.to_simple_stringletto_tag=Labels.Dec.to_tagletget_name_=raiseNot_foundletget_name_opt_=Noneletto_short_string=function|Labels.Dec.VarExpr->mkstr0|Labels.Dec.Aligns->combo1[s]|Labels.Dec.Wrt->mkstr2|Labels.Dec.Nowrt->mkstr3|Labels.Dec.PrefetchHint->mkstr4|Labels.Dec.PrefetchHintAll->mkstr5|Labels.Dec.Maxi->combo6[string_of_inti]|Labels.Dec.Mini->combo7[string_of_inti]|Labels.Dec.Avgi->combo8[string_of_inti]endmoduleXlf=structmoduleDirective=structincludeLabels.Xlf.Directivelethigh_or_low_to_short_string=function|VeryHigh->mkstr0|VeryLow->mkstr1letsource_to_short_string=function|Fixedi_opt->catstr[mkstr0;int_opt_to_stringi_opt]|Free->mkstr1|FreeF90->mkstr2|FreeIBM->mkstr3letto_short_string=function|Aligni->combo0[i]|Assert->mkstr1|BlockLoop->mkstr2|Cncall->mkstr3|Collapse->mkstr4|Eject->mkstr5|ExecutionFrequencyhl->catstr[mkstr6;high_or_low_to_short_stringhl]|ExpectedValuen->combo7[n]|FunctraceXlfCatch->mkstr8|FunctraceXlfEnter->mkstr9|FunctraceXlfExit->mkstr10|IgnoreTkr->mkstr11|Independent->mkstr12|Loopidn->combo13[n]|MemDelayc->combo14[c]|New->mkstr15|Nofunctrace->mkstr16|Nosimd->mkstr17|Novector->mkstr18|Permutation->mkstr19|Snapshot->mkstr20|Sourceforms->catstr[mkstr21;source_to_short_strings]|StreamUnroll->mkstr22|Subscriptorder->mkstr23|Unroll->mkstr24|UnrollAndFuse->mkstr25|Process->mkstr26endmoduleAssertion=structincludeLabels.Xlf.Assertionletto_short_string=function|Itercnt->mkstr0|Minitercnt->mkstr1|Maxitercnt->mkstr2|Nodeps->mkstr3endtypet=Labels.Xlf.tletto_string=Labels.Xlf.to_stringletto_simple_string=Labels.Xlf.to_simple_stringletto_tag=Labels.Xlf.to_tagletget_name=Labels.Xlf.get_nameletget_name_opt=Labels.Xlf.get_name_optletto_short_string=function|Labels.Xlf.ERROR->mkstr0|Labels.Xlf.CollapseArrayn->combo1[n]|Labels.Xlf.SubscriptorderArray(n,il)->combo2(n::il)|Labels.Xlf.NewClause->mkstr3|Labels.Xlf.ReductionClause->mkstr4|Labels.Xlf.Optionn->combo5[n]endmoduleOmpClause=structincludeLabels.OmpClauseletdata_sharing_attr_to_short_string=function|Private->mkstr0|Firstprivate->mkstr1|Shared->mkstr2|None_->mkstr3letkind_to_short_string=function|Static->mkstr0|Dynamic->mkstr1|Guided->mkstr2|Auto->mkstr3|Runtime->mkstr4letpolicy_to_short_string=function|Master->mkstr0|Close->mkstr1|Spread->mkstr2letmap_type_to_short_string=function|Alloc->mkstr0|To->mkstr1|From->mkstr2|Tofrom->mkstr3letdependence_type_to_short_string=function|In->mkstr0|Out->mkstr1|Inout->mkstr2letto_short_string=function|If->mkstr0|Num_threads->mkstr1|Default_->mkstr2|Lastprivate->mkstr3|Copyin->mkstr4|Reduction->mkstr5|Collapse->mkstr6|Ordered->mkstr7|Copyprivate->mkstr8|Nowait->mkstr9|Final->mkstr10|Untied->mkstr11|Mergeable->mkstr12|DataSharingAttra->catstr[mkstr13;data_sharing_attr_to_simple_stringa]|Schedulek->catstr[mkstr14;kind_to_simple_stringk]|Proc_bindp->catstr[mkstr15;policy_to_short_stringp]|Linearb->catstr[mkstr16;ifbthenmkstr1elsemkstr0]|Mapt_opt->catstr((mkstr17)::(opt_to_list_mapmap_type_to_simple_stringt_opt))|Safelen->mkstr18|Simdlen->mkstr19|Alignedb->catstr[mkstr20;ifbthenmkstr1elsemkstr0]|Uniform->mkstr21|Inbranch->mkstr22|Notinbranch->mkstr23|Dependt->catstr[mkstr24;dependence_type_to_short_stringt]|Device->mkstr25|Dist_schedulek->catstr[mkstr26;kind_to_simple_stringk]|Initializer->mkstr27|Num_teams->mkstr28|Thread_limit->mkstr29|ERROR->mkstr30endmoduleOmpDirective=structincludeLabels.OmpDirectiveletatomic_sub_to_short_string=function|Read->mkstr0|Write->mkstr1|Capture->mkstr2|Update->mkstr3letconstruct_type_to_short_string=function|C_parallel->mkstr0|C_sections->mkstr1|C_do->mkstr2|C_taskgroup->mkstr3letto_short_string?(ignore_identifiers_flag=false)=letcombo=combo~ignore_identifiers_flaginfunction|ERROR->mkstr0|Barrier->mkstr1|Dofalse->mkstr2|Flush->mkstr3|Master->mkstr4|Ordered->mkstr5|Parallel->mkstr6|ParallelDofalse->mkstr7|ParallelSections->mkstr8|ParallelWorkshare->mkstr9|Section->mkstr10|Sections->mkstr11|Single->mkstr12|Task->mkstr13|Taskwait->mkstr14|Taskyield->mkstr15|Threadprivate->mkstr16|Workshare->mkstr17|EndAtomic->mkstr18|EndDofalse->mkstr19|EndMaster->mkstr20|EndOrdered->mkstr21|EndParallel->mkstr22|EndSections->mkstr23|EndSingle->mkstr24|EndTask->mkstr25|EndWorkshare->mkstr26|EndParallelDofalse->mkstr27|EndParallelSections->mkstr28|EndParallelWorkshare->mkstr29|Atomic(a_opt,false)->catstr((mkstr30)::(opt_to_list_mapatomic_sub_to_simple_stringa_opt))|Criticaln_opt->combo31(opt_to_listn_opt)|EndCriticaln_opt->combo32(opt_to_listn_opt)|Dotrue->mkstr33|EndDotrue->mkstr34|ParallelDotrue->mkstr35|EndParallelDotrue->mkstr36|Atomic(a_opt,true)->catstr((mkstr37)::(opt_to_list_mapatomic_sub_to_simple_stringa_opt))|Simd->mkstr38|EndSimd->mkstr39|DeclareSimdn->combo40[n]|Target->mkstr41|EndTarget->mkstr42|TargetData->mkstr43|EndTargetData->mkstr44|TargetUpdate->mkstr45|DeclareTarget->mkstr46|Teams->mkstr47|EndTeams->mkstr48|Taskgroup->mkstr49|EndTaskgroup->mkstr50|Cancelc->catstr[mkstr51;construct_type_to_short_stringc]|CancellationPointc->catstr[mkstr52;construct_type_to_short_stringc]|DeclareReduction->mkstr53|TargetTeams->mkstr54|EndTargetTeams->mkstr55|Distributetrue->mkstr56|EndDistributetrue->mkstr57|DistributeParallelDotrue->mkstr58|EndDistributeParallelDotrue->mkstr59|TeamsDistributetrue->mkstr60|EndTeamsDistributetrue->mkstr61|TargetTeamsDistributetrue->mkstr62|EndTargetTeamsDistributetrue->mkstr63|TeamsDistributeParallelDotrue->mkstr64|EndTeamsDistributeParallelDotrue->mkstr65|TargetTeamsDistributeParallelDotrue->mkstr66|EndTargetTeamsDistributeParallelDotrue->mkstr67|Distributefalse->mkstr68|EndDistributefalse->mkstr69|DistributeParallelDofalse->mkstr70|EndDistributeParallelDofalse->mkstr71|TeamsDistributefalse->mkstr72|EndTeamsDistributefalse->mkstr73|TargetTeamsDistributefalse->mkstr74|EndTargetTeamsDistributefalse->mkstr75|TeamsDistributeParallelDofalse->mkstr76|EndTeamsDistributeParallelDofalse->mkstr77|TargetTeamsDistributeParallelDofalse->mkstr78|EndTargetTeamsDistributeParallelDofalse->mkstr79endmoduleOmpConstruct=structincludeLabels.OmpConstructletto_short_string?(ignore_identifiers_flag=false)=letcombo=combo~ignore_identifiers_flaginfunction|Atomic(a_opt,false)->catstr((mkstr0)::(opt_to_list_mapOmpDirective.atomic_sub_to_simple_stringa_opt))|Criticaln_opt->combo1(opt_to_listn_opt)|Dofalse->mkstr2|Master->mkstr3|Ordered->mkstr4|Parallel->mkstr5|Sections->mkstr6|Single->mkstr7|Task->mkstr8|Workshare->mkstr9|ParallelDofalse->mkstr10|ParallelSections->mkstr11|ParallelWorkshare->mkstr12|Atomic(a_opt,true)->catstr((mkstr13)::(opt_to_list_mapOmpDirective.atomic_sub_to_simple_stringa_opt))|Dotrue->mkstr14|ParallelDotrue->mkstr15|Simd->mkstr16|Target->mkstr17|TargetData->mkstr18|Teams->mkstr19|TargetTeams->mkstr20|Taskgroup->mkstr21|Distributetrue->mkstr23|DistributeParallelDotrue->mkstr24|TeamsDistributetrue->mkstr25|TargetTeamsDistributetrue->mkstr26|TeamsDistributeParallelDotrue->mkstr27|TargetTeamsDistributeParallelDotrue->mkstr28|Distributefalse->mkstr30|DistributeParallelDofalse->mkstr31|TeamsDistributefalse->mkstr32|TargetTeamsDistributefalse->mkstr33|TeamsDistributeParallelDofalse->mkstr34|TargetTeamsDistributeParallelDofalse->mkstr35endmoduleAccClause=structincludeLabels.AccClauseletto_short_string=function|Async->mkstr0|Auto->mkstr1|Bind->mkstr2|Collapse->mkstr3|Copy->mkstr4|Copyin->mkstr5|Copyout->mkstr6|Create->mkstr7|DefaultNone->mkstr8|DefaultPresent->mkstr9|Delete->mkstr10|Device->mkstr11|Deviceptr->mkstr12|Device_resident->mkstr13|Device_type->mkstr14|Device_typeAny->mkstr15|Dtype->mkstr16|DtypeAny->mkstr17|Firstprivate->mkstr18|Gang->mkstr19|Host->mkstr20|If->mkstr21|Independent->mkstr22|Link->mkstr23|Nohost->mkstr24|Num_gangs->mkstr25|Num_workers->mkstr26|Pcopy->mkstr27|Pcopyin->mkstr28|Pcopyout->mkstr29|Pcreate->mkstr30|Present->mkstr31|Present_or_copy->mkstr32|Present_or_copyin->mkstr33|Present_or_copyout->mkstr34|Present_or_create->mkstr35|Private->mkstr36|Reduction->mkstr37|Self->mkstr38|Seq->mkstr39|Tile->mkstr40|Use_device->mkstr41|Vector->mkstr42|Vector_length->mkstr43|Wait->mkstr44|Worker->mkstr45endmoduleAccDirective=structincludeLabels.AccDirectiveletatomic_sub_to_short_string=function|Read->mkstr0|Write->mkstr1|Capture->mkstr2|Update->mkstr3letto_short_string?(ignore_identifiers_flag=false)=letcombo=combo~ignore_identifiers_flaginfunction|ERROR->mkstr0|Atomica_opt->catstr((mkstr1)::(opt_to_list_mapatomic_sub_to_simple_stringa_opt))|Parallel->mkstr2|Kernels->mkstr3|Data->mkstr4|EnterData->mkstr5|ExitData->mkstr6|Host_data->mkstr7|Loop->mkstr8|Cache->mkstr9|Update->mkstr10|Wait->mkstr11|Routinen_opt->combo12(opt_to_listn_opt)|Declare->mkstr13|EndAtomic->mkstr14|EndParallel->mkstr15|EndKernels->mkstr16|EndData->mkstr17|EndHost_data->mkstr18|ParallelLoop->mkstr19|KernelsLoop->mkstr20|EndParallelLoop->mkstr21|EndKernelsLoop->mkstr22endmoduleAccConstruct=structincludeLabels.AccConstructletto_short_string?(ignore_identifiers_flag=false)=let_=ignore_identifiers_flagin(*let combo = combo ~ignore_identifiers_flag in*)function|Atomica_opt->catstr((mkstr0)::(opt_to_list_mapAccDirective.atomic_sub_to_simple_stringa_opt))|Parallel->mkstr1|Kernels->mkstr2|Data->mkstr3|Host_data->mkstr4|ParallelLoop->mkstr5|KernelsLoop->mkstr6|Loop->mkstr7endmoduleLindaCall=structincludeLabels.LindaCallletto_short_string=function|In->mkstr0|Inp->mkstr1|Rd->mkstr2|Rdp->mkstr3|Out->mkstr4|Eval->mkstr5endmoduleTypeSpec=structincludeLabels.TypeSpecletto_short_string?(ignore_identifiers_flag=false)=letcombo=combo~ignore_identifiers_flaginfunction|Character->mkstr0|Complex->mkstr1|DoublePrecision->mkstr2|Integer->mkstr3|Logical->mkstr4|Real->mkstr5|Byte->mkstr6|DoubleComplex->mkstr7|Typen->combo8[n]|Derivedn->combo9[n]|PpMacroTypeSpecn->combo10[n]|Classn->combo11[n]endmoduleGenericSpec=structincludeLabels.GenericSpecletrecord_kind_to_short_string=function|RK_formatted->mkstr1|RK_unformatted->mkstr2|RK_weirdn->combo3[n]letto_short_string?(ignore_identifiers_flag=false)=letcombo=combo~ignore_identifiers_flaginfunction|Assignment->mkstr0|Namen->combo1[n]|DefinedOperatorop->catstr[mkstr2;DefinedOperator.to_short_stringop]|IntrinsicOperatorop->catstr[mkstr3;IntrinsicOperator.to_short_stringop]|Readk->catstr[mkstr4;record_kind_to_short_stringk]|Writek->catstr[mkstr5;record_kind_to_short_stringk]endmoduleIoControlSpec=structincludeLabels.IoControlSpecletto_short_string?(ignore_identifiers_flag=false)=letcombo=combo~ignore_identifiers_flaginfunction|Unit->mkstr0|Fmt->mkstr1|Rec->mkstr2|Iostat->mkstr3|Size->mkstr4|Advance->mkstr5|Nmln->combo6[n]|Errlab->combo7[lab]|Endlab->combo8[lab]|Eorlab->combo9[lab]|Iomsg->mkstr10|Pos->mkstr11|PreconnectedUnit->mkstr12|Asynchronous->mkstr13|Blank->mkstr14|Decimal->mkstr15|Delim->mkstr16|Id->mkstr17|Pad->mkstr18|Round->mkstr19|Sign->mkstr20|Num->mkstr21endmoduleInquireSpec=structincludeLabels.InquireSpecletto_short_string?(ignore_identifiers_flag=false)=letcombo=combo~ignore_identifiers_flaginfunction|Unit->mkstr0|File->mkstr1|Iostat->mkstr2|Exist->mkstr3|Opened->mkstr4|Number->mkstr5|Named->mkstr6|Name->mkstr7|Access->mkstr8|Sequential->mkstr9|Direct->mkstr10|Form->mkstr11|Formatted->mkstr12|Unformatted->mkstr13|Recl->mkstr14|Nextrec->mkstr15|Blank->mkstr16|Position->mkstr17|Action->mkstr18|Read->mkstr19|Write->mkstr20|Readwrite->mkstr21|Delim->mkstr22|Pad->mkstr23|Errlab->combo24[lab]|Iomsg->mkstr25|Pos->mkstr26|Binary->mkstr27|Blocksize->mkstr28|Buffered->mkstr29|Convert->mkstr30|Carriagecontrol->mkstr31|Defaultfile->mkstr32|Iofocus->mkstr33|Mode->mkstr34|Organization->mkstr35|Recordsize->mkstr36|Recordtype->mkstr37|Share->mkstr38|Asynchronous->mkstr39|Decimal->mkstr40|Encoding->mkstr41|Id->mkstr42|Pending->mkstr43|Round->mkstr44|Sign->mkstr45|Size->mkstr46|Stream->mkstr47|Asynch->mkstr48|Strid->mkstr49endmoduleConnectSpec=structincludeLabels.ConnectSpecletto_short_string?(ignore_identifiers_flag=false)=letcombo=combo~ignore_identifiers_flaginfunction|Unit->mkstr0|Iostat->mkstr1|File->mkstr2|Status->mkstr3|Access->mkstr4|Form->mkstr5|Recl->mkstr6|Blank->mkstr7|Position->mkstr8|Action->mkstr9|Delim->mkstr10|Pad->mkstr11|Errlab->combo12[lab]|Iomsg->mkstr13|Associatevariable->mkstr14|Blocksize->mkstr15|Buffercount->mkstr16|Buffered->mkstr17|Carriagecontrol->mkstr18|Convert->mkstr19|Defaultfile->mkstr20|Dispose->mkstr21|Iofocus->mkstr22|Maxrec->mkstr23|Mode->mkstr24|Name->mkstr25|Organization->mkstr26|Readonly->mkstr27|Recordsize->mkstr28|Recordtype->mkstr29|Share->mkstr30|Shared->mkstr31|Title->mkstr32|Useropen->mkstr33|Type->mkstr34|Asynchronous->mkstr35|Decimal->mkstr36|Encoding->mkstr37|Newunit->mkstr38|Round->mkstr39|Sign->mkstr40|Asynch->mkstr41endmoduleCloseSpec=structincludeLabels.CloseSpecletto_short_string?(ignore_identifiers_flag=false)=letcombo=combo~ignore_identifiers_flaginfunction|Unit->mkstr0|Iostat->mkstr1|Status->mkstr2|Errlab->combo3[lab]|Iomsg->mkstr4|Dispose->mkstr5|Type->mkstr6endmodulePositionSpec=structincludeLabels.PositionSpecletto_short_string?(ignore_identifiers_flag=false)=letcombo=combo~ignore_identifiers_flaginfunction|Unit->mkstr0|Iostat->mkstr1|Errlab->combo2[lab]|Iomsg->mkstr3endmoduleFormat=structincludeLabels.Formatletto_short_string?(ignore_identifiers_flag=false)=letcombo=combo~ignore_identifiers_flaginfunction|Expr->mkstr0|ListDirected->mkstr1|Labellab->combo2[lab]endmodulePrefixSpec=structincludeLabels.PrefixSpecletto_short_string=function|Recursive->mkstr0|Pure->mkstr1|Elemental->mkstr2|TypeSpect->catstr[mkstr3;TypeSpec.to_short_stringt]|Impure->mkstr4|Module->mkstr5|Attributesa->combo6[a]endmoduleCaseSelector=structincludeLabels.CaseSelectorletto_short_string=function|CaseValueRangeList->mkstr0|Default->mkstr1endmoduleCaseValueRange=structincludeLabels.CaseValueRangeletto_short_string=function|Value->mkstr0|Lower->mkstr1|Upper->mkstr2|LowerUpper->mkstr3endmoduleControlEditDesc=structincludeLabels.ControlEditDescletto_short_string=function|Terminate->mkstr0|PositionEditDescs->mkstr_str1s|SignEditDescs->mkstr_str3s|BlankInterpEditDescs->mkstr_str5s|ScaleFactori->catstr[mkstr7;string_of_inti]|EndOfRecordi_opt->catstr((mkstr8)::(opt_to_list_mapstring_of_inti_opt))|Unknowns->mkstr_str9sendmoduleFormatItem=structincludeLabels.FormatItemletspecial_edit_desc_to_short_string=function|Dollar->mkstr0|Backslash->mkstr1|Plus->mkstr2|Zero->mkstr3|One->mkstr4|Blank->mkstr5letto_short_string=function|DataEditDesc(i_opt,s)->catstr((mkstr_str0s)::(opt_to_list_mapstring_of_inti_opt))|ControlEditDescc->catstr[mkstr2;ControlEditDesc.to_short_stringc]|CharStringEditDescs->mkstr_str3s|FormatItemListi_opt->catstr((mkstr5)::(opt_to_list_mapstring_of_inti_opt))|SpecialEditDescsd->catstr[mkstr6;special_edit_desc_to_short_stringsd]|VariableFormatDesc(i_opt,s)->catstr((mkstr_str7s)::(opt_to_list_mapstring_of_inti_opt))|Macro(i_opt,id)->catstr((mkstr_str9id)::(opt_to_list_mapstring_of_inti_opt))endmoduleWaitSpec=structincludeLabels.WaitSpecletto_short_string=function|Endlab->combo0[lab]|Eorlab->combo1[lab]|Errlab->combo2[lab]|Id->mkstr3|Iomsg->mkstr4|Iostat->mkstr5|Unit->mkstr6endmoduleFlushSpec=structincludeLabels.FlushSpecletto_short_string=function|Errlab->combo0[lab]|Iomsg->mkstr1|Iostat->mkstr2|Unit->mkstr3endmoduleBindingAttr=structincludeLabels.BindingAttrletto_short_string=function|Passn->combo0[n]|Nopass->mkstr1|NonOverridable->mkstr2|Deferred->mkstr3|Private->mkstr4|Public->mkstr5endmoduleProcComponentAttrSpec=structincludeLabels.ProcComponentAttrSpecletto_short_string=function|Passn->combo0[n]|Pointer->mkstr1|Nopass->mkstr2|Private->mkstr3|Public->mkstr4endmoduleProcAttrSpec=structincludeLabels.ProcAttrSpecletto_short_string=function|Public->mkstr0|Private->mkstr1|Bind->mkstr2|Intenti->combo3[IntentSpec.to_short_stringi]|Optional->mkstr4|Pointer->mkstr5|Protected->mkstr6|Save->mkstr7|Weirdn->combo8[n]endincludeLabelletto_short_string?(ignore_identifiers_flag=false)=letcombo2=combo2~ignore_identifiers_flaginfunction|DUMMY->mkstr20|EMPTY->mkstr21|ERROR_->mkstr22|OCL->mkstr23|Program->mkstr24|Block->mkstr25|InterfaceBlockn_opt->combo26(opt_to_listn_opt)|InterfaceBody->mkstr27|CaseConstruct->mkstr28|DoConstructv_opt->combo29(opt_to_listv_opt)|ForallConstruct->mkstr210|IfConstruct->mkstr211|WhereConstruct->mkstr212|DerivedTypeDefn->combo213[n]|ArrayElementn->combo214[n]|ArraySectionn->combo215[n]|StructureComponentn->combo216[n]|Substring->mkstr217|SectionSubscriptListn->combo218[n]|SubscriptTriplet->mkstr219|FirstSubscript->mkstr220|SecondSubscript->mkstr221|Stride->mkstr222|SubstringRange->mkstr223|StartingPoint->mkstr224|EndingPoint->mkstr225|PartRef->mkstr226|ParenExpr->mkstr227|ArrayConstructor->mkstr228|LoopControlv->combo229[v]|LoopControlWhile->mkstr230|Rename->mkstr231|OnlyList->mkstr232|KindSelector->mkstr233|CharSelector->mkstr234|LengthSelector->mkstr235|LengthSelectorOverride->mkstr236(* | CharLenParamValueAsterisk -> mkstr2 37 *)|TypeParamValueAsterisk->mkstr237|TypeParamValueColon->mkstr238|ExplicitShapeSpec->mkstr239|AssumedShapeSpec->mkstr240|DeferredShapeSpec->mkstr241(*| AssumedSizeSpec -> mkstr2 41 *)(*
| ComponentAttrSpecPointer -> mkstr2 42
| ComponentAttrSpecDimension -> mkstr2 43
*)|ComponentAttrSpecs->mkstr244|AttrSpecs->mkstr247|InputItemList->mkstr248|OutputItemList->mkstr249|IoLength->mkstr250|IoImpliedDo->mkstr251|EquivalenceSet->mkstr252|DataStmtSet->mkstr253|DataStmtValue->mkstr254(* | NullInit -> mkstr2 55*)|DataImpliedDo->mkstr256|DataIDoObject->mkstr257|DataIDoObjectList->mkstr258|DataStmtObjectList->mkstr259|DataStmtValueList->mkstr260|Prefix->mkstr261|DummyArgNameListn->combo262[n]|DummyArgListn->combo263[n]|ActualArgSpecListn->combo264[n]|AlternateReturnIndicator->mkstr265|ForallHeader->mkstr266|ImplicitSpec->mkstr267|FormatSpecification->mkstr268|AcImpliedDo->mkstr269|PartNamen->combo271[n]|Namen->combo272[n]|VariableNamen->combo273[n]|FunctionReferencen->combo274[n]|StructureConstructorn->combo275[n]|ComponentDecln->combo276[n]|EntityDecln->combo277[n]|CommonBlockObjectn->combo278[n]|NamedConstantDefn->combo279[n]|IoImpliedDoControln->combo280[n]|Arrayn->combo281[n]|NamelistGroupn->combo282[n]|ObjectNamen->combo283[n]|Resultn->combo284[n]|ForallTripletSpecn->combo285[n]|AcImpliedDoControln->combo286[n]|AltReturnSpeclab->combo287[lab]|Labellab->combo289[lab]|ActualArgSpecn_opt->combo290(opt_to_listn_opt)|CommonSpecn_opt->combo291(opt_to_listn_opt)|ArraySpeci->combo292[string_of_inti]|ExplicitShapeArrayi->combo293[string_of_inti]|AssumedShapeArrayi->combo294[string_of_inti]|DeferredShapeArrayi->combo295[string_of_inti]|AssumedSizeArrayi->combo296[string_of_inti]|ComponentArraySpeci->combo297[string_of_inti]|ExplicitShapeComponentArrayi->combo298[string_of_inti]|DeferredShapeComponentArrayi->combo299[string_of_inti]|Stmts->catstr[mkstr2100;Stmt.to_short_strings]|PpDirectived->catstr[mkstr2101;PpDirective.to_short_stringd]|OclDirectived->catstr[mkstr2102;OclDirective.to_short_stringd]|ProgramUnitpu->catstr[mkstr2103;ProgramUnit.to_short_stringpu]|TypeSpect->catstr[mkstr2104;TypeSpec.to_short_stringt]|Ambiguousa->catstr[mkstr2105;Ambiguous.to_short_stringa]|Constantc->catstr[mkstr2106;Constant.to_short_stringc]|GenericSpecg->catstr[mkstr2107;GenericSpec.to_short_stringg]|IntrinsicOperatorop->catstr[mkstr2108;IntrinsicOperator.to_short_stringop]|DefinedOperatorop->catstr[mkstr2109;DefinedOperator.to_short_stringop]|AttrSpeca->catstr[mkstr2110;AttrSpec.to_short_stringa]|StopCodec->catstr[mkstr2111;Constant.to_short_stringc]|Formatf->catstr[mkstr2112;Format.to_short_stringf]|PrefixSpecp->catstr[mkstr2114;PrefixSpec.to_short_stringp]|CaseSelectorsel->catstr[mkstr2115;CaseSelector.to_short_stringsel]|CaseValueRanger->catstr[mkstr2116;CaseValueRange.to_short_stringr]|FormatItemi->catstr[mkstr2117;FormatItem.to_short_stringi]|AccessSpecspec->catstr[mkstr2118;AccessSpec.to_short_stringspec]|InquireSpecspec->catstr[mkstr2119;InquireSpec.to_short_stringspec]|CloseSpecspec->catstr[mkstr2120;CloseSpec.to_short_stringspec]|ConnectSpecspec->catstr[mkstr2121;ConnectSpec.to_short_stringspec]|PositionSpecspec->catstr[mkstr2122;PositionSpec.to_short_stringspec]|IoControlSpecspec->catstr[mkstr2123;IoControlSpec.to_short_stringspec]|IntentSpecspec->catstr[mkstr2124;IntentSpec.to_short_stringspec]|Includes->mkstr2_str127s|LetterSpec(l,l_opt)->catstr((mkstr2129)::l::(opt_to_listl_opt))|OmpClausec->catstr[mkstr2130;OmpClause.to_short_stringc]|OmpDirectived->catstr[mkstr2131;OmpDirective.to_short_stringd]|OMP->mkstr2132|CommonBlockNamen->combo2133[n]|IntrinsicProcedureNamen->combo2134[n]|LindaCalllc->catstr[mkstr2135;LindaCall.to_short_stringlc]|LindaFormal->mkstr2136|LindaActual->mkstr2137|LindaLength->mkstr2138|LindaTypeof->mkstr2139|SpecificationPart->mkstr2140|ExecutionPart->mkstr2141|SubprogramPart->mkstr2142|ImplicitPart->mkstr2143|Variable->mkstr2144|InternalSubprogramis->catstr[mkstr2145;InternalSubprogram.to_short_stringis]|ModuleSubprogramis->catstr[mkstr2146;ModuleSubprogram.to_short_stringis]|XlfDirectived->catstr[mkstr2147;Xlf.Directive.to_short_stringd]|XlfAssertiona->catstr[mkstr2148;Xlf.Assertion.to_short_stringa]|XlfMiscx->catstr[mkstr2149;Xlf.to_short_stringx]|XLF->mkstr2150|StructureDecln_opt->combo2152(opt_to_listn_opt)|UnionDecl->mkstr2153|MapDecl->mkstr2154|RecordDecln->combo2155[n]|RecordFieldRefn->combo2156[n]|EntityNamen->combo2157[n]|DummyArgNamen->combo2158[n]|LanguageBindingSpec->mkstr2159|Suffix->mkstr2160|Fragment->mkstr2161|TypeAttrSpecspec->catstr[mkstr2162;TypeAttrSpec.to_short_stringspec]|InitializationExpr->mkstr2163|InitializationNull->mkstr2164|InitializationTarget->mkstr2165|InitializationOldStyle->mkstr2166|StatVariable->mkstr2167|ErrmsgVariable->mkstr2168|SourceExpr->mkstr2169|MoldExpr->mkstr2170|ModuleNatureIntrinsic->mkstr2171|ModuleNatureNonIntrinsic->mkstr2172|PpMacroIdn->combo2173[n]|PpMacroExprn->combo2174[n]|PpMacroVariablen->combo2175[n]|PpBranch->mkstr2176|PpBranchDo->mkstr2177|PpBranchForall->mkstr2178|PpBranchIf->mkstr2179|PpBranchSelect->mkstr2180|PpBranchWhere->mkstr2181|PpBranchEndDo->mkstr2182|PpBranchEndForall->mkstr2183|PpBranchEndIf->mkstr2184|PpBranchEndSelect->mkstr2185|PpBranchEndWhere->mkstr2186|PpSectionIfs->combo2187[s]|PpSectionIfdefs->combo2188[s]|PpSectionIfndefs->combo2189[s]|PpSectionElifs->combo2190[s]|PpSectionElse->mkstr2191|IfThenBlock->mkstr2192|ElseIfBlock->mkstr2193|ElseBlock->mkstr2194|OmpConstructc->catstr[mkstr2195;OmpConstruct.to_short_stringc]|CrayPointerSpec->mkstr2196|CaseBlock->mkstr2197|IoItemList->mkstr2198|Allocationn->combo2199[n]|AllocateShapeSpec->mkstr2200|AllocateShapeSpecList->mkstr2201|PpBranchDerivedType->mkstr2202|PpBranchEndType->mkstr2203|SelectTypeConstruct->mkstr2204|AssociateConstruct->mkstr2205|BlockConstruct->mkstr2206|CriticalConstruct->mkstr2207|LoopControlConcurrent->mkstr2208|AssumedRankArray->mkstr2209|WaitSpecsp->catstr[mkstr2210;WaitSpec.to_short_stringsp]|FlushSpecsp->catstr[mkstr2211;FlushSpec.to_short_stringsp]|BindingAttra->catstr[mkstr2212;BindingAttr.to_short_stringa]|ProcComponentAttrSpecsp->catstr[mkstr2213;ProcComponentAttrSpec.to_short_stringsp]|ProcAttrSpecsp->catstr[mkstr2214;ProcAttrSpec.to_short_stringsp]|ExternalNamen->combo2215[n]|TypeBoundProcDecl(n,n_opt)->catstr((mkstr2216)::n::(opt_to_listn_opt))|TypeBoundProcedurePart->mkstr2217|ProcedureDesignatorn->combo2218[n]|ProcDecln->combo2219[n]|TypeGuardBlock->mkstr2220|Associationn->combo2221[n]|DeferredCoshapeSpec->mkstr2222|ExplicitCoshapeSpec->mkstr2223(* | ExplicitCoshapeSpecUpper -> mkstr2 224*)|DeferredCoshapeCoarray->mkstr2225|ExplicitCoshapeCoarray->mkstr2226|CodimensionDecln->combo2227[n]|Enumeratorn->combo2228[n]|EnumDef->mkstr2229|BoundsSpec->mkstr2230|BoundsRemapping->mkstr2231|BoundsSpecList->mkstr2232|BoundsRemappingList->mkstr2233|DataPointerObjectn->combo2234[n]|AllocateCoshapeSpec->mkstr2235(* | AllocateCoshapeSpecUpper -> mkstr2 236*)|AllocateCoarraySpec->mkstr2237|WEIRDs->combo2238[s]|AcquiredLock->mkstr2239|ImageSelector->mkstr2240|AllImages->mkstr2241|WhereBlock->mkstr2242|SelectiveOp->mkstr2243|PpBranchFunction->mkstr2244|PpBranchEndFunction->mkstr2245|PpBranchSubroutine->mkstr2244|PpBranchEndSubroutine->mkstr2245|PpBranchPu->mkstr2246|PpBranchEndPu->mkstr2247|DefineFileSpec->mkstr2248|Optionss->mkstr2_str249s|ApolloPointerSpec->mkstr2251|PpMacroEntityDecln->combo2252[n]|PpMacroObjectn->combo2253[n]|AccClausec->catstr[mkstr2254;AccClause.to_short_stringc]|AccDirectived->catstr[mkstr2255;AccDirective.to_short_stringd]|ACC->mkstr2256|AccConstructc->catstr[mkstr2257;AccConstruct.to_short_stringc]|DecDirectived->catstr[mkstr2258;Dec.Directive.to_short_stringd]|DecClausec->catstr[mkstr2259;Dec.Clause.to_short_stringc]|DecAttributea->catstr[mkstr2260;Dec.Attribute.to_short_stringa]|DecMiscx->catstr[mkstr2261;Dec.to_short_stringx]|DEC->mkstr2262|DoBlock->mkstr2263|FunctionStmtHeadn->combo2264[n]|SubroutineStmtHeadn->combo2265[n]|ProcNamen->combo2266[n]letstriplab=lab(* not yet *)letanonymize2=anonymize~more:trueletanonymize3=anonymize~more:true(*
type annotation = string option
let null_annotation = None
let annotation_to_string = function
| None -> "<none>"
| Some x -> x
*)moduleAnnotation=structtypespec=|Requireofstringlist|Provideofstringlist|SpecofPinfo.Name.Spec.ttypet=speclistletnull=([]:t)letmkrequirens=Requirensletmkprovidens=Providensletmkspecnspec=Specnspecletspec_to_string=function|Requirens->Printf.sprintf"require %s"(Xlist.to_string(funx->x)", "ns)|Providens->Printf.sprintf"provide %s"(Xlist.to_string(funx->x)", "ns)|Specnspec->Pinfo.Name.Spec.to_stringnspecletto_stringl=Xlist.to_stringspec_to_string"\n"lletfrom_specs(l:speclist)=(l:t)letadd_spec(a:t)(s:spec)=(s::a:t)letiterf(a:t)=List.iterfaend(* of module Annotation *)typeannotation=Annotation.tletnull_annotation=Annotation.nullletannotation_to_string=Annotation.to_stringletis_hunk_boundary__=false(* not yet *)(* These labels are collapsible whether they are leaves or not. *)letforced_to_be_collapsible(*lab*)_=falseletis_collapse_targetoptionslab=ifoptions#no_collapse_flagthenfalseelsematchlabwith|PpDirective_|OclDirective_|OmpClause_|OmpDirective_|OmpConstruct_|LindaCall_|ProgramUnit_|InternalSubprogram_|ModuleSubprogram_|Stmt_|CaseConstruct|DoConstruct_|ForallConstruct|IfConstruct|WhereConstruct|SelectTypeConstruct|AssociateConstruct|BlockConstruct|CriticalConstruct|DerivedTypeDef_|InterfaceBlock_|SpecificationPart|ExecutionPart|SubprogramPart|ImplicitPart|Block|LoopControl_|LoopControlWhile|LoopControlConcurrent|OnlyList|ComponentDecl_|Prefix|Suffix|EntityDecl_|DummyArgNameList_|DummyArgList_|ActualArgSpecList_|ExplicitShapeSpec|AssumedShapeSpec|DeferredShapeSpec|ArraySpec_|ExplicitShapeArray_|AssumedShapeArray_|DeferredShapeArray_|AssumedSizeArray_|ComponentArraySpec_|ExplicitShapeComponentArray_|DeferredShapeComponentArray_|StructureDecl_|UnionDecl|MapDecl|TypeBoundProcDecl_|EnumDef|CodimensionDecl_(* | TypeGuardBlock*)|Association_|BoundsSpec|BoundsRemapping|BoundsSpecList|BoundsRemappingList(* expr *)|VariableName_|Constant_|DefinedOperator_|IntrinsicOperator_|FunctionReference_|ArrayConstructor|StructureConstructor_|ArrayElement_|ArraySection_|StructureComponent_|Substring|ParenExpr|Ambiguous_->true|_->falseletis_to_be_notified=function|PpDirective_|OclDirective_|OmpDirective_|OmpConstruct_|LindaCall_|ProgramUnit_|InternalSubprogram_|ModuleSubprogram_|Stmt_|CaseConstruct|DoConstruct_|ForallConstruct|IfConstruct|WhereConstruct|SelectTypeConstruct|AssociateConstruct|BlockConstruct|CriticalConstruct|DerivedTypeDef_|InterfaceBlock_|EnumDef->true|_->falseletis_partition=function|ProgramUnit_->true|_->falseletis_sequence=function|Program|Block|InterfaceBody|SpecificationPart|ExecutionPart|SubprogramPart|ImplicitPart|Fragment|TypeBoundProcedurePart->true|_->falseletis_ntuple=function(* not yet *)|_->falseletis_boundary=function|Program|ProgramUnit_|InternalSubprogram_|ModuleSubprogram_|DerivedTypeDef_|InterfaceBlock_|Fragment|EnumDef->true|_->falseletis_primary=function|Constant_|Name_|FunctionReference_|ArrayConstructor|StructureConstructor_|ArrayElement_|ArraySection_|StructureComponent_|Substring|ParenExpr|RecordFieldRef_->true|_->falseletis_expr=function|DefinedOperator_|IntrinsicOperator_->true|lab->is_primarylabletis_op=function|DefinedOperator_|IntrinsicOperator_->true|_->falseletis_scope_creating=function(* not yet *)|_->falseletis_compatible?(weak=false)__=ignoreweak;falseletis_order_insensitive=function|_->falseletquasi_eq__=falseletrelabel_allowed=function|Stmt_,Stmt_|IfConstruct,CaseConstruct|CaseConstruct,IfConstruct|IfConstruct,WhereConstruct|WhereConstruct,IfConstruct|DoConstruct_,ForallConstruct|ForallConstruct,DoConstruct_|LoopControl_,LoopControlWhile|LoopControlWhile,LoopControl_|LoopControl_,LoopControlConcurrent|LoopControlConcurrent,LoopControl_|ExecutionPart,Block|Block,ExecutionPart(* only for mapping children *)->true|l1,l2->(is_exprl1&&is_exprl2)||(anonymize2l1=anonymize2l2)letmove_disallowed_=falseletis_common_=falseletget_ident_use=function|Namen->n|_->""letto_char(*lab*)_='0'lethas_nameslab=tryignore(get_nameslab);truewithNot_found->falselethas_a_namelab=tryignore(get_namelab);truewithNot_found->falseletis_namedlab=has_a_namelab||has_nameslabletis_named_origlab=matchlabwith|Stmts->Stmt.is_named_origs|SectionSubscriptList_|DummyArgNameList_|DummyArgList_|ActualArgSpecList_|ArrayElement_|ArraySection_|StructureComponent_->false|_->is_namedlabletto_elem_data=Astml.to_elem_datalang_prefixto_tagletof_elem_data(*name*)_(*attrs*)__=DUMMY(* not yet *)letgetlabnd=(Obj.objnd#data#_label:t)letcannot_be_keyrootnd=matchgetlabndwith|Program|ProgramUnit_|InternalSubprogram_|ModuleSubprogram_|ExecutionPart->true|_->falseletis_int_literal=function|Constant(Constant.IntLiteralConstant_)->true|_->falseletis_real_literal=function|Constant(Constant.RealLiteralConstant_)->true|_->falseletis_string_literal=function|Constant(Constant.CharLiteralConstant_)->true|_->falseletis_phantom=function|Block|DoBlock|WhereBlock|TypeGuardBlock|CaseBlock|IfThenBlock|ElseIfBlock|ElseBlock|SpecificationPart|ExecutionPart|ImplicitPart->true|_->falseletis_special_=falseletis_pp_directive=function|PpDirective_->true|_->falseletis_pp_define=function|PpDirective{PpDirective.pp_label=PpDirective.Define_;_}->true|_->falseletis_pp_include=function|PpDirective{PpDirective.pp_label=PpDirective.Include_;_}->true|_->falseletget_pp_include_path=function|PpDirective{PpDirective.pp_label=PpDirective.Includeh;_}->HeaderFile.to_pathh|_->raiseNot_foundletis_ocl_directive=function|OclDirective_->true|_->falseletis_omp_clause=function|OmpClause_->true|_->falseletis_omp_directive=function|OmpDirective_->true|_->falseletis_omp_construct=function|OmpConstruct_->true|_->falseletis_acc_clause=function|AccClause_->true|_->falseletis_acc_directive=function|AccDirective_->true|_->falseletis_acc_construct=function|AccConstruct_->true|_->falseletis_dec_clause=function|DecClause_->true|_->falseletis_dec_directive=function|DecDirective_->true|_->falseletis_program_unit=function|ProgramUnit_->true|_->falseletis_program=function|Program->true|_->falseletis_fragment=function|Fragment->true|_->falseletis_execution_part=function|ExecutionPart->true|_->falseletis_subprogram_part=function|SubprogramPart->true|_->falseletis_external_subprogram=function|ProgramUnit(ProgramUnit.FunctionSubprogram_|ProgramUnit.SubroutineSubprogram_)->true|_->falseletis_main_program=function|ProgramUnit(ProgramUnit.MainProgram_)->true|_->falseletis_function=function|ProgramUnit(ProgramUnit.FunctionSubprogram_)|InternalSubprogram(InternalSubprogram.FunctionSubprogram_)|ModuleSubprogram(ModuleSubprogram.FunctionSubprogram_)->true|_->falseletis_ext_function=function|ProgramUnit(ProgramUnit.FunctionSubprogram_)->true|_->falseletis_int_function=function|InternalSubprogram(InternalSubprogram.FunctionSubprogram_)->true|_->falseletis_mod_function=function|ModuleSubprogram(ModuleSubprogram.FunctionSubprogram_)->true|_->falseletis_subroutine=function|ProgramUnit(ProgramUnit.SubroutineSubprogram_)|InternalSubprogram(InternalSubprogram.SubroutineSubprogram_)|ModuleSubprogram(ModuleSubprogram.SubroutineSubprogram_)->true|_->falseletis_ext_subroutine=function|ProgramUnit(ProgramUnit.SubroutineSubprogram_)->true|_->falseletis_int_subroutine=function|InternalSubprogram(InternalSubprogram.SubroutineSubprogram_)->true|_->falseletis_mod_subroutine=function|ModuleSubprogram(ModuleSubprogram.SubroutineSubprogram_)->true|_->falseletis_subprogram=function|ProgramUnit(ProgramUnit.SubroutineSubprogram_|ProgramUnit.FunctionSubprogram_)|InternalSubprogram(InternalSubprogram.SubroutineSubprogram_|InternalSubprogram.FunctionSubprogram_)|ModuleSubprogram_->true|_->falseletis_program_unit_or_fragment=function|ProgramUnit_|Fragment->true|_->falseletis_program_unit_or_subprogram=function|ProgramUnit_|InternalSubprogram(InternalSubprogram.SubroutineSubprogram_|InternalSubprogram.FunctionSubprogram_)|ModuleSubprogram(ModuleSubprogram.SubroutineSubprogram_|ModuleSubprogram.FunctionSubprogram_)->true|_->falseletis_module=function|ProgramUnit(ProgramUnit.Module_)->true|_->falseletis_block_data=function|ProgramUnit(ProgramUnit.BlockData_)->true|_->falseletis_case_construct=function|CaseConstruct->true|_->falseletis_do_construct=function|DoConstruct_->true|_->falseletis_forall_construct=function|ForallConstruct->true|_->falseletis_if_construct=function|IfConstruct->true|_->falseletis_where_construct=function|WhereConstruct->true|_->falseletis_select_type_construct=function|SelectTypeConstruct->true|_->falseletis_associate_construct=function|AssociateConstruct->true|_->falseletis_block_construct=function|BlockConstruct->true|_->falseletis_critical_construct=function|CriticalConstruct->true|_->falseletis_derived_type_def=function|DerivedTypeDef_->true|_->falseletis_interface_block=function|InterfaceBlock_->true|_->falseletis_block=function|Block->true|_->falseletis_ambiguous=function|Ambiguous_->true|_->falseletis_array_access=function|ArrayElement_|ArraySection_|Ambiguous(Ambiguous.ArrayAccess_)->true|_->falseletis_if_then_block=function|IfThenBlock->true|_->falseletis_else_block=function|ElseBlock->true|_->falseletis_else_if_block=function|ElseIfBlock->true|_->falseletis_where_block=function|WhereBlock->true|_->falseletis_case_block=function|CaseBlock->true|_->falseletis_type_guard_block=function|TypeGuardBlock->true|_->falseletis_do_block=function|DoBlock->true|_->falseletis_pp_branch=function|PpBranch->true|_->falseletis_pp_branch_do=function|PpBranchDo->true|_->falseletis_pp_branch_if=function|PpBranchIf->true|_->falseletis_pp_branch_forall=function|PpBranchForall->true|_->falseletis_pp_branch_where=function|PpBranchWhere->true|_->falseletis_pp_branch_select=function|PpBranchSelect->true|_->falseletis_pp_branch_end_do=function|PpBranchEndDo->true|_->falseletis_pp_branch_end_if=function|PpBranchEndIf->true|_->falseletis_pp_branch_end_forall=function|PpBranchEndForall->true|_->falseletis_pp_branch_end_where=function|PpBranchEndWhere->true|_->falseletis_pp_branch_end_select=function|PpBranchEndSelect->true|_->falseletis_pp_section_ifdef=function|PpSectionIfdef_->true|_->falseletis_pp_section_ifndef=function|PpSectionIfndef_->true|_->falseletis_pp_section_if=function|PpSectionIf_->true|_->falseletis_pp_section_elif=function|PpSectionElif_->true|_->falseletis_pp_section_else=function|PpSectionElse->true|_->falseletis_container_unit=function|AccConstruct_|CaseBlock|ElseBlock|ElseIfBlock|IfThenBlock|TypeGuardBlock|WhereBlock|PpSectionIf_|PpSectionElif_|PpSectionElse|PpSectionIfdef_|PpSectionIfndef_|AssociateConstruct|BlockConstruct|CaseConstruct|IfConstruct|SelectTypeConstruct|WhereConstruct|CriticalConstruct|DoConstruct_|ForallConstruct|DoBlock|ExecutionPart|OmpConstruct_|PpBranch|PpBranchDo|PpBranchIf|PpBranchForall|PpBranchWhere|PpBranchSelect|PpBranchEndDo|PpBranchEndIf|PpBranchEndForall|PpBranchEndWhere|PpBranchEndSelect->true|_->false