forcompile Module


Used by

  • module~~forcompile~~UsedByGraph module~forcompile forcompile program~test_1 test_1 program~test_1->module~forcompile program~test_2 test_2 program~test_2->module~forcompile program~test_3 test_3 program~test_3->module~forcompile program~test_4 test_4 program~test_4->module~forcompile program~test_5 test_5 program~test_5->module~forcompile program~test_6 test_6 program~test_6->module~forcompile program~test_7 test_7 program~test_7->module~forcompile program~test_8 test_8 program~test_8->module~forcompile

Contents


Derived Types

type, private ::  compilerOptions

Components

Type Visibility Attributes Name Initial
logical, public :: skipAsm = .false.
logical, public :: executorRequest = .false.

Type-Bound Procedures

procedure , public , :: set_skipAsm Subroutine
procedure , public , :: set_executorRequest Subroutine

type, private ::  filters

Components

Type Visibility Attributes Name Initial
logical, public :: binary = .false.
logical, public :: binaryObject = .false.
logical, public :: commentOnly = .false.
logical, public :: demangle = .false.
logical, public :: directives = .false.
logical, public :: execute = .false.
logical, public :: intel = .false.
logical, public :: labels = .false.
logical, public :: libraryCode = .false.
logical, public :: trim = .false.
logical, public :: debugCalls = .false.

Type-Bound Procedures

procedure , public , :: set_binary Subroutine
procedure , public , :: set_binaryObject Subroutine
procedure , public , :: set_commentOnly Subroutine
procedure , public , :: set_demangle Subroutine
procedure , public , :: set_directives Subroutine
procedure , public , :: set_execute Subroutine
procedure , public , :: set_intel Subroutine
procedure , public , :: set_labels Subroutine
procedure , public , :: set_libraryCode Subroutine
procedure , public , :: set_trim Subroutine
procedure , public , :: set_debugCalls Subroutine

type, private ::  tools

Components

Type Visibility Attributes Name Initial
character(len=1024), public :: id_args(2)

type, private ::  libraries

Components

Type Visibility Attributes Name Initial
character(len=1024), public :: id_version(2)

type, private ::  options

Components

Type Visibility Attributes Name Initial
character(len=:), public, allocatable :: userArguments
type(compilerOptions), public :: compilerOptions
type(filters), public :: filters
type(tools), public, allocatable :: tools(:)
type(libraries), public, allocatable :: libraries(:)

Type-Bound Procedures

procedure , public , :: set_userArguments Subroutine
procedure , public , :: set_compilerOptions Subroutine
procedure , public , :: set_filters Subroutine
procedure , public , :: set_tools Subroutine
procedure , public , :: set_libraries Subroutine
procedure , private :: deallocate_userArguments Subroutine
procedure , private :: deallocate_tools Subroutine
procedure , private :: deallocate_libraries Subroutine
procedure , public , :: finalize => deallocate_options Subroutine

type, public ::  compiler_explorer

Components

Type Visibility Attributes Name Initial
character(len=19), public :: api_url = "https://godbolt.org"
character(len=:), public, allocatable :: compiler_id
character(len=:), public, allocatable :: source
character(len=:), public, allocatable :: lang
logical, public :: allowStoreCodeDebug
type(options), public :: options

Type-Bound Procedures

procedure , public , :: list_languages Subroutine
procedure , public , :: list_compilers Subroutine
procedure , public , :: list_libraries Subroutine
procedure , public , :: list_formatters Subroutine
procedure , public , :: set_compiler_id Subroutine
procedure , public , :: set_source Subroutine
procedure , public , :: set_lang Subroutine
procedure , public , :: set_allowStoreCodeDebug Subroutine
procedure , public , :: compile Subroutine
procedure , private :: deallocate_compiler_id Subroutine
procedure , private :: deallocate_source Subroutine
procedure , private :: deallocate_lang Subroutine
procedure , public , :: finalize => deallocate_comnpiler_explorer Subroutine

Subroutines

private pure elemental subroutine set_filters(this, binary, binaryObject, commentOnly, demangle, directives, execute, intel, labels, libraryCode, trim, debugCalls)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(options), intent(inout) :: this
logical, intent(in), optional :: binary
logical, intent(in), optional :: binaryObject
logical, intent(in), optional :: commentOnly
logical, intent(in), optional :: demangle
logical, intent(in), optional :: directives
logical, intent(in), optional :: execute
logical, intent(in), optional :: intel
logical, intent(in), optional :: labels
logical, intent(in), optional :: libraryCode
logical, intent(in), optional :: trim
logical, intent(in), optional :: debugCalls

private pure elemental subroutine set_compilerOptions(this, skipAsm, executorRequest)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(options), intent(inout) :: this
logical, intent(in), optional :: skipAsm
logical, intent(in), optional :: executorRequest

private pure elemental subroutine deallocate_options(this)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(options), intent(inout) :: this

private pure elemental subroutine deallocate_comnpiler_explorer(this)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(compiler_explorer), intent(inout) :: this

private pure elemental subroutine deallocate_userArguments(this)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(options), intent(inout) :: this

private pure elemental subroutine deallocate_tools(this)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(options), intent(inout) :: this

private pure elemental subroutine deallocate_libraries(this)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(options), intent(inout) :: this

private pure elemental subroutine deallocate_compiler_id(this)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(compiler_explorer), intent(inout) :: this

private pure elemental subroutine deallocate_source(this)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(compiler_explorer), intent(inout) :: this

private pure elemental subroutine deallocate_lang(this)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(compiler_explorer), intent(inout) :: this

private pure elemental subroutine set_source(this, source)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(compiler_explorer), intent(inout) :: this
character(len=*), intent(in) :: source

private pure elemental subroutine set_tools(this, id, args)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(options), intent(inout) :: this
character(len=*), intent(in) :: id
character(len=*), intent(in) :: args

private pure elemental subroutine set_libraries(this, id, version)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(options), intent(inout) :: this
character(len=*), intent(in) :: id
character(len=*), intent(in) :: version

private pure elemental subroutine set_binary(this, binary)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(filters), intent(inout) :: this
logical, intent(in) :: binary

private pure elemental subroutine set_binaryObject(this, binaryObject)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(filters), intent(inout) :: this
logical, intent(in) :: binaryObject

private pure elemental subroutine set_commentOnly(this, commentOnly)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(filters), intent(inout) :: this
logical, intent(in) :: commentOnly

private pure elemental subroutine set_demangle(this, demangle)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(filters), intent(inout) :: this
logical, intent(in) :: demangle

private pure elemental subroutine set_directives(this, directives)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(filters), intent(inout) :: this
logical, intent(in) :: directives

private pure elemental subroutine set_execute(this, execute)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(filters), intent(inout) :: this
logical, intent(in) :: execute

private pure elemental subroutine set_intel(this, intel)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(filters), intent(inout) :: this
logical, intent(in) :: intel

private pure elemental subroutine set_labels(this, labels)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(filters), intent(inout) :: this
logical, intent(in) :: labels

private pure elemental subroutine set_libraryCode(this, libraryCode)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(filters), intent(inout) :: this
logical, intent(in) :: libraryCode

private pure elemental subroutine set_trim(this, trim)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(filters), intent(inout) :: this
logical, intent(in) :: trim

private pure elemental subroutine set_debugCalls(this, debugCalls)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(filters), intent(inout) :: this
logical, intent(in) :: debugCalls

private pure elemental subroutine set_skipAsm(this, skipAsm)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(compilerOptions), intent(inout) :: this
logical, intent(in) :: skipAsm

private pure elemental subroutine set_executorRequest(this, executorRequest)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(compilerOptions), intent(inout) :: this
logical, intent(in) :: executorRequest

private pure elemental subroutine set_userArguments(this, userArguments)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(options), intent(inout) :: this
character(len=*), intent(in) :: userArguments

private pure elemental subroutine set_lang(this, lang)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(compiler_explorer), intent(inout) :: this
character(len=*), intent(in) :: lang

private pure elemental subroutine set_allowStoreCodeDebug(this, allowStoreCodeDebug)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(compiler_explorer), intent(inout) :: this
logical, intent(in) :: allowStoreCodeDebug

private pure elemental subroutine set_compiler_id(this, compiler_id)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(compiler_explorer), intent(inout) :: this
character(len=*), intent(in) :: compiler_id

private impure elemental subroutine compile(this)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(compiler_explorer), intent(inout) :: this

private subroutine list_languages(this)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(compiler_explorer), intent(inout) :: this

private subroutine list_compilers(this, language_id)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(compiler_explorer), intent(inout) :: this
character(len=*), intent(in), optional :: language_id

private subroutine list_libraries(this, language_id)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(compiler_explorer), intent(inout) :: this
character(len=*), intent(in), optional :: language_id

private subroutine list_formatters(this)

Author
Seyed Ali Ghasemi

Arguments

Type IntentOptional Attributes Name
class(compiler_explorer), intent(inout) :: this