Memberikan lexing/parsing dan analisis statis awal kode FORTRAN. Standar Fortran berikut ditutupi:
Parsing dapat dikonfigurasi, dan Anda dapat memilih standar FORTRAN untuk menargetkan, termasuk mode khusus yang diperluas untuk Fortran 77 yang tidak standar.
Termasuk aliran data dan analisis blok dasar, renamer, dan analisis tipe.
Paket ini terutama mengekspor perpustakaan Haskell, tetapi juga membangun yang dapat dieksekusi yang dapat digunakan untuk pengujian dan debugging. Misalnya penggunaan, lihat Proyek Camfort, yang menggunakan Fortran-SRC sebagai ujung depannya.
Kami menyediakan binari prebuilt untuk Windows, Mac dan Linux.
Tambahkan fortran-src sebagai ketergantungan dalam proyek Haskell Anda. Kami berada di peretasan dan juga di stackage.
Anda juga dapat meminta fortran-src pada baris perintah.
Untuk fitur grafik output, penggunaan yang dimaksud adalah untuk menyalakannya ke dot -Tpdf dan mengarahkan kembali ke file PDF. Perintah dot adalah bagian dari proyek GraphViz, silakan lihat manual mereka untuk banyak opsi lain yang dapat dieksplorasi untuk tujuan visualisasi.
Usage: fortran-src [OPTION...] <file>
--version show fortran-src version
-v VERSION, -F VERSION --fortranVersion=VERSION Fortran version to use, format: Fortran[66/77/77Legacy/77Extended/90]
-a ACTION --action=ACTION choose the action, possible values: lex|parse
-t --typecheck parse and run typechecker
-R --rename parse and rename variables
-B --bblocks analyse basic blocks
-S --supergraph analyse super graph of basic blocks
-r --reprint Parse and output using pretty printer
--split-long when using pretty printer, split long lines via continuations
--dot output graphs in GraphViz DOT format
--dump-mod-file dump the information contained within mod files
-C[CPP-OPTS] --cpp[=CPP-OPTS] run the C Pre Processor on the Fortran files first
-I DIR --include-dir=DIR directory to search for precompiled 'mod files'
-c --summarise, --compile-mod build an .fsmod file from the input
-o FILE --output-file=FILE name of output file (e.g. name of generated fsmod file)
--make-mods, --make determine dependency order of modules and automatically build .fsmod files
--show-make-graph dump a graph showing the build structure of modules
--show-make-list dump a list of files in build dependency order (topological sort from the dependency graph)
--show-block-numbers[=LINE-NUM] Show the corresponding AST-block identifier number next to every line of code.
--show-flows-to=AST-BLOCK-ID dump a graph showing flows-to information from the given AST-block ID; prefix with 's' for supergraph
--show-flows-from=AST-BLOCK-ID dump a graph showing flows-from information from the given AST-block ID; prefix with 's' for supergraph
Jika Anda tidak melewati bendera --fortranVersion , versi akan ditebak dari nama file:
*.f diuraikan dengan sintaks FORTRAN 77 yang diperluas.*.f90 diuraikan dengan sintaks FORTRAN 90 (dan masing -masing untuk *.f2003 / *.f03 , *.f2008 / *.f08 ).*.f . Anda akan memerlukan file header perpustakaan GMP Plus: di banyak platform, ini akan melalui paket libgmp-dev .
Dependensi perpustakaan Haskell tercantum dalam package.yaml . Fortran-SRC mendukung bangunan dengan tumpukan atau komplotan rahasia.
Fortran-SRC mendukung GHC 9.0 melalui GHC 9.4 . Kami secara teratur menguji setidaknya GHC minimum dan maksimum yang didukung. Rilis sebelum/lebih baru dari yang mungkin memiliki masalah. Kami menyambut perbaikan yang akan memungkinkan kami mendukung berbagai kompiler yang lebih luas.
Anda mungkin membutuhkan setidaknya 3 GIB memori untuk membangun Fortran-SRC.
Untuk menginstal GHC dan membangun alat, kami sangat merekomendasikan GHCUP.
Ketika terbaru direkomendasikan digunakan, itu berarti versi terbaru dari alat yang recommended oleh tag GHCUP. Ini terkadang tertinggal di balik versi latest . Dengan GHCUP diinstal, jalankan ghcup list untuk pemahaman yang lebih baik.
Berikut ini adalah panduan umum untuk setiap OS yang menyediakan alat yang relevan. Jika Anda mengalami masalah, pertimbangkan untuk memeriksa file alur kerja CI di .github/workflows .
Kami mendukung versi Stack terbaru yang direkomendasikan (per 2021-09-17, Stack 2.7). Umumnya, setiap tumpukan 2.x harus bekerja. (Stack 1.x dapat bekerja dengan pergantian kecil - Anda mungkin harus mengunduh resolver secara manual.)
stack build
Untuk cangkang interaktif:
stack build
stack ghci
Perhatikan bahwa menjalankan stack ghci sebelum menjalankan stack build tidak akan berfungsi dengan baik, karena stack ghci tidak menjalankan alat build seperti Alex dan Happy. Jadi modul parser tidak akan dibangun, dan Anda akan menerima kesalahan setelah membangun modul lain. Anda dapat menipu sedikit dan menjalankan stack build sampai Anda melihat Building library for [...] (= preprocessing telah selesai), kemudian tekan <Ctrl-C> untuk menghentikan pembuatan dan menjalankan stack ghci seperti biasa.
Kami mendukung versi Cabal terbaru yang direkomendasikan (per 2021-09-17, Cabal 3.4)
cabal build
Tes unit disimpan dalam test . Jalankan dengan stack test atau cabal test .
Fortran-SRC tersedia di peretasan dan stackage, jadi untuk proyek Cabal atau Stack Anda hanya perlu menambahkan fortran-src ke dependensi proyek Anda.
Jika Anda memerlukan versi spesifik FORTRAN-SRC dalam pengaturan tumpukan, Anda dapat memasukkan referensi peretasan ke dalam stack.yaml menggunakan extra-deps , seperti:
resolver : ...
...
extra-deps :
- ...
- fortran-src-$VERSIONJika Anda memiliki Cabal yang dikonfigurasi dengan benar, Anda harus dapat menginstal Fortran-SRC dari peretasan:
cabal install fortran-src
Kami menyediakan binari prebuilt untuk beberapa platform: lihat tab Rilis.
Jika tidak, Anda dapat membangun dari sumber dan menggunakan perintah kenyamanan seperti cabal run , stack run . Lihat #Building untuk detailnya.
Kami menyambut laporan bug, perbaikan, dan proposal fitur. Tambahkan masalah atau buat permintaan tarik pada repositori GitHub.
Anda mungkin dapat menemukan pengelola di jaringan IRC Libera.Chat. Check in #fortran-src dan #camfort. Kalau tidak, Anda bisa berhubungan dengan salah satu tim di halaman tim Camfort - atau membuat masalah yang menggambarkan masalah Anda dan kami akan melihatnya.
Lihat doc/maintainers.md di Camfort/Camfort.