fdoc

modulefdoc_project

The whole project: loads and parses the files, merges them into one list of entities, and connects the entities with each other.

Uses

Graphs

Uses

Used by

Types

project_t

The parsed project.

symbol_list_tprivate

Names, in the order they were added, with an index.

symbol_t

An entity under the name it is known by in some scope.

symbols_tprivate

The names a module makes public, by category.

Functions

copy_bindingprivate

integer function copy_binding(p, item, id) result(copy)

Add to type id a copy of generic binding item, returning the copy.

find_inpureprivate

pure integer function find_in(symbols, name)

The position of name in symbols, or 0.

find_moduleprivate

integer function find_module(p, name)

The position in p%modules of the module named name, or 0.

find_symbolrecursive

recursive integer function find_symbol(p, scope, name, category) result(id)

What name means in scope scope for category category (see in_category), or 0.

in_categorypureprivate

pure logical function in_category(e, category)

True if entity e declares a name of category category: 1 procedures, 2 abstract interfaces, 3 types, 4 variables.

is_program_unitpureprivate

pure logical function is_program_unit(kind)

True if entities of kind are program units. The permission of a module is what its members get by default, so display says nothing about whether the module itself is shown.

module_positionpureprivate

pure integer function module_position(p, id)

The position in p%modules of module entity id, or 0.

overridesprivate

logical function overrides(p, id, name)

True if type id declares a binding named name itself.

public_symbolpureprivate

pure integer function public_symbol(p, which, name, category) result(id)

The public entity of module which named name in category category, or 0.

public_symbols

type(symbol_t) function public_symbols(p, which, category) result(symbols)

The public names of module which in a category: 1 procedures, 2 abstract interfaces, 3 types, 4 variables.

Subroutines

add_external_modulesprivate

subroutine add_external_modules(p, s)

Add modules documented elsewhere: extra_mods, and the modules.json of external projects.

add_symbolprivate

subroutine add_symbol(list, name, id)

Add name for entity id to list, replacing any entity it has.

correlate

subroutine correlate(p, s)

Connect entities across files: the public names of each module, and what types inherit.

generic_bodiesprivate

subroutine generic_bodies(p, which, id)

Add the public bodies of the generic interfaces of module id.

import_namesprivate

subroutine import_names(p, which, used, spec)

Add to module which what it makes public of what use with spec imports from module used.

inheritrecursiveprivate

recursive subroutine inherit(p, id)

Work out what type id inherits, after its parent type.

load_external_projectprivate

subroutine load_external_project(p, s, url)

Add the modules in the modules.json of an external project at url, a path or a web address.

load_project_sources

subroutine load_project_sources(s, p, stat, errmsg)

Find, load and parse the source files, and merge the results into p.

merge_listprivate

subroutine merge_list(p, from)

Move the entities of from to the end of p%list, adjusting their indices.

prune

subroutine prune(p, s)

Hide what should not be displayed.

public_namesrecursiveprivate

recursive subroutine public_names(p, which)

Compute the public names of module which, after those of the modules it uses.

read_externalrecursiveprivate

recursive subroutine read_external(p, json, node, base, parent, id)

Add the entity described by node of an external modules.json, with those inside it.

read_sourceprivate

subroutine read_source(s, path, raw, text)

Read source file path, warning if that fails.

read_use_specprivate

subroutine read_use_spec(spec, only, renames)

Read what follows the module name in a use statement.

set_constructorprivate

subroutine set_constructor(p, id)

Give a procedure or interface named like type id, its constructor, the type's permission.