packages feed

fortran-vars-0.1.0: app/Main.hs

module Main where

import           Language.Fortran.Extras.Encoding
                                                ( commonEncode )
import           Language.Fortran.Extras
                                                ( withProgramAnalysis )
import           Language.Fortran.Vars          ( programFileModel )

import qualified Data.ByteString.Lazy.Char8    as LB

import           Control.Monad                  ( unless )
import qualified Data.Map                      as M
                                                ( null )

programDesc, programHeader :: String
programDesc =
  "Generate symbol table and storage table from the AST of FORTRAN source"
programHeader = programDesc

main :: IO ()
main = withProgramAnalysis programDesc programHeader $ \pf -> do
    -- <String, (<String, Entry>,<String, MemoryBlock>)>
  let pfm = programFileModel pf
  unless (M.null pfm) $ LB.putStrLn $ commonEncode pfm