modulefdoc_parser
Turning a source text into entities: fformat finds the statements and their structure, and this module reads the declarations and doc comments.
Doc comments are attached to code statements. A statement's documentation is any predocmark
block before it, then its inline comments, then the docmark lines after it.
Each file is parsed into a list of its own, in parallel with others, so nothing here calls a
function returning a deferred-length string (see example/slen_race.f90).
Uses
- ffmt_tokens
- ffmt_statements
- ffmt_source
- ffmt_structure
- ffmt_constructs
- fdoc_util
- fdoc_model
- fdoc_settings
- fdoc_project_file
- fdoc_decl
- fdoc_intrinsics
Graphs
Uses
Used by
Variables
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
| ATTRIBUTE_WORDS | character(len=*) | privateparameterdimension(*) | [character(len=12)::'asynchronous','allocatable','data','dimension','external','optional','parameter','pointer','private','protected','public','save','target','value','volatile'] | |
| MAX_DEPTH | integer | privateparameter | 256 | |
| META_KEYS | character(len=*) | privateparameter | 'authorcategorycopy_subdirdatedeprecateddisplaygraphgraph_maxdepthgraph_maxnodeslicensenum_lines'//'ordered_subpageproc_internalssincesourcesummarytitleversion' |
Types
association_tprivate
A name given by an associate statement.
doc_lines_tprivate
Documentation lines of one item.
Functions
chain_endprivate
The last name of the component chain starting at token j, or 0.
chain_startprivate
The first token of the component chain ending at name j.
first_word_ofpureprivate
The first blank-separated word of text, after any leading blanks.
has_markpureprivate
True if comment c starts with ! and doc marker mark.
implicit_variableprivate
Add a variable for name, implicitly typed.
inherited_permissionpureprivate
The permission of what is declared now in id.
is_attribute_statementprivate
True if low starts with a word that gives attributes to names listed after it.
is_executableprivate
True if statement v can have procedure references: not a declaration.
leading_textpureprivate
The first code tokens of v from token j, in lowercase and joined by blanks, up to about 80
characters.
nearest_callerpureprivate
The innermost entity on stack that can call procedures, or 0 if there is none or a declaration
scope such as a type is inside it.
permission_lengthpureprivate
Length of the result of inherited_permission.
replace_commaspureprivate
attr with a blank after each comma.
strip_trailingpureprivate
s without trailing whitespace.
word_lengthpureprivate
Length of the first blank-separated word of text.
Subroutines
add_callprivate
Add the reference ending at name j to e%more%calls, unless it is intrinsic or already there.
apply_attributesprivate
Apply statements such as public :: x to the entities they name.
apply_oneprivate
Apply attribute value, from a statement in unit u, to entity e.
attach_argumentsprivate
Connect the dummy arguments and result of a procedure with their declarations.
close_interfaceprivate
Finish an interface block. All but generic interfaces dissolve, leaving their bodies in the unit around them.
collect_docsprivate
Find the documentation of each code statement.
doxygen_metaprivate
If line is a doxygen command, blank it and add it to moved as a metadata line.
doxygen_paramsprivate
Move doxygen @param name text lines from procedure id to the variables they describe.
inherit_displayprivate
Copy the display settings that apply to id from its parent, and apply its own metadata.
mark_common_membersprivate
Mark the variables of unit id named in its common blocks.
open_procedureprivate
Create the entity for a subroutine or function statement.
open_unitprivate
Create the entity for the statement opening construct construct, if it has one.
parse_file
Parse source text of file path into list, whose first entity is the file.
parse_statementprivate
Read a statement that opens nothing, if it declares anything.
read_associationsprivate
Add the names of an associate statement to associations.
read_attribute_statementprivate
Read a statement such as public :: x, keeping what it says until the unit is finished.
read_bindingprivate
Read a type-bound procedure or generic statement.
read_commonprivate
Read a common statement, adding a common block entity for each block it names.
read_declarationprivate
Read a variable declaration, adding a variable for each name.
read_module_proceduresprivate
Read a module procedure or procedure statement in an interface.
set_docprivate
Set the documentation and metadata of e from its doc lines.
statement_callsprivate
Add the procedures that a statement refers to to e%more%calls.
statement_textprivate
The code of statement item: its tokens as written, without comments and continuation marks.
Continuation lines are joined as FORD joins them.