typeentity_t
A file, program unit, procedure, type, variable or the like. Which components apply depends on
kind.
Components
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
| abstract | logical | .false. | an | |
| ancestor_id | integer | 0 | the ancestor module, once found | |
| attribs | type(string_t) | allocatabledimension(:) | its attributes | |
| bound_to | integer | 0 | a type that this procedure is bound to, once found | |
| call_ids | integer | allocatabledimension(:) | the procedures called, once found | |
| child_permission | character(len=:) | allocatable | permission of what is declared from here on | |
| children | integer | allocatabledimension(:) | the entities directly inside this one, in order | |
| constructor | integer | 0 | the procedure or interface named like it, once found | |
| deferred | logical | .false. | has the | |
| dimension | character(len=:) | allocatable | its dimensions, if declared after the name | |
| display | type(string_t) | allocatabledimension(:) | the permissions shown inside this entity | |
| doc | type(string_t) | allocatabledimension(:) | its documentation, without metadata | |
| extends_id | integer | 0 | the parent type, once found | |
| external_url | character(len=:) | allocatable | where it is documented, if in another project | |
| file | integer | 0 | the file containing this entity | |
| generic | logical | .false. | a generic interface or binding | |
| html | character(len=:) | allocatable | its documentation as HTML | |
| iface | integer | IFACE_NONE | one of the | |
| implements | integer | 0 | the interface of a separate module procedure, once found | |
| in_contains | logical | .false. | true after its | |
| inherit_state | integer | 0 | 0 not done, 1 in progress, 2 done | |
| initial | character(len=:) | allocatable | its initial value, if any | |
| intent | character(len=:) | allocatable |
| |
| internals | logical | .false. | the | |
| is_module | logical | .false. | has the | |
| kind | integer | E_NONE | one of the | |
| line | integer | 0 | line of its first statement in the text parsed | |
| meta | type(meta_t) | allocatabledimension(:) | the metadata of its documentation | |
| more | type(entity_more_t) | pointer | => null() | what only some entities have |
| name | character(len=:) | allocatable | its name as written | |
| optional | logical | .false. | has the | |
| page | character(len=:) | allocatable | the name of its page, unique in its directory, if it has one | |
| parameter | logical | .false. | has the | |
| parent | integer | 0 | the entity containing this one | |
| parent_submodule_id | integer | 0 | the parent submodule, once found | |
| permission | character(len=:) | allocatable |
| |
| points | logical | .false. | initialized with | |
| proto | type(string_t) | allocatabledimension(:) | the type or interface name, and its arguments | |
| proto_id | integer | 0 | the interface or type it refers to, once found | |
| result | integer | 0 | the result variable of a function | |
| sequence | logical | .false. | has a | |
| source_first | integer | 0 | where its code starts in the text of its file, if found | |
| source_last | integer | 0 | where its code ends | |
| source_text | character(len=:) | allocatable | the text of a file, as it is | |
| strlen | character(len=:) | allocatable | its character length, if any | |
| summary | character(len=:) | allocatable | its summary as HTML | |
| type_kind | character(len=:) | allocatable | its kind, if any | |
| var_role | integer | VAR_PLAIN | one of the | |
| vartype | character(len=:) | allocatable | its type keyword, in lowercase | |
| visible | logical | .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