fdoc

typeentity_t

A file, program unit, procedure, type, variable or the like. Which components apply depends on kind.

Components

NameTypeAttributesDefaultDescription
abstractlogical.false.

an abstract interface block

ancestor_idinteger0

the ancestor module, once found

attribstype(string_t)allocatabledimension(:)

its attributes

bound_tointeger0

a type that this procedure is bound to, once found

call_idsintegerallocatabledimension(:)

the procedures called, once found

child_permissioncharacter(len=:)allocatable

permission of what is declared from here on

childrenintegerallocatabledimension(:)

the entities directly inside this one, in order

constructorinteger0

the procedure or interface named like it, once found

deferredlogical.false.

has the deferred attribute

dimensioncharacter(len=:)allocatable

its dimensions, if declared after the name

displaytype(string_t)allocatabledimension(:)

the permissions shown inside this entity

doctype(string_t)allocatabledimension(:)

its documentation, without metadata

extends_idinteger0

the parent type, once found

external_urlcharacter(len=:)allocatable

where it is documented, if in another project

fileinteger0

the file containing this entity

genericlogical.false.

a generic interface or binding

htmlcharacter(len=:)allocatable

its documentation as HTML

ifaceintegerIFACE_NONE

one of the IFACE_* constants

implementsinteger0

the interface of a separate module procedure, once found

in_containslogical.false.

true after its contains statement

inherit_stateinteger0

0 not done, 1 in progress, 2 done

initialcharacter(len=:)allocatable

its initial value, if any

intentcharacter(len=:)allocatable

in, out, inout or empty

internalslogical.false.

the proc_internals setting that applies here

is_modulelogical.false.

has the module prefix

kindintegerE_NONE

one of the E_* constants

lineinteger0

line of its first statement in the text parsed

metatype(meta_t)allocatabledimension(:)

the metadata of its documentation

moretype(entity_more_t)pointer=> null()

what only some entities have

namecharacter(len=:)allocatable

its name as written

optionallogical.false.

has the optional attribute

pagecharacter(len=:)allocatable

the name of its page, unique in its directory, if it has one

parameterlogical.false.

has the parameter attribute

parentinteger0

the entity containing this one

parent_submodule_idinteger0

the parent submodule, once found

permissioncharacter(len=:)allocatable

public, private or protected

pointslogical.false.

initialized with =>

prototype(string_t)allocatabledimension(:)

the type or interface name, and its arguments

proto_idinteger0

the interface or type it refers to, once found

resultinteger0

the result variable of a function

sequencelogical.false.

has a sequence statement

source_firstinteger0

where its code starts in the text of its file, if found

source_lastinteger0

where its code ends

source_textcharacter(len=:)allocatable

the text of a file, as it is

strlencharacter(len=:)allocatable

its character length, if any

summarycharacter(len=:)allocatable

its summary as HTML

type_kindcharacter(len=:)allocatable

its kind, if any

var_roleintegerVAR_PLAIN

one of the VAR_* constants

vartypecharacter(len=:)allocatable

its type keyword, in lowercase

visiblelogical.true.

false once pruned

Source

Show the code
type, public :: entity_t
    !! A file, program unit, procedure, type, variable or the like. Which components apply depends on
    !! `kind`.
    type(entity_more_t), pointer :: more => null()  !! what only some entities have
    integer :: kind = E_NONE                    !! one of the `E_*` constants
    integer :: parent = 0                       !! the entity containing this one
    integer :: file = 0                         !! the file containing this entity
    integer :: line = 0                         !! line of its first statement in the text parsed
    character(len=:), allocatable :: name       !! its name as written
    character(len=:), allocatable :: permission !! `public`, `private` or `protected`
    type(string_t), allocatable :: doc(:)       !! its documentation, without metadata
    type(meta_t), allocatable :: meta(:)        !! the metadata of its documentation
    character(len=:), allocatable :: html       !! its documentation as HTML
    character(len=:), allocatable :: summary    !! its summary as HTML
    type(string_t), allocatable :: attribs(:)   !! its attributes
    integer, allocatable :: children(:)         !! the entities directly inside this one, in order
    logical :: visible = .true.                 !! false once pruned
    type(string_t), allocatable :: display(:)   !! the permissions shown inside this entity
    logical :: internals = .false.              !! the `proc_internals` setting that applies here
    character(len=:), allocatable :: external_url  !! where it is documented, if in another project
    character(len=:), allocatable :: page       !! the name of its page, unique in its directory, if it has one
    character(len=:), allocatable :: source_text !! the text of a file, as it is
    integer :: source_first = 0                 !! where its code starts in the text of its file, if found
    integer :: source_last = 0                  !! where its code ends

    ! containers
    logical :: in_contains = .false.            !! true after its `contains` statement
    character(len=:), allocatable :: child_permission  !! permission of what is declared from here on

    ! submodules
    integer :: ancestor_id = 0                  !! the ancestor module, once found
    integer :: parent_submodule_id = 0          !! the parent submodule, once found

    ! procedures
    integer :: result = 0                       !! the result variable of a function
    logical :: is_module = .false.              !! has the `module` prefix
    integer :: iface = IFACE_NONE               !! one of the `IFACE_*` constants
    integer, allocatable :: call_ids(:)         !! the procedures called, once found
    integer :: implements = 0                   !! the interface of a separate module procedure, once found
    integer :: bound_to = 0                     !! a type that this procedure is bound to, once found

    ! interfaces
    logical :: abstract = .false.               !! an `abstract interface` block
    logical :: generic = .false.                !! a generic interface or binding

    ! types
    logical :: sequence = .false.               !! has a `sequence` statement
    integer :: extends_id = 0                   !! the parent type, once found
    integer :: constructor = 0                  !! the procedure or interface named like it, once found
    integer :: inherit_state = 0                !! 0 not done, 1 in progress, 2 done

    ! bound procedures
    logical :: deferred = .false.               !! has the `deferred` attribute
    integer :: proto_id = 0                     !! the interface or type it refers to, once found

    ! variables
    integer :: var_role = VAR_PLAIN             !! one of the `VAR_*` constants
    character(len=:), allocatable :: vartype    !! its type keyword, in lowercase
    character(len=:), allocatable :: type_kind  !! its kind, if any
    character(len=:), allocatable :: strlen     !! its character length, if any
    type(string_t), allocatable :: proto(:)     !! the type or interface name, and its arguments
    character(len=:), allocatable :: intent     !! `in`, `out`, `inout` or empty
    logical :: optional = .false.               !! has the `optional` attribute
    logical :: parameter = .false.              !! has the `parameter` attribute
    logical :: points = .false.                 !! initialized with `=>`
    character(len=:), allocatable :: initial    !! its initial value, if any
    character(len=:), allocatable :: dimension  !! its dimensions, if declared after the name
end type entity_t

Graphs

Inherits

entity_tentity_more_tmoremeta_tmetause_tusesattribute_tpending, parametersrename_trenames

Inherited by