Parse a string into a real, reporting failures through error_t.
The accepted grammar is optional surrounding whitespace, an optional
sign, a mantissa holding at least one digit and at most one decimal point
(so both ".5" and "5." are accepted, "." is not), and an optional
exponent introduced by e, E, d or D with an optional sign and at
least one digit.
Everything else is rejected, in particular the spellings that a list
directed read would happily accept: "nan", "inf", "infinity",
repeat counts such as "3*7", comma separated values such as "1,2",
and any trailing junk. Values that overflow the requested kind are
rejected as well instead of becoming infinity.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.