fdoc

modulefdoc_decl

Reading declarations and procedure headers from the text of a statement.

Everything here runs inside the parallel parsing loop, so it does not call functions returning deferred-length strings (see example/slen_race.f90).

Uses

Graphs

Uses

Used by

Variables

NameTypeAttributesDefaultDescription
TYPE_WORDScharacter(len=*)privateparameterdimension(*)[character(len=16)::'integer','real','doubleprecision','character','complex','doublecomplex','logical','type','class','procedure','enumerator']

Types

parsed_type_t

The type part of a declaration.

procedure_header_t

The parts of a subroutine or function statement.

Functions

is_type_declaration

logical function is_type_declaration(low)

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

selector_lengthpureprivate

pure integer function selector_length(text)

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

Subroutines

original_prefixprivate

subroutine original_prefix(line, low, n, attribs, text)

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

parse_declarator

subroutine parse_declarator(text, name, dimension, initial, points)

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

parse_procedure_header

subroutine parse_procedure_header(line, h)

Read a subroutine or function statement.

parse_type

subroutine parse_type(line, t)

Read the type at the start of line.

split_attributes

subroutine split_attributes(rest, attributes, names)

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

type_keywordprivate

subroutine type_keyword(low, n, word)

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