I7      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                                    ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                                                                   ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                                                                   ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Safe 569:;<=?QR  Safe056:  !"# #"!    !"#Safe 569:;<=?QR ,-./01234567,-./01/0101,-.,-./0101234567Safe 05:<=?TN89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~D89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bacdefghijklmnopqrstuvwxyz{N^_`abcdZ[\]TUVWXYMNOPQRSGHIJKLeDEF?@ABCfgh=>:;<~}|ijklmnopqrstuvwxy89z{+89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Safe5Convert a Fortran literal Real into a Haskell Double.9Convert a Fortran literal Integer into a Haskell Integer.None 059:;<=B      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=> ,-     !"#$%&'()*+.01/23456=><;789:?@BACDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./012345LMNOPQ,-.0612345RSTUVWXYZ[\]^_`abcdefghijklmnopqrs>tuvwxyz{|}FGHIJK~CDE?@AB56789:;<=>=<423./01/      !"#$%&'()*+,-;:987      !"#$%&'()*+      !"#$%&'()*+,-./012345 6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>None 059:;<=B)GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno"GHIKLJMNOQPRSTUVWXY[\Z]^_hige`badfcjklmnov~pqty}xz{w|urs      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh)_`RSTUVacNOPQiHIJKLMGdefghoopqrstuvwxyz{|}~nmljklmn^_`abcdefghikj]YZ[\b      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]WX^GHIJKLMNOPQRSTUVWXYZ[\]^ _`abcdefghijklmnoPpqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoSafe05JObtain set of intrinsics that are most closely aligned with given version.&name => (return-unit, parameter-units)wxyz{|}~wxyz{|}~xyz{|}~wwxyz{|}~ None 02569:;<=      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~{zxy|}~opqrstuvwmnklghijef^_`abcd\]TUVWXYZ[      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS         J     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     ~5 None/05LToriginal annotation@unique name for function/variable, after variable renaming phase8original name for function/variable found in source textbasic block graph5unique number for each block during dataflow analysis+The type of "transformBiM"-family functions*The type of "transformBi"-family functionsBasic block graph. Basic block;True iff the expression can be used with varName or srcNameBObtain either uniqueName or source name from an ExpValue variable.1Obtain the source name from an ExpValue variable.HGenerate an ExpValue variable with its source name == to its uniqueName.?Obtain either ProgramUnit uniqueName or whatever is in the AST.?Obtain either ProgramUnit sourceName or whatever is in the AST.NCreate analysis annotations for the program, saving the original annotations.RRemove analysis annotations from the program, restoring the original annotations.Return list of expressions used as the left-hand-side of assignment statements (including for-loops and function-calls by reference).SReturn list of expressions that are not "left-hand-side" of assignment statements.,Is this an expression capable of assignment?"Set of names found in an AST node.lInitiate (lazy) computation of all LHS variables for each node of the AST so that it may be accessed later.Set of names found in the parts of an AST that are the target of an assignment statement. allLhsVars :: (Annotated b, Data a, Data (b (Analysis a))) => b (Analysis a) -> [Name]ZSet of names found in the parts of an AST that are the target of an assignment statement.:Set of expressions used -- not defined -- by an AST-block.7Set of expression used -- not defined -- by a statement4Set of names used -- not defined -- by an AST-block.%Set of names defined by an AST-block.@9opqrstuvw9opqrstuvw+  None:T1A mapping of program unit names to bblock graphs.;Insert basic block graphs into each program unit's analysisVCreate a mapping of (non-module) program unit names to their associated bblock graph.Extract graph from SuperBBGr Extract entry map from SuperBBGr"Extract cluster map from SuperBBGr2Show a basic block graph in a somewhat decent way.,Show a basic block graph without the clutterShow a basic block supergraphFPick out and show the basic block graphs in the program file analysis.)Output a graph in the GraphViz DOT format.Output a supergraph in the GraphViz DOT format,Fold a function over the graph. Monadically.+Map a function over the graph. Monadically.Map a function over the  labels in a graph. Monadically.W      !"#$%&'()*+,-./0123456789:;<K      !"#$%&'()*+,-./0123456789:;< None05:LT5ACallMap : program unit name -> { name of function or subroutine } 7InductionVarMapByASTBlock : AST-block label -> { name } EMap of loop header nodes to the induction variables within that loop.LoopNodeMap : node -> { node }BackEdgeMap : node -> node#Represent "flows" between variablesoFlowsGraph : nodes as AST-block (numbered by label), edges showing which definitions contribute to which uses.UDMap : use -> { definition }DUMap : definition -> { use }-DefMap : variable name -> { AST-block label }BlockMap : AST-block label -> AST-block Each AST-block has been given a unique number label during analysis of basic blocks. The purpose of this map is to provide the ability to lookup AST-blocks by label.?OutF, a function that returns the out-dataflow for a given node=InF, a function that returns the in-dataflow for a given node=InOutMap : node -> (dataflow into node, dataflow out of node)>InOut : (dataflow into the bblock, dataflow out of the bblock)CAn OrderF is a function from graph to a specific ordering of nodes.-IDomMap : node -> immediate dominator of node#DomMap : node -> dominators of nodeCompute dominators of each bblock in the graph. Node A dominates node B when all paths from the start node of that program unit must pass through node A in order to reach node B. That will be represented as the relation (B, [A, ...]) in the DomMap.jCompute the immediate dominator of each bblock in the graph. The immediate dominator is, in a sense, the closest dominator of a node. Given nodes A and B, you can say that node A is immediately dominated by node B if there does not exist any node C such that: node A dominates node C and node C dominates node B.JThe postordering of a graph outputs the label after traversal of children. Reversed postordering.!JThe preordering of a graph outputs the label before traversal of children."Reversed preordering.#.Compute the set of nodes with no predecessors.$-Apply the iterative dataflow analysis method.=-Apply the iterative dataflow analysis method.%Build a BlockMap from the AST. This can only be performed after analyseBasicBlocks has operated, created basic blocks, and labeled all of the AST-blocks with unique numbers.&}Build a DefMap from the BlockMap. This allows us to quickly look up the AST-block labels that wrote into the given variable.'Dataflow analysis for live variables given basic block graph. Muchnick, p. 445: A variable is "live" at a particular program point if there is a path to the exit along which its value may be used before it is redefined. It is "dead" if there is no such path.>Iterate KILL" set through a single basic block.?Iterate GEN" set through a single basic block.@Iterate GENq set through a single basic block. attempt to make this faster using sets internally (no obvious speedup though)AKILL set for a single AST-block.BGEN set for a single AST-block.(aReaching definitions dataflow analysis. Reaching definitions are the set of variable-defining AST-block labels that may reach a program point. Suppose AST-block with label A defines a variable named v. Label A may reach another program point labeled P if there is at least one program path from label A to label P that does not redefine variable v.)hdef-use map: map AST-block labels of defining AST-blocks to the AST-blocks that may use the definition.*Invert the DUMap into a UDMap+nuse-def map: map AST-block labels of variable-using AST-blocks to the AST-blocks that define those variables.C$Convert a UD or DU Map into a graph.,Flows-To, analysis. Represent def-use map as a graph.-OCreate a map (A -> Bs) where A "flows" or contributes towards the variables Bs.DFinds the transitive closure of a directed graph. Given a graph G=(V,E), its transitive closure is the graph: G* = (V,E*) where E*={(i,j): i,j in V and there is a path from i to j in G}.Find the edges that 'loop back' in the graph; ones where the target node dominates the source node. If the backedges are viewed as (m -> n) then n is considered the  'loop-header'/For each loop in the program, find out which bblock nodes are part of the loop by looking through the backedges (m, n) where n is considered the  'loop-header', delete n from the map, and then do a reverse-depth-first traversal starting from m to find all the nodes of interest. Intersect this with the strongly-connected component containing m, in case of improper& graphs with weird control transfers.0nSimilar to loopNodes except it creates a map from loop-header to the set of loop nodes, for each loop-header.19The strongly connected component containing a given node.EBasic induction variables are induction variables that are the most easily derived from the syntactic structure of the program: for example, directly appearing in a Do-statement.2For each loop in the program, figure out the names of the induction variables: the variables that are used to represent the current iteration of the loop.3cGenerate an induction variable map that is indexed by the labels on AST-blocks within those loops.4^For every expression in a loop, try to derive its relationship to a basic induction variable.5.Show some information about dataflow analyses.67Create a call map showing the structure of the program.KFGHI      !"#$basic block graph'initialisation for in and out dataflowsordering function.compute the in-flow given an out-flow function.compute the out-flow given an in-flow functionfinal dataflow for each node=basic block graph'initialisation for in and out dataflowsordering function.compute the in-flow given an out-flow function.compute the out-flow given an in-flow functiondataflow steps%&'>?@AB(JK)*+C,result of reaching definitions-D./01E23LMNO4PQRST56UV1      !"#$%&'()*+,-./01234561 !"$5'(+)*,-%&6/.102 3 #4   EFGHI      !"#$=%&'>?@AB(JK)*+C,-D./01E23LMNO4PQRST56UV NoneLTBFAnnotate unique names for variable and function declarations and uses.C`Annotate unique names for variable and function declarations and uses. With external module map.DITake the unique name annotations and substitute them into the actual AST.E,Take a renamed program and undo the renames.5WXYZ[\]^_`aABCDEbcdefghijklmnopqrstuvwxyz{|}~ABCDEBCDEA.WXYZ[\]^_`aABCDEbcdefghijklmnopqrstuvwxyz{|}~NoneTH%Mapping of names to type information.IoAnnotate AST nodes with type information and also return a type environment mapping names to type information.JAnnotate AST nodes with type information and also return a type environment mapping names to type information; provided with a starting type environment.(HIJKHIJKIJKH#HIJKNone9;<=3MNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~MNOPQRSTUVWXYZ[\3RSTUQVWXYZOP~}|{[zyMNxwvutsrqponmlkjihgfedcba`_^]\1MNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~S7T7NoneNoneTNoneTNoneNone05LTA set of decoded mod files."The data stored in the "mod files"xMap of unique variable name to the unique name of the program unit where it was defined, and the corresponding SrcSpan.@Context of a declaration: the ProgramUnit where it was declared.(uniqName, srcName)(uniqName, srcName)1Standard ending of fortran-src-format "mod files"@Empty set of mod files. (future proof: may not always be a list)Starting point.Extracts the module map, declaration map and type analysis from an analysed and renamed ProgramFile, then inserts it into the ModFile.}Generate a fresh ModFile from the module map, declaration map and type analysis of a given analysed and renamed ProgramFile.lLooks up the raw "other data" that may be stored in a ModFile by applications that make use of fortran-src.sGet a list of the labels present in the "other data" of a ModFile. More of a meta-programming / debugging feature.Allows modification insertionmdeletion of "other data" that may be stored in a ModFile by applications that make use of fortran-src. See < for more information about the interface of this function.;Convert ModFile to a strict ByteString for writing to file.5Convert a strict ByteString to a ModFile, if possibleExtract the combined module map from a set of ModFiles. Useful for parsing a Fortran file in a large context of other modules.Extract the combined module map from a set of ModFiles. Useful for parsing a Fortran file in a large context of other modules.Extract the combined declaration map from a set of ModFiles. Useful for parsing a Fortran file in a large context of other modules.JGet the associated Fortran filename that was used to compile the ModFile.lCreate a map that links all unique variable/function names in the ModFiles to their corresponding filename.zExtract all module maps (name -> environment) by collecting all of the stored module maps within the PUModule annotation.VExtract map of declared variables with their associated program unit and source span."None   None /023459:;<=?@ABDFIJKNOQRT-      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~    )      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~    9 9 None /023459:;<=?@ABDFIJKNOQRT                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~   9  9 None /023459:;<=?@ABDFIJKNOQRT1       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 9  9 NonePDeduce the type of parser from the filename and parse the contents of the file.yDeduce the type of parser from the filename and parse the contents of the file, within the context of given "mod files". !"#$%&'()*+,,--./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTTUVWXXYZ[\]^__`abcddefghijklmnoppqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDDEFFGHIJKLMNOOPQRSTUUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST@ABCEFFGIHUJKVLMNUUVWXWXY=Z#[67:9<;458 )  \]^_`>?Z[\]^_`abcdefghijklmno{|}~pqrstuvwxyz{|}~9:;<=>?@ABCDJKGHILQPRSMT                                                                                                                                                    ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ] ^ _ ` a b c d e e f f g h i i j j k l m n o p q r s t t u v w x y z { | } ~                                                                                                                                                                   ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                                                                      ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                               ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < < = > ? @ A B C D E F G H I J " K L L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x yz{|}}MNQ~UV      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDE                  FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                                                                   ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H      !"#$%&'()*+,-./0123456789:;<=>?@ABCDE                   I J K L M N O PFGHIJKLMNO Q RPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                                                                   ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                      D  *fortran-src-0.2.0.0-IwNcjyoHVtfEVeYRtgdE3g%Language.Fortran.Util.SecondParameterLanguage.Fortran.Util.Position$Language.Fortran.Util.FirstParameterLanguage.Fortran.ParserMonadLanguage.Fortran.Parser.UtilsLanguage.Fortran.Lexer.FreeForm Language.Fortran.Lexer.FixedFormLanguage.Fortran.IntrinsicsLanguage.Fortran.ASTLanguage.Fortran.Analysis!Language.Fortran.Analysis.BBlocks"Language.Fortran.Analysis.DataFlow"Language.Fortran.Analysis.RenamingLanguage.Fortran.Analysis.TypesLanguage.Fortran.PrettyPrint.Language.Fortran.Transformation.TransformMonad7Language.Fortran.Transformation.Disambiguation.Function8Language.Fortran.Transformation.Disambiguation.Intrinsic(Language.Fortran.Transformation.GroupingLanguage.Fortran.Util.ModFileLanguage.Fortran.Transformer!Language.Fortran.Parser.Fortran66!Language.Fortran.Parser.Fortran77!Language.Fortran.Parser.Fortran90Language.Fortran.Parser.AnyData.Map.StrictalterSecondParametergetSecondParametersetSecondParameter$fParameterLeaf:*:$fParameterLeafM1$fGSecondParameter'K1e$fGSecondParameter'K1e0$fGSecondParameter':*:e$fGSecondParameter'M1e$fGSecondParameter:*:e$fGSecondParameter:+:e$fGSecondParameterM1e$fGSecondParameterK1eSpannedgetSpansetSpanSrcSpanPositionposAbsoluteOffset posColumnposLineLocgetPos initPositionlineColcolumnDistance lineDistance initSrcSpan$fSpannedSrcSpan $fOutSrcSpan $fShowSrcSpan$fBinarySrcSpan$fShowPosition$fBinaryPosition $fEqPosition $fOrdPosition$fDataPosition$fGenericPosition $fEqSrcSpan $fOrdSrcSpan $fDataSrcSpan$fGenericSrcSpanGFirstParametergetFirstParameter'setFirstParameter'FirstParametergetFirstParametersetFirstParameter$fGFirstParameterU1[]$fGFirstParameter:*:e$fGFirstParameter:+:e$fGFirstParameterM1e$fGFirstParameterK1e$fGFirstParameterK1e0TokeofTokenParseunParse LastToken getLastTokenParseErrorSimpleerrorPos errorFilenameerrorMsg ParseResultParseOk ParseFailed ParseErrorerrPos errLastToken errFilenameerrMsg ParseState psAlexInputpsParanthesesCount psVersion psFilename psContextContextConStartConData ConImplicit ConNamelist ConCommonParanthesesCountpcActual pcHasReached0FortranVersion Fortran66 Fortran77Fortran77Extended Fortran90 Fortran2003 Fortran2008tokenMsgfromParseResultUnsafe fromRightfromParseResult getVersionputAlexgetAlex topContext popContext pushContext getPosition getSrcSpangetParanthesesCountresetParincPardecPar throwIOerrorrunParserunParseUnsafe evalParse execParse collectTokenscollectTokensSafe$fMonadErrorParseErrorParse$fMonadStateParseStateParse$fApplicativeParse$fFunctorParse $fMonadParse$fShowParseErrorSimple$fExceptionParseError$fFunctorParseResult$fShowParseError$fShowFortranVersion$fOrdFortranVersion$fEqFortranVersion$fDataFortranVersion$fGenericFortranVersion$fShowParanthesesCount$fEqParanthesesCount $fShowContext $fEqContext$fShowParseStatereadReal readInteger AlexAccPredAlexAcc AlexAccNone AlexAccSkipAlexAccSkipPred AlexLastAccAlexNone AlexLastSkip AlexReturnAlexEOF AlexErrorAlexSkip AlexTokenAlexAddrAlexA# SpecifiesType isTypeSpecTokenTIdTCommentTStringTIntegerLiteral TRealLiteral TBozLiteralTCommaTComma2 TSemiColonTColon TDoubleColon TOpAssignTArrowTPercentTLeftPar TLeftPar2 TRightPar TLeftInitPar TRightInitPar TOpCustomTOpExpTOpPlusTOpMinusTStar TOpDivisionTSlashTOpOrTOpAndTOpNot TOpEquivalentTOpNotEquivalentTOpLTTOpLETOpEQTOpNETOpGTTOpGETLogicalLiteralTProgram TEndProgram TFunction TEndFunctionTResult TRecursive TSubroutineTEndSubroutine TBlockData TEndBlockDataTModule TEndModule TContainsTUseTOnly TInterface TEndInterfaceTModuleProcedure TAssignment TOperatorTCallTReturnTEntryTIncludeTPublicTPrivate TParameter TAllocatable TDimension TExternalTIntent TIntrinsic TOptionalTPointerTSaveTTargetTInTOutTInOutTData TNamelist TImplicit TEquivalenceTCommonTFormatTBlob TAllocate TDeallocateTNullifyTNoneTGotoTAssignTTo TContinueTStopTPauseTDoTEndDoTWhileTIfTThenTElseTElsifTEndIfTCase TSelectCase TEndSelectTDefaultTCycleTExitTForall TEndForallTWhere TElsewhere TEndWhereTTypeTEndType TSequenceTKindTLenTIntegerTRealTDoublePrecisionTLogical TCharacterTComplexTOpenTCloseTReadTWriteTPrint TBackspaceTRewindTInquireTEndfileTEndTNewlineTEOFMove ContinuationCharNewlineUser LexAction AlexInput aiSourceBytes aiPosition aiEndOffsetaiPreviousCharaiLexeme aiStartCodeaiPreviousTokenaiPreviousTokensInLine StartCodescActualscStatusStartCodeStatusReturnStableLexeme lexemeMatch lexemeStart lexemeEnd lexemeIsCmt alex_tab_size alex_base alex_table alex_check alex_deflt alex_acceptformatP followsDoP followsColonP selectorPifConditionEndPopPpartOfExpOrPointerAssignmentPprecedesDoubleColon attributePconstructNameP genericSpecPnotDefinedOperP typeSpecPresultPnotPrecedingDotPfollowsIntentPuseStPcaseStP assignStPprevTokenConstrnextTokenConstr seenConstr fillConstr adjustCommentleftParcommaslashOrDivisionaddSpanaddSpanAndMatch getLexeme putLexeme resetLexemegetMatchputMatchupdatePreviousTokenaddToPreviousTokensInLinecheckPreviousTokensInLine getLexemeSpan lexCharactertoSCstabiliseStartCodenormaliseStartCodeinvalidPositionisValidPosition initLexemevanillaAlexInput updateLexeme alexGetBytealexInputPrevChar currentCharadvanceWithoutContinuationisContinuationskipContinuationadvancelexerlexer'initParseStatecollectFreeTokensscCscIscNscT alex_action_0 alex_action_1 alex_action_3 alex_action_4 alex_action_5 alex_action_6 alex_action_7 alex_action_8 alex_action_9alex_action_10alex_action_11alex_action_12alex_action_13alex_action_14alex_action_15alex_action_16alex_action_17alex_action_18alex_action_19alex_action_20alex_action_21alex_action_22alex_action_23alex_action_24alex_action_25alex_action_26alex_action_27alex_action_28alex_action_29alex_action_30alex_action_31alex_action_32alex_action_33alex_action_34alex_action_35alex_action_36alex_action_37alex_action_38alex_action_39alex_action_40alex_action_41alex_action_42alex_action_43alex_action_44alex_action_45alex_action_46alex_action_47alex_action_48alex_action_49alex_action_50alex_action_51alex_action_52alex_action_53alex_action_54alex_action_55alex_action_56alex_action_57alex_action_58alex_action_59alex_action_60alex_action_61alex_action_62alex_action_63alex_action_64alex_action_65alex_action_66alex_action_67alex_action_68alex_action_69alex_action_70alex_action_71alex_action_72alex_action_73alex_action_74alex_action_75alex_action_76alex_action_77alex_action_78alex_action_79alex_action_80alex_action_81alex_action_82alex_action_83alex_action_84alex_action_85alex_action_86alex_action_87alex_action_88alex_action_89alex_action_90alex_action_91alex_action_92alex_action_93alex_action_94alex_action_95alex_action_96alex_action_97alex_action_98alex_action_99alex_action_100alex_action_101alex_action_102alex_action_103alex_action_104alex_action_105alex_action_106alex_action_107alex_action_108alex_action_109alex_action_110alex_action_111alex_action_112alex_action_113alex_action_114alex_action_115alex_action_116alex_action_117alex_action_118alex_action_119alex_action_120alex_action_121alex_action_122alex_action_123alex_action_124alex_action_125alex_action_126alex_action_127alex_action_128alex_action_129alex_action_130alex_action_131alex_action_132alex_action_133alex_action_134alex_action_135alex_action_136alex_action_137alex_action_138alex_action_139alex_action_140alex_action_141alex_action_142alex_action_143alex_action_144alex_action_145alex_action_146alex_action_147alex_action_148alex_action_149alex_action_150alex_action_151alex_action_152alex_action_153alex_action_154alex_action_155alexIndexInt16OffAddralexIndexInt32OffAddr quickIndexalexScan alexScanUser alex_scan_tkn alexAndPredalexPrevCharIsalexPrevCharMatchesalexPrevCharIsOneOfalexRightContext$fFunctorAlexLastAcc$fSpecifiesType[]$fSpecifiesTypeToken $fTokToken$fSpannedToken$fFirstParameterTokenSrcSpan$fLastTokenAlexInputToken$fLocAlexInput$fSpannedLexeme $fShowLexeme$fShowStartCodeStatus$fShowStartCode $fEqToken $fShowToken $fDataToken$fGenericToken$fShowAlexInputaiBytesaiWhiteSensitiveCharCount TLeftArrayParTRightArrayParTDotTEndifTDoWhileTInt TExponentTBool THollerithTLabelformatExtendedPimplicitType77PimplicitTypeExtendedP implicitStP extendedIdPidPdoP equalFollowsPcommentPwithinLabelColsPatColP exponentP fortran66P fortran77P extended77PincWhiteSensitiveCharCountresetWhiteSensitiveCharCount lexComment strAutomaton lexHollerithlexNmaybeToKeyword typeSCChange takeNCharsskip utf8EncodecollectFixedTokenscollectFixedTokensSafeiifkeywordst alex_action_2 $fOrdTokenIntrinsicsTable IntrinsicTypeITReal ITInteger ITComplexITDouble ITLogicalITParamgetVersionIntrinsicsgetIntrinsicReturnTypegetIntrinsicDefsUsesgetIntrinsicNames isIntrinsic allIntrinsics$fShowIntrinsicType$fEqIntrinsicType$fOrdIntrinsicType$fGenericIntrinsicType$fShowIntrinsicsEntry$fEqIntrinsicsEntry$fOrdIntrinsicsEntry$fGenericIntrinsicsEntryNamedgetNamesetNameProgramUnitNameNamelessBlockDataNamelessComment NamelessMain Conditioned getConditionLabeledgetLabel getLastLabelsetLabel SpannedPair getTransSpan Annotated getAnnotation setAnnotationmodifyAnnotationBinaryOpAddition SubtractionMultiplicationDivisionExponentiation ConcatenationGTGTELTLTEEQNEOrAnd Equivalent NotEquivalent BinCustomUnaryOpPlusMinusNotUnCustomDimensionDeclarator Declarator DeclVariable DeclArrayValue ValIntegerValReal ValComplex ValString ValHollerith ValVariable ValIntrinsic ValLogical ValOperator ValAssignmentValTypeValStarIndexIxSingleIxRange ExpressionExpValue ExpBinaryExpUnary ExpSubscript ExpDataRefExpFunctionCall ExpImpliedDoExpInitialisation ExpReturnSpecDoSpecification FormatItem FIFormatList FIHollerith FIDelimiterFIFieldDescriptorDEFGFIFieldDescriptorAILFIBlankDescriptor FIScaleFactor DataGroupNamelist CommonGroup ImpElement ImpCharacterImpRangeImpList ControlPairIntentInOutInOut Attribute AttrParameter AttrPublic AttrPrivateAttrAllocatable AttrDimension AttrExternal AttrIntent AttrIntrinsic AttrOptional AttrPointerAttrSave AttrTargetArgumentUse UseRenameUseIDOnly Exclusive Permissive ForallHeader Statement StDeclarationStIntent StOptionalStPublic StPrivateStSave StDimension StAllocatable StPointerStTargetStData StNamelist StParameter StExternal StIntrinsicStCommon StEquivalenceStFormat StImplicitStEntry StIncludeStDo StDoWhileStEnddoStCycleStExit StIfLogicalStIfArithmeticStIfThenStElseStElsifStEndif StSelectCaseStCase StEndcase StFunctionStExpressionAssignStPointerAssign StLabelAssignStGotoUnconditionalStGotoAssignedStGotoComputedStCallStReturn StContinueStStopStPauseStReadStRead2StWriteStPrintStOpenStClose StInquireStRewind StRewind2 StBackspace StBackspace2 StEndfile StEndfile2 StAllocate StNullify StDeallocateStWhereStWhereConstruct StElsewhere StEndWhereStUseStModuleProcedureStType StEndType StSequenceStForall StFormatBogusBlock BlStatementBlIfBlCaseBlDo BlDoWhile BlInterface BlCommentComment ProgramUnitPUMainPUModule PUSubroutine PUFunction PUBlockData PUComment ProgramFileMetaInfo miVersion miFilenameSelectorTypeSpecBaseType TypeIntegerTypeRealTypeDoublePrecision TypeComplexTypeDoubleComplex TypeLogical TypeCharacter TypeCustomAListNameA0fromListfromReverseListaConsaReverseaStripaMap pfSetFilename pfGetFilenameprogramUnitBodyupdateProgramUnitBodyprogramUnitSubprogramssetInitialisationnonExecutableStatementexecutableStatementexecutableStatementBlocknonExecutableStatementBlock$fOutForallHeader $fOutBinaryOp $fOutUnaryOp$fOutControlPair$fOutDimensionDeclarator$fOutDeclarator $fOutBaseType $fOutSelector $fOutTypeSpec $fOutValue$fOutDoSpecification $fOutIndex$fOutExpression$fOutFormatItem $fOutNamelist$fOutDataGroup$fOutCommonGroup $fOutBlock $fOutComment$fOutImpElement $fOutImpList $fOutIntent$fOutAttribute$fOutUse $fOutArgument $fOutOnly$fOutStatement $fOutAList$fOutProgramUnit$fOutProgramFile $fOutMetaInfo$fOutFortranVersion$fNamedProgramUnit$fBinaryProgramUnitName$fConditionedStatement$fConditionedBlock$fLabeledBlock$fSpannedPaira[]$fSpannedPaira[]0$fSpannedPairab $fSpanned(,,)$fSpanned(,,)0$fSpanned(,,)1$fSpanned(,,)2 $fSpanned(,) $fSpanned(,)0 $fSpanned(,)1 $fSpanned[]$fSpannedControlPair$fSpannedDimensionDeclarator$fSpannedDeclarator$fSpannedDoSpecification$fSpannedIndex$fSpannedExpression$fSpannedFormatItem$fSpannedNamelist$fSpannedDataGroup$fSpannedCommonGroup$fSpannedBlock$fSpannedImpElement$fSpannedImpList$fSpannedSelector$fSpannedTypeSpec$fSpannedAttribute $fSpannedUse$fSpannedArgument$fSpannedStatement$fSpannedProgramUnit$fSpannedAList$fAnnotatedControlPair$fAnnotatedDimensionDeclarator$fAnnotatedDeclarator$fAnnotatedDoSpecification$fAnnotatedIndex$fAnnotatedExpression$fAnnotatedFormatItem$fAnnotatedNamelist$fAnnotatedDataGroup$fAnnotatedCommonGroup$fAnnotatedImpElement$fAnnotatedImpList$fAnnotatedAttribute$fAnnotatedSelector$fAnnotatedTypeSpec$fAnnotatedUse$fAnnotatedArgument$fAnnotatedStatement$fAnnotatedBlock$fAnnotatedProgramUnit$fAnnotatedAList#$fSecondParameterControlPairSrcSpan+$fSecondParameterDimensionDeclaratorSrcSpan"$fSecondParameterDeclaratorSrcSpan'$fSecondParameterDoSpecificationSrcSpan$fSecondParameterIndexSrcSpan"$fSecondParameterExpressionSrcSpan"$fSecondParameterFormatItemSrcSpan $fSecondParameterNamelistSrcSpan!$fSecondParameterDataGroupSrcSpan#$fSecondParameterCommonGroupSrcSpan"$fSecondParameterImpElementSrcSpan$fSecondParameterImpListSrcSpan!$fSecondParameterAttributeSrcSpan $fSecondParameterSelectorSrcSpan $fSecondParameterTypeSpecSrcSpan$fSecondParameterUseSrcSpan $fSecondParameterArgumentSrcSpan!$fSecondParameterStatementSrcSpan$fSecondParameterBlockSrcSpan#$fSecondParameterProgramUnitSrcSpan$fSecondParameterAListSrcSpan$fFirstParameterControlPaira$$fFirstParameterDimensionDeclaratora$fFirstParameterDeclaratora $fFirstParameterDoSpecificationa$fFirstParameterIndexa$fFirstParameterExpressiona$fFirstParameterFormatItema$fFirstParameterNamelista$fFirstParameterDataGroupa$fFirstParameterCommonGroupa$fFirstParameterImpElementa$fFirstParameterImpLista$fFirstParameterAttributea$fFirstParameterSelectora$fFirstParameterTypeSpeca$fFirstParameterUsea$fFirstParameterArgumenta$fFirstParameterStatementa$fFirstParameterBlocka$fFirstParameterProgramUnita$fFirstParameterALista$fBinaryBaseType$fFunctorAList $fEqAList $fShowAList $fDataAList$fGenericAList $fOrdBaseType $fEqBaseType$fShowBaseType$fDataBaseType$fGenericBaseType $fEqMetaInfo$fShowMetaInfo$fDataMetaInfo$fGenericMetaInfo $fEqComment $fShowComment $fDataComment$fGenericComment$fFunctorComment$fEqOnly $fShowOnly $fDataOnly $fGenericOnly $fEqIntent $fShowIntent $fDataIntent$fGenericIntent$fEqImpElement$fShowImpElement$fDataImpElement$fGenericImpElement$fFunctorImpElement $fEqUnaryOp $fShowUnaryOp $fDataUnaryOp$fGenericUnaryOp $fEqBinaryOp$fShowBinaryOp$fDataBinaryOp$fGenericBinaryOp$fEqExpression$fShowExpression$fDataExpression$fGenericExpression$fFunctorExpression $fEqValue $fShowValue $fDataValue$fGenericValue$fFunctorValue $fEqIndex $fShowIndex $fDataIndex$fGenericIndex$fFunctorIndex$fEqDoSpecification$fShowDoSpecification$fDataDoSpecification$fGenericDoSpecification$fFunctorDoSpecification $fEqStatement$fShowStatement$fDataStatement$fGenericStatement$fFunctorStatement$fEqDeclarator$fShowDeclarator$fDataDeclarator$fGenericDeclarator$fFunctorDeclarator$fEqDimensionDeclarator$fShowDimensionDeclarator$fDataDimensionDeclarator$fGenericDimensionDeclarator$fFunctorDimensionDeclarator$fEqFormatItem$fShowFormatItem$fDataFormatItem$fGenericFormatItem$fFunctorFormatItem $fEqDataGroup$fShowDataGroup$fDataDataGroup$fGenericDataGroup$fFunctorDataGroup $fEqNamelist$fShowNamelist$fDataNamelist$fGenericNamelist$fFunctorNamelist$fEqCommonGroup$fShowCommonGroup$fDataCommonGroup$fGenericCommonGroup$fFunctorCommonGroup $fEqImpList $fShowImpList $fDataImpList$fGenericImpList$fFunctorImpList $fEqTypeSpec$fShowTypeSpec$fDataTypeSpec$fGenericTypeSpec$fFunctorTypeSpec $fEqSelector$fShowSelector$fDataSelector$fGenericSelector$fFunctorSelector$fEqControlPair$fShowControlPair$fDataControlPair$fGenericControlPair$fFunctorControlPair $fEqAttribute$fShowAttribute$fDataAttribute$fGenericAttribute$fFunctorAttribute $fEqArgument$fShowArgument$fDataArgument$fGenericArgument$fFunctorArgument$fEqUse $fShowUse $fDataUse $fGenericUse $fFunctorUse$fEqForallHeader$fShowForallHeader$fDataForallHeader$fGenericForallHeader$fFunctorForallHeader$fEqProgramUnit$fShowProgramUnit$fDataProgramUnit$fGenericProgramUnit$fFunctorProgramUnit $fEqBlock $fShowBlock $fDataBlock$fGenericBlock$fFunctorBlock$fEqProgramFile$fShowProgramFile$fDataProgramFile$fGenericProgramFile$fFunctorProgramFile$fOrdProgramUnitName$fEqProgramUnitName$fShowProgramUnitName$fDataProgramUnitName$fGenericProgramUnitNameAnalysisprevAnnotation uniqueName sourceNamebBlocksinsLabel moduleEnvidType allLhsVarsAnnIDTypeidVTypeidCType ConstructType CTFunction CTSubroutine CTVariableCTArray CTParameter CTIntrinsicModEnvNameType NTSubprogram NTVariable NTIntrinsic TransFuncM TransFuncBBGrBBisNamedExpressionvarNamesrcNamegenVarpuName puSrcName initAnalysis stripAnalysislhsExprsrhsExprsisLExprallVarsanalyseAllLhsVarsanalyseAllLhsVars1 allLhsVars blockRhsExprs blockVarUses blockVarDefs $fOutAnalysis$fBinaryIDType $fOutIDType$fBinaryConstructType$fOutConstructType $fOutNameType$fBinaryNameType$fDataGr$fShowNameType $fEqNameType $fOrdNameType$fDataNameType$fGenericNameType$fOrdConstructType$fEqConstructType$fShowConstructType$fDataConstructType$fGenericConstructType $fOrdIDType $fEqIDType $fShowIDType $fDataIDType$fGenericIDType$fDataAnalysis$fShowAnalysis $fEqAnalysis$fGenericAnalysis SuperBBGr BBlockMapanalyseBBlocks genBBlockMapsuperBBGrGraphsuperBBGrEntriessuperBBGrClusters genSuperBBGrfindLabeledBBlockshowBBGrshowAnalysedBBGr showSuperBBGr showBBlocks bbgrToDOTsuperBBGrToDOTCallMapDerivedInductionMap InductionExprIETopIELinearIEBottomInductionVarMapByASTBlockInductionVarMap LoopNodeMap BackEdgeMap VarFlowsMap FlowsGraphUDMapDUMapDefMapBlockMapOutFInFInOutMapOrderFIDomMapDomMap dominators iDominators postOrder revPostOrderpreOrder revPreOrder noPredNodesdataFlowSolver genBlockMap genDefMapliveVariableAnalysisreachingDefinitionsgenDUMap duMapToUdMapgenUDMapgenFlowsToGraphgenVarFlowsToMapgenBackEdgeMap loopNodesgenLoopNodeMapsccWithgenInductionVarMapgenInductionVarMapByASTBlockgenDerivedInductionMap showDataFlow genCallMap$fShowInductionExpr$fEqInductionExpr$fOrdInductionExpr$fGenericInductionExpr$fDataInductionExpr $fShowIEFlow $fEqIEFlow $fOrdIEFlow$fGenericIEFlow $fDataIEFlow ModuleMapanalyseRenamesanalyseRenamesWithModuleMaprenameunrename$fShowRenameState$fEqRenameStateTypeEnv analyseTypesanalyseTypesWithEnvextractTypeEnv$fShowInferStatePrettypprint'IndentablePrettypprint IndentationtooOldnewlineincIndentationindentoverlay fixedFormpprintAndRenderendGencommaSep$fPrettyBinaryOp$fPrettyUnaryOp$fPrettyDimensionDeclarator$fPrettyDeclarator $fPrettyValue$fFirstParameterValue[] $fPrettyIndex$fPrettyExpression$fPrettyImpElement$fPrettyDataGroup$fPrettyNamelist$fPrettyCommonGroup$fPrettyImpList$fPrettyControlPair$fPrettyDoSpecification$fPrettyFormatItem$fPrettyIntent$fPrettyAttribute$fPrettyArgument $fPrettyUse $fPrettyOnly$fPrettyStatement$fPrettySelector$fPrettyTypeSpec$fPrettyBaseType $fPrettyAList $fPretty[] $fPrettyMaybe$fIndentablePrettyBlock$fIndentablePretty[]$fIndentablePrettyProgramUnit$fIndentablePretty[]0$fIndentablePrettyProgramFile$fIndentablePrettyMaybe$fIndentablePrettya Transform runTransformgetProgramFileputProgramFilemodifyProgramFiledisambiguateFunction$fIndexedExpression$fIndexedArgumentdisambiguateIntrinsicgroupIfgroupDogroupLabeledDo groupCaseModFilesModFileDeclMap DeclContextDCMain DCBlockDataDCModule DCFunction DCSubroutine modFileSuffix emptyModFiles emptyModFile regenModFile genModFilelookupModFileDatagetLabelsModFileDataalterModFileData encodeModFile decodeModFilecombinedModuleMapcombinedTypeEnvcombinedDeclMapmoduleFilenamegenUniqNameToFilenameMapextractModuleMapextractDeclMap$fBinaryModFile$fBinaryDeclContext$fOrdDeclContext$fEqDeclContext$fShowDeclContext$fDataDeclContext$fGenericDeclContext $fOrdModFile $fEqModFile $fShowModFile $fDataModFile$fGenericModFileTransformationGroupIf GroupCaseGroupDoGroupLabeledDoDisambiguateFunctionDisambiguateIntrinsictransformWithModFiles transform$fEqTransformationstatementParserexpressionParserfortran66Parserfortran66ParserWithModFilesfortran77Parserfortran77ParserWithModFilesextended77Parserextended77ParserWithModFilesfortran90Parserfortran90ParserWithModFilesParserWithModFilesParser deduceVersionparserVersionsparserWithModFilesVersionsafter fortranParserfortranParserWithModFiles ParameterLeafisLeafGSecondParameter'getSecondParameter''setSecondParameter''GSecondParametergetSecondParameter'setSecondParameter' fixAtDot' combineAtDotfixAtDot breakAtDot replaceDwithE readsToMaybefortran77intrinsicsIntrinsicsEntryIEntryiType iDefsUsesmkIEntryfortranVersionIntrinsicsfunc1func2func3funcNfortran90intrinisicscomputeAllLhsVarsstatementRhsExprs analysis0allLhsVarsDoSpecdummyArg intrinsicDefs intrinsicUsesintrinsicDefsUsesufoldM'gmapM'nmapM'"fgl-5.5.3.1-6LdDICWL6Ze3rGuqhKrQHQData.Graph.Inductive.GraphNodeELabelNLabelPUName SuperEdge SuperNodegraphclustersentriesBBlockerBBStateBBSbbGraphcurBBcurNodelabelMapnumstempNumsnewEdges labelBlockslabelBlocksInBBGrlabelWithinBlocks labelExprslabelExprsInBBGrtoBBlocksPerPU insEntryEdgesgenInOutAssignmentsdelInvalidExits insExitEdgesexamineFinalBlockisFinalBlockCtrlXfer lookupBBlockdelEmptyBBlocksdelUnreachablebbs0 execBBlocker processBlocksperBlock perDoBlock processLabel insertLabel addToBBlock closeBBlock closeBBlock_ genBBlock createEdgesgengenTempstripNestedBlocksprocessFunctionCallsprocessFunctionCall extractExp fromJustMsg bbgrToDOT' showPUName showBlockshowAttrshowLab showValueshowExpr showIndexshowUOpshowOpshowType showBaseTypeshowDeclshowDim aIntercalate noSrcSpandataFlowSolver' bblockKill bblockGen bblockGenFast blockKillblockGen mapToGraphtcbasicInductionVarsIEFlow ieFlowVars ieFlowExprsrdBblockGenKillrdDefsieFlowInsertVarieFlowInsertExpr emptyIEFlow joinIEFlowsderivedInductionExpraddInductionExprsnegInductionExprmulInductionExprsjoinInductionExprsconverge RenamerFunc RenameState langVersion intrinsics scopeStackuniqNumsenviron moduleMapRenamerNameMap programUnit declarator expression renameState0 runRenamer getUniqNumuniquifyisModuleisUseStatementisUseID initialEnvgetScope getScopes pushScopepopScope addModEnvgetEnvgetEnvs getFromEnv getFromEnvsgetFromEnvsWithTypegetFromEnvsIfSubprogramaddToEnv addUnique addUnique_maybeAddUnique setUniqueName setSourceName renameSubPUsskimProgramUnitsrenameGenericDecls renameExpDeclrenameDeclDeclsrenameEntryPointDeclrenameEntryPointResultDecl renameExp renameBlockUniFunc TransType InferFunc InferState entryPointsInfer annotateTypes intrinsicsExpintrinsicsHelper statementannotateExpressionannotateProgramUnit inferState0runInfer recordType recordMType recordCTyperecordBaseTyperecordEntryPointgetRecordedType setIDType getIDTypesetCTypeallProgramUnitsallDeclarators allStatementsallExpressionsisAttrDimensionisAttrParameter isIxSingleTransformationStatetransProgramFileIndexed fromIndexdisambiguateFunctionStatementsdisambiguateFunctionCallsindiciesRangeFree genericGroupgroupIf' decomposeIfcollectNonConditionalBlocksgroupDo'collectNonDoBlocksgroupLabeledDo'collectNonLabeledDoBlocks compLabel groupCase' decomposeCasecollectNonCaseBlockscontainsGroupsapplyGroupingToSubblocks mfFilename mfModuleMap mfDeclMap mfTypeEnv mfOtherDatatransformationMapping HappyAddrHappyA#HappyStk Happy_IntList HappyConsHappyAny HappyAbsSynhappyIn6 happyOut6happyIn7 happyOut7happyIn8 happyOut8happyIn9 happyOut9 happyIn10 happyOut10 happyIn11 happyOut11 happyIn12 happyOut12 happyIn13 happyOut13 happyIn14 happyOut14 happyIn15 happyOut15 happyIn16 happyOut16 happyIn17 happyOut17 happyIn18 happyOut18 happyIn19 happyOut19 happyIn20 happyOut20 happyIn21 happyOut21 happyIn22 happyOut22 happyIn23 happyOut23 happyIn24 happyOut24 happyIn25 happyOut25 happyIn26 happyOut26 happyIn27 happyOut27 happyIn28 happyOut28 happyIn29 happyOut29 happyIn30 happyOut30 happyIn31 happyOut31 happyIn32 happyOut32 happyIn33 happyOut33 happyIn34 happyOut34 happyIn35 happyOut35 happyIn36 happyOut36 happyIn37 happyOut37 happyIn38 happyOut38 happyIn39 happyOut39 happyIn40 happyOut40 happyIn41 happyOut41 happyIn42 happyOut42 happyIn43 happyOut43 happyIn44 happyOut44 happyIn45 happyOut45 happyIn46 happyOut46 happyIn47 happyOut47 happyIn48 happyOut48 happyIn49 happyOut49 happyIn50 happyOut50 happyIn51 happyOut51 happyIn52 happyOut52 happyIn53 happyOut53 happyIn54 happyOut54 happyIn55 happyOut55 happyIn56 happyOut56 happyIn57 happyOut57 happyIn58 happyOut58 happyIn59 happyOut59 happyIn60 happyOut60 happyIn61 happyOut61 happyIn62 happyOut62 happyIn63 happyOut63 happyIn64 happyOut64 happyIn65 happyOut65 happyIn66 happyOut66 happyIn67 happyOut67 happyIn68 happyOut68 happyIn69 happyOut69 happyIn70 happyOut70 happyIn71 happyOut71 happyIn72 happyOut72 happyIn73 happyOut73 happyIn74 happyOut74 happyIn75 happyOut75 happyInTok happyOutTokhappyActOffsetshappyGotoOffsetshappyDefActions happyCheck happyTablehappyReduceArr happy_n_termshappy_n_nonterms happyReduce_3happyReduction_3 happyReduce_4happyReduction_4 happyReduce_5happyReduction_5 happyReduce_6happyReduction_6 happyReduce_7happyReduction_7 happyReduce_8happyReduction_8 happyReduce_9happyReduction_9happyReduce_10happyReduction_10happyReduce_11happyReduction_11happyReduce_12happyReduction_12happyReduce_13happyReduction_13happyReduce_14happyReduction_14happyReduce_15happyReduction_15happyReduce_16happyReduction_16happyReduce_17happyReduction_17happyReduce_18happyReduction_18happyReduce_19happyReduction_19happyReduce_20happyReduction_20happyReduce_21happyReduction_21happyReduce_22happyReduction_22happyReduce_23happyReduction_23happyReduce_24happyReduction_24happyReduce_25happyReduction_25happyReduce_26happyReduction_26happyReduce_27happyReduction_27happyReduce_28happyReduction_28happyReduce_29happyReduction_29happyReduce_30happyReduction_30happyReduce_31happyReduction_31happyReduce_32happyReduction_32happyReduce_33happyReduction_33happyReduce_34happyReduction_34happyReduce_35happyReduction_35happyReduce_36happyReduction_36happyReduce_37happyReduction_37happyReduce_38happyReduction_38happyReduce_39happyReduction_39happyReduce_40happyReduction_40happyReduce_41happyReduction_41happyReduce_42happyReduction_42happyReduce_43happyReduction_43happyReduce_44happyReduction_44happyReduce_45happyReduction_45happyReduce_46happyReduction_46happyReduce_47happyReduction_47happyReduce_48happyReduction_48happyReduce_49happyReduction_49happyReduce_50happyReduction_50happyReduce_51happyReduction_51happyReduce_52happyReduction_52happyReduce_53happyReduction_53happyReduce_54happyReduction_54happyReduce_55happyReduction_55happyReduce_56happyReduction_56happyReduce_57happyReduction_57happyReduce_58happyReduction_58happyReduce_59happyReduction_59happyReduce_60happyReduction_60happyReduce_61happyReduction_61happyReduce_62happyReduction_62happyReduce_63happyReduction_63happyReduce_64happyReduction_64happyReduce_65happyReduction_65happyReduce_66happyReduction_66happyReduce_67happyReduction_67happyReduce_68happyReduction_68happyReduce_69happyReduction_69happyReduce_70happyReduction_70happyReduce_71happyReduction_71happyReduce_72happyReduction_72happyReduce_73happyReduction_73happyReduce_74happyReduction_74happyReduce_75happyReduction_75happyReduce_76happyReduction_76happyReduce_77happyReduction_77happyReduce_78happyReduction_78happyReduce_79happyReduction_79happyReduce_80happyReduction_80happyReduce_81happyReduction_81happyReduce_82happyReduction_82happyReduce_83happyReduction_83happyReduce_84happyReduction_84happyReduce_85happyReduction_85happyReduce_86happyReduction_86happyReduce_87happyReduction_87happyReduce_88happyReduction_88happyReduce_89happyReduction_89happyReduce_90happyReduction_90happyReduce_91happyReduction_91happyReduce_92happyReduction_92happyReduce_93happyReduction_93happyReduce_94happyReduction_94happyReduce_95happyReduction_95happyReduce_96happyReduction_96happyReduce_97happyReduction_97happyReduce_98happyReduction_98happyReduce_99happyReduction_99happyReduce_100happyReduction_100happyReduce_101happyReduction_101happyReduce_102happyReduction_102happyReduce_103happyReduction_103happyReduce_104happyReduction_104happyReduce_105happyReduction_105happyReduce_106happyReduction_106happyReduce_107happyReduction_107happyReduce_108happyReduction_108happyReduce_109happyReduction_109happyReduce_110happyReduction_110happyReduce_111happyReduction_111happyReduce_112happyReduction_112happyReduce_113happyReduction_113happyReduce_114happyReduction_114happyReduce_115happyReduction_115happyReduce_116happyReduction_116happyReduce_117happyReduction_117happyReduce_118happyReduction_118happyReduce_119happyReduction_119happyReduce_120happyReduction_120happyReduce_121happyReduction_121happyReduce_122happyReduction_122happyReduce_123happyReduction_123happyReduce_124happyReduction_124happyReduce_125happyReduction_125happyReduce_126happyReduction_126happyReduce_127happyReduction_127happyReduce_128happyReduction_128happyReduce_129happyReduction_129happyReduce_130happyReduction_130happyReduce_131happyReduction_131happyReduce_132happyReduction_132happyReduce_133happyReduction_133happyReduce_134happyReduction_134happyReduce_135happyReduction_135happyReduce_136happyReduction_136happyReduce_137happyReduction_137happyReduce_138happyReduction_138happyReduce_139happyReduction_139happyReduce_140happyReduction_140happyReduce_141happyReduction_141happyReduce_142happyReduction_142happyReduce_143happyReduction_143happyReduce_144happyReduction_144happyReduce_145happyReduction_145happyReduce_146happyReduction_146happyReduce_147happyReduction_147happyReduce_148happyReduction_148happyReduce_149happyReduction_149happyReduce_150happyReduction_150happyReduce_151happyReduction_151happyReduce_152happyReduction_152happyReduce_153happyReduction_153happyReduce_154happyReduction_154happyReduce_155happyReduction_155happyReduce_156happyReduction_156happyReduce_157happyReduction_157happyReduce_158happyReduction_158happyReduce_159happyReduction_159happyReduce_160happyReduction_160happyReduce_161happyReduction_161happyReduce_162happyReduction_162happyReduce_163happyReduction_163happyReduce_164happyReduction_164happyReduce_165happyReduction_165happyReduce_166happyReduction_166happyReduce_167happyReduction_167happyReduce_168happyReduction_168happyReduce_169happyReduction_169happyReduce_170happyReduction_170happyReduce_171happyReduction_171happyReduce_172happyReduction_172happyReduce_173happyReduction_173happyReduce_174happyReduction_174happyReduce_175happyReduction_175happyReduce_176happyReduction_176happyReduce_177happyReduction_177happyReduce_178happyReduction_178happyReduce_179happyReduction_179happyReduce_180happyReduction_180happyReduce_181happyReduction_181happyReduce_182happyReduction_182 happyNewToken happyError_ happyThen happyReturn happyThen1 happyReturn1 happyError' programParserhappySeqmakeRealtransformations66 parseErrorconvCmtsconvCmt happyParse happyAccept happyDoActionindexShortOffAddr happyShifthappySpecReduce_0happySpecReduce_1happySpecReduce_2happySpecReduce_3 happyReducehappyMonadReducehappyMonad2Reduce happyDrop happyDropStk happyGoto happyFail notHappyAtAll happyTcHack happyDoSeq happyDontSeq happyIn76 happyOut76 happyIn77 happyOut77 happyIn78 happyOut78 happyIn79 happyOut79 happyIn80 happyOut80 happyIn81 happyOut81 happyIn82 happyOut82 happyIn83 happyOut83 happyIn84 happyOut84 happyIn85 happyOut85 happyIn86 happyOut86 happyIn87 happyOut87 happyIn88 happyOut88 happyIn89 happyOut89 happyIn90 happyOut90 happyIn91 happyOut91 happyIn92 happyOut92 happyIn93 happyOut93 happyIn94 happyOut94 happyIn95 happyOut95 happyIn96 happyOut96 happyIn97 happyOut97 happyIn98 happyOut98 happyIn99 happyOut99 happyIn100 happyOut100 happyIn101 happyOut101 happyIn102 happyOut102 happyIn103 happyOut103happyReduce_183happyReduction_183happyReduce_184happyReduction_184happyReduce_185happyReduction_185happyReduce_186happyReduction_186happyReduce_187happyReduction_187happyReduce_188happyReduction_188happyReduce_189happyReduction_189happyReduce_190happyReduction_190happyReduce_191happyReduction_191happyReduce_192happyReduction_192happyReduce_193happyReduction_193happyReduce_194happyReduction_194happyReduce_195happyReduction_195happyReduce_196happyReduction_196happyReduce_197happyReduction_197happyReduce_198happyReduction_198happyReduce_199happyReduction_199happyReduce_200happyReduction_200happyReduce_201happyReduction_201happyReduce_202happyReduction_202happyReduce_203happyReduction_203happyReduce_204happyReduction_204happyReduce_205happyReduction_205happyReduce_206happyReduction_206happyReduce_207happyReduction_207happyReduce_208happyReduction_208happyReduce_209happyReduction_209happyReduce_210happyReduction_210happyReduce_211happyReduction_211happyReduce_212happyReduction_212happyReduce_213happyReduction_213happyReduce_214happyReduction_214happyReduce_215happyReduction_215happyReduce_216happyReduction_216happyReduce_217happyReduction_217happyReduce_218happyReduction_218happyReduce_219happyReduction_219happyReduce_220happyReduction_220happyReduce_221happyReduction_221happyReduce_222happyReduction_222happyReduce_223happyReduction_223happyReduce_224happyReduction_224happyReduce_225happyReduction_225happyReduce_226happyReduction_226happyReduce_227happyReduction_227happyReduce_228happyReduction_228happyReduce_229happyReduction_229happyReduce_230happyReduction_230happyReduce_231happyReduction_231happyReduce_232happyReduction_232happyReduce_233happyReduction_233happyReduce_234happyReduction_234happyReduce_235happyReduction_235happyReduce_236happyReduction_236happyReduce_237happyReduction_237happyReduce_238happyReduction_238happyReduce_239happyReduction_239happyReduce_240happyReduction_240happyReduce_241happyReduction_241happyReduce_242happyReduction_242happyReduce_243happyReduction_243happyReduce_244happyReduction_244happyReduce_245happyReduction_245happyReduce_246happyReduction_246happyReduce_247happyReduction_247happyReduce_248happyReduction_248happyReduce_249happyReduction_249happyReduce_250happyReduction_250happyReduce_251happyReduction_251happyReduce_252happyReduction_252happyReduce_253happyReduction_253happyReduce_254happyReduction_254happyReduce_255happyReduction_255happyReduce_256happyReduction_256happyReduce_257happyReduction_257happyReduce_258happyReduction_258happyReduce_259happyReduction_259happyReduce_260happyReduction_260happyReduce_261happyReduction_261happyReduce_262happyReduction_262happyReduce_263happyReduction_263happyReduce_264happyReduction_264happyReduce_265happyReduction_265happyReduce_266happyReduction_266happyReduce_267happyReduction_267happyReduce_268happyReduction_268happyReduce_269happyReduction_269happyReduce_270happyReduction_270happyReduce_271happyReduction_271happyReduce_272happyReduction_272happyReduce_273happyReduction_273happyReduce_274happyReduction_274happyReduce_275happyReduction_275happyReduce_276happyReduction_276happyReduce_277happyReduction_277happyReduce_278happyReduction_278happyReduce_279happyReduction_279happyReduce_280happyReduction_280happyReduce_281happyReduction_281happyReduce_282happyReduction_282happyReduce_283happyReduction_283happyReduce_284happyReduction_284happyReduce_285happyReduction_285happyReduce_286happyReduction_286happyReduce_287happyReduction_287happyReduce_288happyReduction_288happyReduce_289happyReduction_289happyReduce_290happyReduction_290happyReduce_291happyReduction_291happyReduce_292happyReduction_292happyReduce_293happyReduction_293happyReduce_294happyReduction_294happyReduce_295happyReduction_295happyReduce_296happyReduction_296happyReduce_297happyReduction_297happyReduce_298happyReduction_298happyReduce_299happyReduction_299happyReduce_300happyReduction_300happyReduce_301happyReduction_301happyReduce_302happyReduction_302happyReduce_303happyReduction_303happyReduce_304happyReduction_304happyReduce_305happyReduction_305happyReduce_306happyReduction_306happyReduce_307happyReduction_307happyReduce_308happyReduction_308happyReduce_309happyReduction_309happyReduce_310happyReduction_310happyReduce_311happyReduction_311happyReduce_312happyReduction_312happyReduce_313happyReduction_313happyReduce_314happyReduction_314happyReduce_315happyReduction_315happyReduce_316happyReduction_316happyReduce_317happyReduction_317happyReduce_318happyReduction_318happyReduce_319happyReduction_319happyReduce_320happyReduction_320happyReduce_321happyReduction_321happyReduce_322happyReduction_322happyReduce_323happyReduction_323happyReduce_324happyReduction_324happyReduce_325happyReduction_325happyReduce_326happyReduction_326happyReduce_327happyReduction_327happyReduce_328happyReduction_328happyReduce_329happyReduction_329happyReduce_330happyReduction_330happyReduce_331happyReduction_331happyReduce_332happyReduction_332happyReduce_333happyReduction_333happyReduce_334happyReduction_334happyReduce_335happyReduction_335parsetransformations77transformations77ExtendedhappyIn5 happyOut5 happyIn104 happyOut104 happyIn105 happyOut105 happyIn106 happyOut106 happyIn107 happyOut107 happyReduce_2happyReduction_2happyReduce_336happyReduction_336happyReduce_337happyReduction_337happyReduce_338happyReduction_338happyReduce_339happyReduction_339happyReduce_340happyReduction_340happyReduce_341happyReduction_341happyReduce_342happyReduction_342happyReduce_343happyReduction_343happyReduce_344happyReduction_344happyReduce_345happyReduction_345happyReduce_346happyReduction_346happyReduce_347happyReduction_347happyReduce_348happyReduction_348happyReduce_349happyReduction_349happyReduce_350happyReduction_350happyReduce_351happyReduction_351happyReduce_352happyReduction_352happyReduce_353happyReduction_353happyReduce_354happyReduction_354happyReduce_355happyReduction_355happyReduce_356happyReduction_356happyReduce_357happyReduction_357happyReduce_358happyReduction_358happyReduce_359happyReduction_359happyReduce_360happyReduction_360happyReduce_361happyReduction_361happyReduce_362happyReduction_362happyReduce_363happyReduction_363happyReduce_364happyReduction_364happyReduce_365happyReduction_365happyReduce_366happyReduction_366happyReduce_367happyReduction_367happyReduce_368happyReduction_368happyReduce_369happyReduction_369happyReduce_370happyReduction_370happyReduce_371happyReduction_371happyReduce_372happyReduction_372happyReduce_373happyReduction_373happyReduce_374happyReduction_374happyReduce_375happyReduction_375happyReduce_376happyReduction_376happyReduce_377happyReduction_377happyReduce_378happyReduction_378happyReduce_379happyReduction_379happyReduce_380happyReduction_380happyReduce_381happyReduction_381happyReduce_382happyReduction_382happyReduce_383happyReduction_383happyReduce_384happyReduction_384happyReduce_385happyReduction_385happyReduce_386happyReduction_386happyReduce_387happyReduction_387happyReduce_388happyReduction_388happyReduce_389happyReduction_389happyReduce_390happyReduction_390happyReduce_391happyReduction_391happyReduce_392happyReduction_392happyReduce_393happyReduction_393happyReduce_394happyReduction_394happyReduce_395happyReduction_395happyReduce_396happyReduction_396happyReduce_397happyReduction_397happyReduce_398happyReduction_398happyReduce_399happyReduction_399happyReduce_400happyReduction_400happyReduce_401happyReduction_401happyReduce_402happyReduction_402happyReduce_403happyReduction_403happyReduce_404happyReduction_404happyReduce_405happyReduction_405happyReduce_406happyReduction_406happyReduce_407happyReduction_407 unitNameChecktransformations90