fdoc

Procedures

ProcedureLocationTypeDescription
acceptsfunction pure

True if c is of the category want of children_of.

addsubroutinepure

Append text to b.

add_bodysubroutine

Add a block to node, with condition condition.

add_callsubroutine

Add the reference ending at name j to e%more%calls, unless it is intrinsic or already there.

add_edgesubroutine

Add an edge to a description.

add_entrysubroutine

Set key in entries, replacing any entry it has.

add_external_modulessubroutine

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

add_intsubroutinerecursive

Write value, not negative, which may be too large for int_text.

add_intrinsic_modulessubroutine

Add the modules that come with compilers and common libraries to extra_mods.

add_js_textsubroutine

Append text for use in a JavaScript string in single quotes.

add_linkssubroutine

Add the links of entity id to node.

add_nodesubroutine

Add node id to a description.

add_statssubroutinepure

Add the counts of item to total.

add_symbolsubroutine

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

add_valuesubroutine

Add a value for key, whose position in meta%items is returned in current.

add_wordssubroutine

Write words as list items.

adjustl_textfunction pure

text without leading blanks.

admonition_blocksubroutinerecursive

An admonition: a line @note Type, then indented text.

admonition_linessubroutine

Turn @note blocks into a line @note Type followed by indented lines, ending at @endnote, a blank line, another admonition, or the end of the text.

admonition_startsubroutine

The admonition type that starts at line, or '', with where it is and what follows it.

anchorsubroutine

Write the anchor of entity id.

appendsubroutine

Put node at the end of the block being read.

apply_argssubroutine

Apply command line options to the settings.

apply_attributessubroutine

Apply statements such as public :: x to the entities they name.

apply_onesubroutine

Apply attribute value, from a statement in unit u, to entity e.

apply_tablesubroutine

Apply the keys of TOML table as options.

apply_toml_stringsubroutine

Apply --config options: TOML with ; between lines.

argument_attributessubroutine

Write the attributes of argument e.

argument_namesubroutine

The name of argument id.

argument_tablesubroutine

Write a table of dummy arguments, or with components of other variables, such as the components of a type. Those have no intent, and may have a default value and a permission.

arithmeticsubroutinerecursive

a + b, a - b or a * b.

array_valuessubroutine

The items of a TOML array as text. An array of tables is taken to be extra_filetypes.

asset_fdoc_csssubroutine

The contents of assets/fdoc.css.

asset_fdoc_jssubroutine

The contents of assets/fdoc.js.

assign_pagessubroutine

Give each entity with a page of its own a page name that is unique in its directory, as FORD does: name, then name~2.

assign_targetssubroutine

Set the variables targets to v, unpacking it if there are several.

at_wordfunction pure

True if the current token is word, as an operator or keyword.

attach_argumentssubroutine

Connect the dummy arguments and result of a procedure with their declarations.

attribute_listsubroutine

Turn the contents of an attribute list, #id .class key=value, into HTML attributes.

badgesubroutine

Write text, an intent or attribute, as a badge. Its class comes from its first word, such as attr-pointer, which is what gives it its colour.

bar_textsubroutinepure

The bar for steps of size steps, width characters wide, with its filled and empty parts.

base_optionssubroutine

The Markdown options of a project.

bind_onesubroutine

Bind one name in a comprehension.

bind_targetssubroutine

Bind the names of a loop to v in a comprehension.

binding_tablesubroutine

Write a table of type-bound procedures.

bracket_endfunction pure

The end of the [...] that opens at i, or 0.

breadcrumbssubroutine

Write what contains entity id, from its source file down, each with a link to its page.

build_graphssubroutine

Build the graphs of the project: those of s%graph, and of entities that ask for them.

build_relationssubroutine

Build the relations between entities.

c_isattyinterfacebind(C)

C isatty.

call_builtinsubroutinerecursive

A builtin function: defined, dict, len, list, range, reversed, str, zip.

call_directivesubroutine

#:call name(arguments) or #:block name(arguments).

call_macrosubroutinerecursive

Call macro which.

call_methodsubroutinerecursive

A method: of strings startswith, format, join, strip and split, and of dicts get.

call_textsubroutine

Write how a call of a form looks. Square brackets mark what is optional.

calls_sectionsubroutine

Write what a procedure calls.

chain_endfunction

The last name of the component chain starting at token j, or 0.

chain_startfunction

The first token of the component chain ending at name j.

check_settingssubroutine

Validate the project file's settings and derive what depends on them, before the command line is applied.

children_ofsubroutine

The visible children of id that want accepts, sorted: 1 variables, 2 functions, 3 subroutines, 4 explicit and generic interfaces, 5 abstract interfaces, 6 types, 7 bindings, 8 final procedures, 9 namelists, 10 common blocks, 11 enumerations, 12 separate module procedures.

close_blocksubroutine

Leave a block, which must be of kind kind.

close_interfacesubroutine

Finish an interface block. All but generic interfaces dissolve, leaving their bodies in the unit around them.

close_scopesubroutine

Close the current scope.

close_unitsubroutine

Finish entity id at its closing statement.

closing_marksubroutinepure

Find where emphasis of width marks c opened before start closes.

closing_parenfunction pure

Position of the ) matching the ( at open in s, skipping strings, or 0.

code_blocksubroutine

The code block processor.

code_block_htmlsubroutine

The HTML of a code block.

collect_abbreviationssubroutine

Make the abbreviations defined in any documentation apply everywhere, as they do in FORD.

collect_definitionssubroutine

Remove link references, footnotes and abbreviations from lines and keep them.

collect_docssubroutine

Find the documentation of each code statement.

collect_listssubroutine

The members of each list page, in the order of the sort setting.

comma_countfunction pure

Number of commas in text.

common_sectionssubroutine

Write common blocks.

comparesubroutinerecursive

A chain of comparisons.

compare_twosubroutine

One comparison.

compilesubroutine

Compile expression text.

connectsubroutine

Add an edge, once. With label, the edge is dashed and labelled: components of a type have one.

construct_linessubroutinepure

The lines of low that could start or end a procedure or type.

contains_stringfunction

True if s is in list.

context_offunction

The type whose members a reference through item reaches, or 0.

control_directivesubroutinerecursive

Act on control directive word.

copy_bindingfunction

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

copy_filesubroutine

Copy file from to to.

copy_itemssubroutinepure

Copy from to the new array to.

copy_page_filessubroutine

Copy the files and directories that static pages list.

copy_pathsubroutine

Copy file or directory from to to, with what a directory holds.

copy_valuesubroutineelementalrecursive

Copy a value, with what it holds.

correlatesubroutine

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

count_blanksfunction pure

Number of blanks and tabs in s.

count_newlinesfunction pure

Number of line feeds in text.

count_sourcesubroutine

Count the lines of text. A last line with no line ending counts as a line.

day_of_yearfunction pure

Day of the year of a date, from 1.

dedentsubroutinecommon

Remove the leading whitespace that all non-blank lines of lines share.

def_directivesubroutine

#:def name(arguments). Each argument's default is compiled to an entry of args, or 0 if none.

definesubroutine

Set variable id in the current scope.

define_macrosubroutinerecursive

Define the macro of node id, evaluating its defaults now.

definition_blocksubroutinerecursive

The definition list processor.

describesubroutine

The text and rank of the type of variable id. Anything else, such as a dummy procedure, is procedure.

describe_graphsubroutine

Put the graph of job in g. found is false if it would have only one node or no edges. Nodes go in as they are reached, and edges after them.

digits_valuesubroutinepure

The value of text, without an internal read, as those take a lock.

display_lengthfunction pure

Length of the result of display_name.

display_namefunction pure

The base name of a file entity, or the name of another.

doxygen_metasubroutine

If line is a doxygen command, blank it and add it to moved as a metadata line.

doxygen_paramssubroutine

Move doxygen @param name text lines from procedure id to the variables they describe.

drawsubroutine

Draw the bar of the current stage.

draw_graphsubroutine

Lay out and draw one graph.

draw_graphssubroutine

Lay out and draw jobs. A graph that turns out to have nothing to show gets no drawing.

draw_somesubroutine

The share of draw_graphs of one thread, with working space of its own.

dump_linksfunction

How entities are connected, as JSON, for comparison with FORD.

dump_settingsfunction

The settings as a JSON object, for comparison with FORD's. Unset options are null.

element_endsubroutinepure

The position of the end of the element starting at start, or 0.

encodedsubroutine

Write text as numeric character references.

end_of_linefunction pure

The position of the end of the line with position from: of its newline, or after the last line.

ends_withfunction pure

True if s finishes with suffix.

entity_anchorsubroutine

Write the anchor of an entity in a page.

entity_jsonsubroutinerecursive

The JSON form of entity id, for modules.json.

entity_pagesubroutine

Render the page of entity id.

entity_titlesubroutine

Write the title of an entity's page, with what is known about it.

entity_urlsubroutinerecursive

The URL of an entity relative to the root of the site, or ''.

enum_sectionssubroutine

Write enumerations.

equalfunction purerecursive

True if a equals b.

evaluatesubroutinerecursive

Evaluate expression id.

evaluate_argssubroutinerecursive

Evaluate the arguments of call id.

evaluate_callsubroutinerecursive

A call of a macro or a builtin function.

evaluate_fstringsubroutinerecursive

An f-string.

evaluate_slicesubroutinerecursive

a[first:last].

expand_file_includessubroutinerecursive

Replace file include directives by the contents of the file.

expand_includessubroutinerecursive

Replace include lines in text by the files they name, found in directory or search.

expand_varsfunction

path with $NAME and ${NAME} replaced by environment variables. Unset variables are left as written.

expectsubroutine

Go past token word, which must come next.

explained_badgesubroutine

Write text as a badge, with an explanation for when the pointer is over it.

extension_offunction pure

The extension of path, without the dot, or ''.

failsubroutine

Record the first problem.

fence_languagesubroutine

The language named after a code fence.

fence_lengthfunction pure

The length of the code fence that line starts with, or 0.

file_bodysubroutine

Write what is specific to a source file.

find_anywherefunction

The entity named name at the top level of the project, or 0.

find_childfunction

The child of parent named name, or 0.

find_definitionsubroutinepure

Find a definition line in block.

find_hash_headersubroutinepure

Find the first # header line of block.

find_infunction pure

The position of name in symbols, or 0.

find_modulefunction

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

find_namefunction pure

The number of name name, or 0.

find_quotesubroutinepure

Find the first line of block that quotes.

find_referencefunction

Find link reference id, returning its position or 0.

find_rulesubroutinepure

Find a line of block that is a horizontal rule.

find_sourcesubroutine

Find the text of the construct keyword name in low, from its first line to its end line.

find_sourcessubroutine

The source files of the project, sorted, without those excluded. Fixed-form files are left out with a warning, as they are not supported yet.

find_symbolfunction recursive

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

finish_settingssubroutine

Make paths absolute and format dates, after all settings are applied.

first_line_offunction pure

The first line of text.

first_paragraphsubroutinepure

The first paragraph of html, or ''.

first_wordfunction pure

The part of text before its first blank.

first_word_offunction pure

The first blank-separated word of text, after any leading blanks.

flush_textsubroutine

Add the text between first and last as a text node.

fold_linesubroutinepure

Fold a line in Fypp's default way, at a blank near the end of the line if there is one.

fold_outputsubroutine

Fold the long lines of text that hold results of evaluation. Others stay as they are.

fold_positionfunction pure

Where to end the part of line after first, at most at last. Positions count from 0.

fold_regionsubroutinepure

Fold each line of text.

for_directivesubroutine

#:for names in iterable.

ford_linksubroutine

Handle [[name(type):child(type)]], a link to an entity.

form_keysubroutine

What specific procedure id has in common with those of its call form.

format_stringsubroutine

text.format(args), for fields {} and {n}.

frame_roomsubroutine

Make sure that one more variable fits in frame.

fypp_processsubroutine

The output of Fypp for file path. Each of defines is NAME or NAME=expression.

fypp_sourcesubroutine

Replace text by the output of Fypp for path, or keep it if that fails.

generic_bodiessubroutine

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

glob_matchesfunction

True if path matches exclusion pattern, like Python's fnmatch: a * crosses /. A pattern that is not absolute may match the end of the path.

graph_sectionssubroutine

Write the graphs of entity id.

graphs_wantedfunction

True if entity id is drawn with graphs.

groupedsubroutinerecursive

Write value, not negative, with a comma between each group of three digits.

grow_edgessubroutinepure

Make room for more edges.

handle_directivesubroutinerecursive

Act on a directive of type kind, which is $, # or @.

has_drivefunction pure

True if path starts with a drive letter, as in C:.

has_markfunction pure

True if comment c starts with ! and doc marker mark.

has_mathfunction pure

True if e has math in its documentation.

has_pagefunction

True if entity id has a page of its own.

has_rootfunction pure

True if path is absolute.

hash_headersubroutinerecursive

The # header processor.

highlight_fortransubroutine

Write code as highlighted HTML. With line_anchors, each line starts with an anchor ln-N.

html_escapesubroutinepure

Append text, escaped for HTML.

icon_linksubroutine

Write an icon linking to url, if it is set.

implicit_variablefunction

Add a variable for name, implicitly typed.

import_namessubroutine

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

in_categoryfunction pure

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

in_namefunction elemental

True if ch can be part of a name.

in_setfunction pure

True if key is one of the blank-separated words of set, which starts and ends with a blank.

in_statefunction pure

True if the innermost parser state is state.

include_directivesubroutinerecursive

#:include "file".

include_namefunction

True if line is an include line, returning the file it names.

indent_levelsubroutine

How deep block is in the lists of parent, and the node at that depth.

index_entity_namessubroutine

Index the entities that links can name from anywhere, for find_anywhere.

index_findfunction pure

The value of name in table, or 0.

index_pagesubroutine

Render the front page.

index_setsubroutinepure

Give name the value value in table.

inheritsubroutinerecursive

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

inherit_displaysubroutine

Copy the display settings that apply to id from its parent, and apply its own metadata.

inherited_permissionfunction pure

The permission of what is declared now in id.

inlinesubroutinerecursive

Write inline Markdown text as HTML.

inline_abbreviationsubroutine

Handle an abbreviation at i, if there is a whole word there.

inline_anglesubroutine

Handle <: an automatic link or inline HTML.

inline_backslashsubroutine

Handle a backslash: math, or an escaped character.

inline_bracketsubroutinerecursive

Handle [: a FORD link, a footnote reference or a link.

inline_codesubroutine

Handle a code span.

inline_dollarsubroutine

Handle $: display math or an environment variable.

inline_emphasissubroutinerecursive

Handle * and _.

inline_entitysubroutine

Handle &: an entity stays as it is, anything else is escaped.

inline_imagesubroutine

Handle ![: an image.

inline_smartsubroutinepure

Handle the punctuation that the smarty extension changes.

insert_tocsubroutine

Replace the [TOC] marker by the table of contents.

int_textfunction pure

k as text, in a fixed width. This is for parallel code, as an internal write takes a lock that threads end up spending most of their time on.

interface_bodysubroutine

Write what is specific to a generic interface: the procedures in it.

internsubroutine

The number of name name, added if it is new.

is_attribute_statementfunction

True if low starts with a word that gives attributes to names listed after it.

is_blankfunction elemental

True if ch is a blank or a tab.

is_bullet_itemfunction pure

True if block starts with a bullet list item.

is_digitfunction elemental

True if c is a digit.

is_elementalfunction pure

True if procedure e is elemental.

is_executablefunction

True if statement v can have procedure references: not a declaration.

is_input_directoryfunction

True if directory is an input of the project, so that it not being a page is expected.

is_intrinsicfunction pure

True if name, in lowercase, is one of the names.

is_listfunction pure

True if tag is ul or ol.

is_markerfunction pure

True if line is three of c, alone or followed by whitespace and anything else.

is_optionfunction pure

True if key is the name of an option.

is_ordered_itemfunction pure

True if block starts with an ordered list item.

is_placeholderfunction pure

True if text is one placeholder.

is_procedurefunction elemental

True if kind is a subroutine or function.

is_program_unitfunction pure

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.

is_rulefunction pure

True if line is a horizontal rule.

is_setextfunction pure

True if the second line of block underlines the first.

is_shownfunction pure

True if item and everything that holds it are shown.

is_simple_bindingfunction

True if a graph shows binding id as the procedure it binds: it binds one, which can be shown.

is_spacefunction elemental

True if ch is white space.

is_tablefunction pure

True if block is a table: a header line with |, then a separator line.

is_type_declarationfunction

True if low starts a type declaration rather than, for example, an assignment.

is_windowsfunction

True on Windows, which sets the variable OS to this value.

item_textfunction pure

The position where the item text of a list line starts, or 0 if it is not one.

items_ofsubroutine

The items of v, which is iterated over.

joinfunction pure

The strings of list with sep between them.

joined_lengthfunction pure

Length of the result of join.

label_itemfunction

The entity that label means in context, a scope or a type, or 0.

label_resultssubroutine

The text of each result.

last_childfunction pure

The last child of node parent, or 0.

last_separatorfunction pure

The position of the last separator in path, / or \, or 0.

leading_blanksfunction pure

Number of blanks at the start of line.

leading_textfunction pure

The first code tokens of v from token j, in lowercase and joined by blanks, up to about 80 characters.

letter_classfunction pure

The lowercase class for icon letter.

lexical_cleanfunction

Remove empty, . and .. components from absolute path.

license_textsubroutine

Write the name of license license, linked if it is a known one.

line_hasfunction pure

The position of keyword followed by name in line, or 0.

line_startsubroutine

Write the anchor of line line.

link_bindingsubroutine

Find what a type-bound procedure binds to and its interface.

link_callssubroutine

Find what the calls of entity id refer to.

link_constructorsubroutine

Find the procedure or interface named like type id.

link_implementationsubroutine

Connect a separate module procedure with its interface, and copy what it does not repeat.

link_module_proceduressubroutine

Find what a generic interface lists with module procedure.

link_projectsubroutine

Connect what the names in the project refer to.

link_submodulesubroutine

Add submodule id to the descendants of its parent.

link_targetsubroutine

Read the (address "title") at open.

link_tosubroutine

Write name, linked to entity id if it can be.

link_usessubroutine

Find the modules that use statements and submodules refer to.

link_variablesubroutine

Find the type or interface that a variable declaration names.

list_addfunction

Add an entity of kind kind inside parent, returning its index.

list_blocksubroutinerecursive

The list processors.

list_columnssubroutine

Write the columns of a list page between the name and the description.

list_indentsubroutinerecursive

The indented block processor: block continues a list.

list_itemssubroutine

The items of a list chunk.

list_offunction

The list page that entity id belongs on, or 0.

list_pagesubroutine

Render list page which.

load_external_projectsubroutine

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

load_fpm_settingssubroutine

Read the [extra.fdoc] or [extra.ford] table of fpm.toml file path, if there is one.

load_pagessubroutine

Read the pages of the project into pages, parents before children.

load_projectsubroutine

Read the settings and front page text of the project. Settings come from an [extra.fdoc] or [extra.ford] table in fpm.toml if there is one, and otherwise from the metadata of the project file. With no path the project file is ford.md, if it exists: [extra.fdoc] does not need one, as the text of the front page can be in its front_page, or the file named by front_page_file.

load_project_sourcessubroutine

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

load_sourcesubroutine

Read source file path, preprocessing it if its extension calls for that. Unless that runs an external command, this can be called from parallel code.

locatefunction

The path of include file name, or '' if it is not found.

locate_in_filesubroutine

Find the code of entities ids, all from one file. They are in source order, so each search starts where the last one found something. Only the lines that name a construct are searched, as a name that is not in the file, like those Fypp makes, would otherwise cost two readings of the file.

locate_sourcessubroutine

Find the code of each procedure and type in the text of its file. Files are handled in parallel.

logo_namesubroutine

The name in the site of the file of the logo setting: logo, with its extension, or '' if there is no such file.

lookupsubroutine

Find the value of name id.

loose_detabsubroutine

Remove level indents from each line of block that has them.

lower_charfunction elemental

c in lowercase.

lower_in_placesubroutinepure

Make text lowercase, without a temporary, for text too long for the stack of a thread.

make_boolsubroutinepure

Make a bool value.

make_directorysubroutine

Create directory path with those above it, if it does not exist. It is not a failure if something else creates it first.

make_footersubroutine

The end of every page.

make_intsubroutinepure

Make an integer value.

make_rangesubroutine

range(...), as a list.

make_stringsubroutinepure

Make a string value.

make_zipsubroutine

zip(...), as a list of tuples.

map_valuessubroutine

The string entries of table in the form key<sep>value.

mark_common_memberssubroutine

Mark the variables of unit id named in its common blocks.

markdown_listsubroutine

Convert the Markdown texts in JSON array file path, and print the results as a JSON array.

markdown_to_htmlsubroutinerecursive

Convert Markdown source to HTML.

match_keyfunction

True if line is key: value, indented by at most three blanks.

matchesfunction

True if entity id is named name, in lowercase, and is of class entity.

mathsubroutine

Write math for MathJax.

measure_filessubroutine

Measure the source files of the list of files.

merge_listsubroutine

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

module_positionfunction pure

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

move_exprsubroutinepure

Move an expression, without copying what it holds.

move_nodesubroutinepure

Move a node, without copying what it holds.

move_valuesubroutinepure

Move a value, without copying what it holds.

name_and_entitysubroutine

Split name(entity).

name_hashfunction pure

The hash of name, FNV-1a, as a position in 1:size, where size is a power of 2.

nearest_callerfunction pure

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.

needs_fyppfunction

True if path goes through Fypp, which is Python, so that fdoc_fypp takes its place.

new_exprfunction

A new expression.

new_nodefunction

A new node.

new_nodesubroutine

Add a child with tag tag to node parent, returning it.

new_settingsfunction

The defaults.

next_tokensubroutine

Go to the next token.

normal_idsubroutine

id in lowercase, with runs of whitespace as single blanks.

normalize_linessubroutine

Expand tabs and blank lines of only spaces.

number_cellsubroutine

Write value as a cell of a table.

object_wordsubroutine

The word FORD uses for the kind of entity e.

of_classfunction pure

True if entity e is of class entity, as written in a link. Any entity matches ''.

open_blocksubroutine

Enter block node.

open_proceduresubroutine

Create the entity for a subroutine or function statement.

open_scopesubroutine

Open a scope that also sees frame up.

open_unitsubroutine

Create the entity for the statement opening construct construct, if it has one.

original_prefixsubroutine

Set text to line(1:n) with the words of attribs removed, keeping the case of what is left.

overridesfunction

True if type id declares a binding named name itself.

page_directoriessubroutine

Create the directories of the static pages.

page_filefunction pure

The HTML file for Markdown file name. As in FORD one other suffix goes too: CI.yml.md becomes CI.html.

page_footsubroutine

Write the end of a page.

page_headsubroutine

Write the start of a page.

page_linkssubroutinerecursive

Write the pages below page parent, or the top one if that is 0, as a tree of links.

page_namesubroutine

name as used in file names and anchors.

page_outlinesubroutine

Write the sections of a procedure page, for the sidebar.

paragraphsubroutine

The paragraph processor. In a tight list an item's text stays in the item.

parse_andsubroutinerecursive

Operands of and.

parse_argssubroutine

Read the command line.

parse_argumentssubroutinerecursive

The arguments of call id, up to closing.

parse_blocksubroutinerecursive

Find the block processor for block and run it.

parse_boolsubroutine

Read true or false, in any case.

parse_chunkssubroutinerecursive

Parse chunks into node parent.

parse_comparesubroutinerecursive

Comparisons.

parse_comprehensionsubroutinerecursive

The for clauses after the item element.

parse_declaratorsubroutine

Read one name of a declaration, such as x(3) = 1.

parse_filesubroutinerecursive

Read file path into the block being read.

parse_filesubroutine

Parse source text of file path into list, whose first entity is the file.

parse_fstringsubroutinerecursive

An f-string, whose quotes and escapes are already gone.

parse_intsubroutine

Read a decimal integer.

parse_itemssubroutinerecursive

The items of a list or tuple, after the first, which is first.

parse_listsubroutinerecursive

An expression, or several separated by commas, which make a tuple.

parse_metadatasubroutine

Split project file text into metadata and body.

parse_notsubroutinerecursive

An operand of not.

parse_onesubroutinerecursive

Parse the single chunk chunk into node parent.

parse_orsubroutinerecursive

Operands of or.

parse_postfixsubroutinerecursive

A primary with what follows it: calls, subscripts and methods.

parse_primarysubroutinerecursive

A primary: a literal, a name, or something in brackets.

parse_procedure_headersubroutine

Read a subroutine or function statement.

parse_productsubroutinerecursive

Factors multiplied.

parse_statementsubroutine

Read a statement that opens nothing, if it declares anything.

parse_subscriptsubroutinerecursive

A subscript of object, or a slice.

parse_sumsubroutinerecursive

Terms added and subtracted.

parse_testsubroutinerecursive

An expression, which may be conditional.

parse_textsubroutinerecursive

Split text, the contents of file path, into text and directives.

parse_textsubroutinerecursive

Parse text that may hold several chunks into node parent.

parse_typesubroutine

Read the type at the start of line.

parse_unarysubroutinerecursive

A factor, perhaps negated.

permission_lengthfunction pure

Length of the result of inherited_permission.

permission_rankfunction pure

The order of the permission of e.

plain_textsubroutine

html as plain text of at most limit characters, with blanks collapsed.

preprocesssubroutine

Replace text by the output of the preprocessor for path, or keep it if that fails.

preprocessor_commandfunction

The preprocessor command for path. FORD's default of pcpp is Python, so it is replaced.

procedure_badgessubroutine

Write the attributes of procedure e that say how it behaves, as badges. Anything else is left out.

procedure_bodysubroutine

Write what is specific to a procedure.

progress_enablesubroutine

Turn progress reports on.

progress_finishsubroutine

Finish the stage, leaving its line.

progress_startsubroutine

Start stage name, of steps steps, or of unknown length if that is 0.

progress_summarysubroutine

Report the end of the run.

progress_ticksubroutine

Count a step, or steps of them. This can be called from any thread.

prunesubroutine

Hide what should not be displayed.

public_namessubroutinerecursive

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

public_symbolfunction pure

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

public_symbolsfunction

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

pushsubroutine

Append s to list, allocating it if needed.

push_backsubroutine

Put text back on the stack of chunks.

push_idsubroutinepure

Append value to list.

push_intsubroutinepure

Append value to list, allocating it if needed.

qualified_namefunction recursive

The name of entity id with those around it, up to its top-level unit.

quote_blocksubroutinerecursive

The block quote processor.

quotedfunction

text in quotes, as one argument of a command.

quoted_pathfunction

path in quotes, with the separator of the platform, as one argument of a command.

rank_labelsubroutine

The text of type text with its rank. A rank in columns is left out, and a tied one is relative.

rank_offunction pure

The rank given by dimension, such as (:,:): one more than the commas outside inner parentheses.

read_associationssubroutine

Add the names of an associate statement to associations.

read_attribute_statementsubroutine

Read a statement such as public :: x, keeping what it says until the unit is finished.

read_bindingsubroutine

Read a type-bound procedure or generic statement.

read_commonsubroutine

Read a common statement, adding a common block entity for each block it names.

read_declarationsubroutine

Read a variable declaration, adding a variable for each name.

read_externalsubroutinerecursive

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

read_finalsubroutine

Read a final statement.

read_line_directivesubroutinepure

Read a line directive whose text starts at from, joining continuation lines.

read_module_proceduressubroutine

Read a module procedure or procedure statement in an interface.

read_namesubroutinepure

Read a name.

read_namelistsubroutine

Read a namelist statement.

read_pagesubroutine

Read and render one page, adding it to pages.

read_sourcesubroutine

Read source file path, warning if that fails.

read_stringsubroutine

Read a string in quotes, undoing its escapes.

read_submodulesubroutine

Read a submodule statement.

read_targetssubroutine

Read the names separated by commas at the start of text.

read_treesubroutinerecursive

Read the directory directory of pages, location below the top.

read_type_statementsubroutine

Read a type statement.

read_usesubroutine

Read a use statement.

read_use_specsubroutine

Read what follows the module name in a use statement.

read_whole_filesubroutine

Read all of file path. This can be called from parallel code, as all file I/O of threads has to take turns: libgfortran 16 can crash otherwise (see example/io_race.f90).

record_spansubroutine

Record that the output from after first to last was evaluated.

remove_blanksfunction pure

s without blanks and tabs.

remove_childsubroutinepure

Remove id from the children of e.

remove_directorysubroutine

Delete directory path with what it holds, if it exists.

remove_filesubroutine

Delete file path, if it can be. This can be called from parallel code.

remove_markdown_attributesubroutine

Remove markdown="..." from an opening tag.

render_bodysubroutinerecursive

Render the nodes of body. With top, what is evaluated is recorded for line folding.

render_callsubroutinerecursive

Render a call: the block is the last positional argument.

render_childrensubroutinerecursive

Write the children of node id.

render_codesubroutine

The HTML of an indented code block, whose first line may name its language.

render_documentationsubroutine

Render the documentation and summary of each entity.

render_entitysubroutine

Render the documentation and summary of entity id.

render_footnotessubroutinerecursive

Write the footnotes that were referred to.

render_headingsubroutinerecursive

Write a heading or definition term. With the toc extension headings get ids.

render_loopsubroutinerecursive

Render a loop.

render_nodesubroutinerecursive

Render a node.

render_nodesubroutinerecursive

Write node id.

render_tablesubroutinerecursive

Write a table.

render_textsubroutine

Render text, as if it belonged to entity context, for a page prefix away from the root.

replace_commasfunction pure

attr with a blank after each comma.

reset_statesubroutinepure

Leave the innermost parser state.

resolve_linksubroutine

Find what a [[name]] link means: see link_resolver in fdoc_markdown.

resolve_pathfunction

The absolute form of path relative to directory base, with variables expanded and . and .. removed, and with / as the separator on paths with a drive letter. Links are left as they are, and the path does not have to exist.

row_cellssubroutine

The cells of a table row, split at | outside code spans.

runfunction

Run with command line args, returning the exit status.

run_clausesubroutinerecursive

Run clause k of comprehension id, collecting items.

run_commandsubroutine

Run command and wait for it. Without cmdstat, a program can stop with an error if the command is not found, which some shells report with status 127.

runs_commandfunction

True if reading path runs an external preprocessor.

scalar_textfunction

A string, integer or logical value of table as text.

search_indexsubroutine

The search index, as a script: browsers do not let a page opened from a file read JSON.

search_pagesubroutine

Render the search results page.

seconds_textsubroutine

ticks of the clock as text.

section_idfunction pure

An anchor for the section titled title.

selector_lengthfunction pure

The length of the kind selector at the start of text, which is (...), *n or *(...).

set_constructorsubroutine

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

set_directivesubroutine

#:set names = expression.

set_docsubroutine

Set the documentation and metadata of e from its doc lines.

set_listsubroutine

Set a list option.

set_logicalsubroutine

Set a logical option.

set_mapsubroutine

Set a map option from strings of the form key<sep>value. Empty strings are ignored.

set_optionsubroutine

Set option key, which must be one (see is_option), from its values as text.

set_statesubroutinepure

Enter parser state state.

set_textsubroutine

Set a text or path option.

set_typesubroutine

Copy a parsed type to variable v.

setext_headersubroutinerecursive

The underlined header processor.

shared_summarysubroutine

Write the summary of the procedures ids, if they all have the same one.

shown_entitysubroutinepure

Replace item by what holds it, if it is inside something not shown, which has no page.

side_groupsubroutine

Write a sidebar group of links to the entities ids, on the same page if anchors.

side_iconsubroutine

Write the icon of entity e in a sidebar: a letter, with what it stands for as its tooltip.

sidebar_scriptsubroutine

The script holding the entries of the lists of the sidebar, for fdoc.js.

signaturesubroutine

Write the declaration of a procedure.

signature_argumentssubroutine

Write the arguments of procedure e, each in the colour of its intent, as in the table of arguments.

site_sidesubroutine

Write the links to the list pages, for the sidebar. The list of the page is empty here, as it could be far too long to go in each page: fdoc.js fills it from sidebar.js. Pages outside the lists, which have no place in one, show the start of each list.

size_textsubroutine

Write a size in bytes, with one decimal once it is in kilobytes or megabytes.

skip_blanksfunction pure

The first position from from that is not a blank.

sort_idssubroutine

Sort ids, keeping the source order of equal entries.

sort_intssubroutinepure

Put list in order.

sort_stringssubroutine

Sort list by byte value, removing duplicates.

sorts_beforefunction

True if a sorts before b, for the sort setting.

source_sectionsubroutine

Write the source of entity id, if source is set, from the text of its file.

specific_linksubroutine

Write a link to specific procedure id, further down the page.

split_attributessubroutine

Split what follows the type of a declaration into its attributes and the names declared.

split_chunkssubroutine

Split text at blank lines, as text.split('\n\n') does.

split_linesfunction

The lines of text, ended by LF, CRLF or CR. As in Python's splitlines, a final line ending does not start another line.

split_onfunction

The parts of text between the characters sep, including empty ones.

split_stringsubroutinepure

text.split(separator).

split_wordsfunction

The blank-separated words of text.

starts_namefunction elemental

True if ch can start a name.

starts_withfunction pure

True if s begins with prefix.

starts_wordfunction pure

True if s starts with word word: followed by anything but a letter, digit or _.

stash_fenced_codesubroutine

Replace fenced code blocks by placeholders.

stash_htmlsubroutine

Keep html aside, returning the placeholder for it.

stash_html_blockssubroutinerecursive

Replace block-level HTML by placeholders, rendering the contents of markdown="1" elements.

statement_callssubroutine

Add the procedures that a statement refers to to e%more%calls.

statement_textsubroutine

The code of statement item: its tokens as written, without comments and continuation marks. Continuation lines are joined as FORD joins them.

static_pagesubroutine

Render static page k.

stats_cellssubroutine

Write stats as cells of a table. Each has the plain number, to sort by.

stats_totalsubroutine

Write the row of totals of the list of files.

stem_lengthfunction pure

The length of the part of name that names its page.

strftimefunction

The current local time in a strftime format.

stripfunction pure

s without leading and trailing whitespace.

strip_trailingfunction pure

s without trailing whitespace.

stripped_lengthfunction pure

Length of s without leading and trailing whitespace.

subscriptsubroutine

Item index of a, counting from 0, and from the end if negative.

substitute_aliasessubroutine

Replace |alias| by its value. |alias| gives the text without the backslash.

summary_itemsubroutine

Write a short entry for entity id.

summary_sectionsubroutine

Write a section of short entries that link to the pages of ids.

table_rowsubroutinerecursive

Write a table row with exactly as many cells as align has.

tag_atsubroutinepure

The tag at position at of line, in lowercase, or ''.

takesubroutinepure

Move the text of b to text.

temporary_directorysubroutine

The directory for temporary files.

top_indexfunction pure

Position of the first pattern in s outside brackets and strings, or 0.

top_levelfunction elemental

True if a link to kind can name it from anywhere in the project.

top_splitfunction

The parts of s between the characters sep outside brackets and strings, each stripped.

trim_lengthfunction pure

The length of text without blanks at its end.

trim_rightfunction pure

text without blanks at its end.

trimmed_endfunction pure

text without trailing line feeds.

truth_offunction pure

The truth of v.

type_bindingfunction

The binding named name of type id, including inherited ones, or 0.

type_bodysubroutine

Write what is specific to a derived type.

type_keywordsubroutine

The length of the type keyword that low starts with, ignoring blanks in double precision, or 0. Its normal spelling is returned in word.

type_memberfunction

The component of kind kind named name of type id, including inherited ones, or 0.

unique_idsubroutine

An id for a heading with text html, not used before. Like Python-Markdown's slugify, this drops punctuation and turns each run of blanks and hyphens into one hyphen.

unique_tagsubroutine

A number, as text, that another run at the same time is very unlikely to get, for temporary names.

unit_bodysubroutine

Write what is specific to a module, submodule, program or block data unit.

unstashsubroutine

Put stashed HTML back into html.

url_quotesubroutine

Percent-encode the characters of text that are not safe in a URL.

usagefunction

The help text.

uses_mathfunction

True if the documentation shown on the page of id has math.

uses_sectionsubroutine

Write the use statements of a unit.

variable_typefunction

The derived type of variable id, or 0.

visible_callssubroutinerecursive

Add edges from from to what id calls. What cannot be shown is replaced by what it calls.

wants_sourcefunction

True if the source of entity id should be shown.

warnsubroutine

Write warning message to standard error, keeping the bar intact. This can be called from any thread.

warn_unsupportedsubroutine

Warn about settings that are read but have no effect.

weekdayfunction pure

Day of the week of a date: 0 for Sunday.

without_carriage_returnssubroutinepure

Turn the line ends of text into a line feed, as Python does when it reads text.

word_atfunction pure

True if whole word word is at position at of s.

word_lengthfunction pure

Length of the first blank-separated word of text.

write_call_formssubroutine

Write the call forms of generic name, if it has more than one specific procedure. shown says whether anything was written.

write_entity_pagesubroutine

Render the page of entity id and write it.

write_entity_pagessubroutine

Render the pages of entities ids and write them, in parallel. A page is not kept once it is written, as together they can be larger than everything else in memory.

write_formsubroutine

Write one call form, whose specific procedures are ids.

write_graphsubroutine

Write graph k.

write_linksubroutinerecursive

Write a link.

write_modulessubroutine

Write modules.json, which other projects can use to link to this one.

write_sitesubroutine

Write the whole site.

write_textsubroutine

Write text to standard output.

write_typesubroutine

Write the type of variable e.

write_valuesubroutinepurerecursive

Write v as str() does, or as repr() does if quoted.

write_whole_filesubroutine

Replace the contents of file path. This can be called from parallel code.

Call graph

runwarn_unsupportedmarkdown_listwrite_textusageparse_argsapply_argsbase_optionscollect_abbreviationsrender_textrender_documentationlink_projectdump_linkswrite_modulesload_pagesprogress_enableprogress_startprogress_finishprogress_summaryload_project_sourcescorrelatepruneload_projectapply_toml_stringcheck_settingsfinish_settingsdump_settingsassign_pageswrite_siteindex_entity_nameswarnmarkdown_to_htmlasset_fdoc_cssaddasset_fdoc_jsint_texttakehtml_escapestarts_withpushset_optiontype_keywordword_atis_type_declarationselector_lengthclosing_parenparse_typestripremove_blankstop_splitsplit_attributestop_indexparse_declaratorparse_procedure_headeroriginal_prefixfirst_paragraphrender_entityprogress_tickdedentsplit_wordsjoinfypp_processinterncompilenew_nodeadd_bodyparse_fileevaluaterender_bodyfold_outputvalue_t%copy_valuecopy_itemsfailfind_namestarts_namein_nameis_digitis_blanknext_tokenread_nameread_stringat_wordexpectnew_exprmove_exprpush_idparse_listindex_findindex_setparse_testparse_orparse_andparse_notparse_compareparse_sumparse_productparse_unaryparse_postfixparse_argumentsparse_subscriptparse_primaryparse_comprehensionparse_itemsparse_fstringmove_nodeappendopen_blockclose_blockwithout_carriage_returnsparse_textread_whole_fileend_of_lineskip_blankstrim_rightflush_textread_line_directivehandle_directivetrim_lengthcontrol_directivefor_directiveset_directivedef_directivecall_directiveinclude_directiveread_targetslast_separatorlookupdefineframe_roommove_valueopen_scopeclose_scopemake_stringmake_boolmake_inttruth_ofequalwrite_valueitems_ofarithmeticcomparesubscriptevaluate_slicerun_clauseevaluate_fstringevaluate_callcall_methodcompare_twobind_targetsbind_oneevaluate_argscall_builtincall_macromake_rangemake_zipis_spaceformat_stringsplit_stringdigits_valuerender_noderecord_spanassign_targetsrender_loopdefine_macrorender_callfold_regionfold_linefold_positionwrite_call_formsform_keywrite_formdescriberank_labellabel_resultsis_elementalshared_summarycall_textspecific_linksort_intspush_intrank_ofargument_nameentity_anchorbuild_relationsvisible_callsconnectis_simple_bindinggraphs_wantedparse_boolparse_intdescribe_graphgrow_edgesadd_nodeadd_edgeentity_urlbuild_graphsdraw_graphsmake_directorywrite_whole_fileunique_tagdraw_somedraw_graphhighlight_fortranline_startis_intrinsicextension_ofneeds_fyppstarts_wordcontains_stringruns_commandfind_sourcesglob_matchessort_stringsload_sourcefypp_sourcepreprocesspreprocessor_commandquotedquoted_pathrun_commandtemporary_directoryremove_fileexpand_includesinclude_namelocatesplit_lineslink_submodulelink_implementationlink_module_procedureslink_bindinglink_constructorlink_variablelink_callsfind_symboltype_bindingtype_memberlabel_itemcontext_ofsplit_onvariable_typequalified_nameadd_linksnormalize_linesexpand_file_includesadmonition_linessubstitute_aliasesunstashstash_fenced_codestash_html_blockscollect_definitionssplit_chunksparse_chunksrender_childreninsert_tocrender_footnotesadmonition_startstash_htmlfence_lengthfence_languagecode_block_htmltag_atfirst_line_ofcount_newlinesremove_markdown_attributeelement_endnormal_idends_withnew_nodelast_childin_stateset_statereset_stateparse_blockparse_oneparse_textpush_backis_listtrimmed_endlist_indentcode_blockadmonition_blockfind_hash_headerhash_headeris_setextsetext_headerfind_ruleis_ordered_itemis_bullet_itemlist_blockfind_quotequote_blockis_tablefind_definitiondefinition_blockparagraphindent_levelloose_detabis_ruleitem_textlist_itemsadjustl_textattribute_listrender_nodeis_placeholderrender_headingrender_coderender_tableinlineunique_idlower_chartable_rowrow_cellsinline_backslashinline_codeinline_angleinline_entityinline_dollarinline_bracketinline_imageinline_emphasisinline_abbreviationinline_smartmathfirst_wordencodedbracket_endlink_targetfind_referencewrite_linkford_linkname_and_entityclosing_markis_procedureentity_list_t%list_addentity_jsonpublic_symbolsobject_wordstem_lengthread_treepage_fileis_input_directoryread_pageparse_metadatapermission_lengthword_lengthcomma_countparse_filenearest_callerstatement_callsstatement_textcollect_docsset_docinherit_displayopen_unitclose_unitparse_statementis_executableis_attribute_statementleading_textchain_endadd_callread_associationschain_startstrip_trailinghas_markfirst_word_ofdoxygen_metainherited_permissionread_submoduleread_type_statementopen_procedureset_typeapply_attributesattach_argumentsclose_interfaceapply_onemark_common_membersdoxygen_paramsimplicit_variableremove_childread_useread_attribute_statementread_declarationread_bindingread_finalread_module_proceduresread_commonread_namelistreplace_commasc_isattydrawseconds_textbar_textread_sourcemerge_listadd_external_moduleslink_usesinheritset_constructorpublic_namesload_external_projectread_externalresolve_pathfind_moduleread_use_specfind_inin_categorypublic_symbolmodule_positionoverridescopy_bindingadd_symbolgeneric_bodiesimport_namesis_program_unitadd_valueleading_blanksis_markermatch_keyload_fpm_settingsnew_settingsis_optionapply_tablescalar_textarray_valuesmap_valuesin_setset_logicalset_textset_listset_mapadd_entryadd_intrinsic_modulesstrftimeis_windowsremove_directorycopy_filecopy_pathpage_namedisplay_lengthcollect_listslist_ofsort_idshas_pagesorts_beforepermission_rankchildren_ofacceptslink_tois_shownwrite_typepage_headstatic_pagepage_linkspage_footsearch_pagesite_sideplain_textsearch_indexdisplay_nameside_groupside_iconletter_classentity_titlebreadcrumbssignaturebadgeprocedure_badgeslogo_namemeasure_filescount_sourcestats_cellsnumber_celladd_intsize_textstats_totaladd_statsgroupedsignature_argumentsargument_tableargument_attributesanchorbinding_tableexplained_badgegraph_sectionswrite_graphsummary_sectionsection_idsummary_itemuses_sectioncalls_sectionsource_sectionwants_sourcelocate_sourceslocate_in_fileconstruct_linesfind_sourcelower_in_placeline_hasentity_pageenum_sectionscommon_sectionsadd_wordsuses_mathunit_bodyprocedure_bodyinterface_bodytype_bodyfile_bodypage_outlinehas_mathsidebar_scriptadd_js_textlist_columnslist_pageindex_pageicon_linkmake_footerlicense_textpage_directoriescopy_page_fileswrite_entity_pageswrite_entity_pageurl_quoteof_classmatchesfind_childtop_levelfind_anywhereshown_entityresolve_linkname_hashstripped_lengthcount_blanksjoined_lengthexpand_varshas_drivehas_rootlexical_cleanday_of_yearweekday