fparser.one.typedecl_statements

Fortran type-declaration statements.

Module Contents

Classes

Integer

Class capturing various sorts of type declaration.

Real

Class capturing various sorts of type declaration.

DoublePrecision

Class capturing various sorts of type declaration.

Complex

Class capturing various sorts of type declaration.

DoubleComplex

Class capturing various sorts of type declaration.

Logical

Class capturing various sorts of type declaration.

Character

Class capturing various sorts of type declaration.

Byte

Class capturing various sorts of type declaration.

Class

Class capturing various sorts of type declaration.

Implicit

Class capturing various forms of IMPLICIT statement.

Attributes

TypeStmt

intrinsic_type_spec

declaration_type_spec

class fparser.one.typedecl_statements.Integer(parent, item)[source]

Bases: TypeDeclarationStatement

Class capturing various sorts of type declaration.

<declaration-type-spec> [ [, <attr-spec>] :: ] <entity-decl-list>
<declaration-type-spec> = <intrinsic-type-spec>
                          | TYPE ( <derived-type-spec> )
                          | CLASS ( <derived-type-spec> )
                          | CLASS ( * )

<derived-type-spec> = <type-name> [ ( <type-param-spec-list> ) ]
<type-param-spec> = [ <keyword> = ] <type-param-value>
<type-param-value> = <scalar-int-expr> | * | :

<intrinsic-type-spec> = INTEGER [<kind-selector>]
                        | REAL [<kind-selector>]
                        | DOUBLE PRECISION
                        | COMPLEX [<kind-selector>]
                        | CHARACTER [<char-selector>]
                        | LOGICAL [<kind-selector>]

<kind-selector> = ( [ KIND = ] <scalar-int-initialization-expr> )
EXTENSION:
  <kind-selector> = ( [ KIND = ] <scalar-int-initialization-expr> )
                    | * <length>

<char-selector> = <length-selector>
                  | ( LEN = <type-param-value>,
                      KIND = <scalar-int-initialization-expr> )
                  | ( <type-param-value>, [ KIND = ]
                      <scalar-int-initialization-expr> )
                  | ( KIND = <scalar-int-initialization-expr> [,
                      LEN = <type-param-value>] )
<length-selector> = ( [ LEN = ] <type-param-value> )
                    | * <char-length> [ , ]
<char-length> = ( <type-param-value> ) | <scalar-int-literal-constant>

<attr-spec> = <access-spec> | ALLOCATABLE | ASYNCHRONOUS
              | DIMENSION ( <array-spec> ) | EXTERNAL
              | INTENT ( <intent-spec> ) | INTRINSIC
              | <language-binding-spec> | OPTIONAL
              | PARAMETER | POINTER | PROTECTED | SAVE
              | TARGET | VALUE | VOLATILE
<entity-decl> = <object-name> [ ( <array-spec> ) ] [ * <char-length> ]
                [ <initialization> ]
              | <function-name> [ * <char-length> ]
<initialization> =  = <initialization-expr>
                    | => NULL
<access-spec> = PUBLIC | PRIVATE
<language-binding-spec> = BIND ( C [ , NAME =
                                 <scalar-char-initialization-expr>] )
<array-spec> =   <explicit-shape-spec-list>
               | <assumed-shape-spec-list>
               | <deferred-shape-spec-list>
               | <assumed-size-spec>
<explicit-shape-spec> = [ <lower-bound> : ] <upper-bound>
<assumed-shape-spec> = [ <lower-bound> ] :
<deferred-shape-spec> = :
<assumed-size-spec> = [ <explicit-shape-spec-list> , ] [ <lower-bound> : ] *
<bound> = <specification-expr>

<int-literal-constant> = <digit-string> [ _ <kind-param> ]
<digit-string> = <digit> [ <digit> ]..
<kind-param> = <digit-string> | <scalar-int-constant-name>
match[source]
default_kind = 4[source]
get_zero_value()[source]
class fparser.one.typedecl_statements.Real(parent, item)[source]

Bases: TypeDeclarationStatement

Class capturing various sorts of type declaration.

<declaration-type-spec> [ [, <attr-spec>] :: ] <entity-decl-list>
<declaration-type-spec> = <intrinsic-type-spec>
                          | TYPE ( <derived-type-spec> )
                          | CLASS ( <derived-type-spec> )
                          | CLASS ( * )

<derived-type-spec> = <type-name> [ ( <type-param-spec-list> ) ]
<type-param-spec> = [ <keyword> = ] <type-param-value>
<type-param-value> = <scalar-int-expr> | * | :

<intrinsic-type-spec> = INTEGER [<kind-selector>]
                        | REAL [<kind-selector>]
                        | DOUBLE PRECISION
                        | COMPLEX [<kind-selector>]
                        | CHARACTER [<char-selector>]
                        | LOGICAL [<kind-selector>]

<kind-selector> = ( [ KIND = ] <scalar-int-initialization-expr> )
EXTENSION:
  <kind-selector> = ( [ KIND = ] <scalar-int-initialization-expr> )
                    | * <length>

<char-selector> = <length-selector>
                  | ( LEN = <type-param-value>,
                      KIND = <scalar-int-initialization-expr> )
                  | ( <type-param-value>, [ KIND = ]
                      <scalar-int-initialization-expr> )
                  | ( KIND = <scalar-int-initialization-expr> [,
                      LEN = <type-param-value>] )
<length-selector> = ( [ LEN = ] <type-param-value> )
                    | * <char-length> [ , ]
<char-length> = ( <type-param-value> ) | <scalar-int-literal-constant>

<attr-spec> = <access-spec> | ALLOCATABLE | ASYNCHRONOUS
              | DIMENSION ( <array-spec> ) | EXTERNAL
              | INTENT ( <intent-spec> ) | INTRINSIC
              | <language-binding-spec> | OPTIONAL
              | PARAMETER | POINTER | PROTECTED | SAVE
              | TARGET | VALUE | VOLATILE
<entity-decl> = <object-name> [ ( <array-spec> ) ] [ * <char-length> ]
                [ <initialization> ]
              | <function-name> [ * <char-length> ]
<initialization> =  = <initialization-expr>
                    | => NULL
<access-spec> = PUBLIC | PRIVATE
<language-binding-spec> = BIND ( C [ , NAME =
                                 <scalar-char-initialization-expr>] )
<array-spec> =   <explicit-shape-spec-list>
               | <assumed-shape-spec-list>
               | <deferred-shape-spec-list>
               | <assumed-size-spec>
<explicit-shape-spec> = [ <lower-bound> : ] <upper-bound>
<assumed-shape-spec> = [ <lower-bound> ] :
<deferred-shape-spec> = :
<assumed-size-spec> = [ <explicit-shape-spec-list> , ] [ <lower-bound> : ] *
<bound> = <specification-expr>

<int-literal-constant> = <digit-string> [ _ <kind-param> ]
<digit-string> = <digit> [ <digit> ]..
<kind-param> = <digit-string> | <scalar-int-constant-name>
match[source]
default_kind = 4[source]
get_zero_value()[source]
class fparser.one.typedecl_statements.DoublePrecision(parent, item)[source]

Bases: TypeDeclarationStatement

Class capturing various sorts of type declaration.

<declaration-type-spec> [ [, <attr-spec>] :: ] <entity-decl-list>
<declaration-type-spec> = <intrinsic-type-spec>
                          | TYPE ( <derived-type-spec> )
                          | CLASS ( <derived-type-spec> )
                          | CLASS ( * )

<derived-type-spec> = <type-name> [ ( <type-param-spec-list> ) ]
<type-param-spec> = [ <keyword> = ] <type-param-value>
<type-param-value> = <scalar-int-expr> | * | :

<intrinsic-type-spec> = INTEGER [<kind-selector>]
                        | REAL [<kind-selector>]
                        | DOUBLE PRECISION
                        | COMPLEX [<kind-selector>]
                        | CHARACTER [<char-selector>]
                        | LOGICAL [<kind-selector>]

<kind-selector> = ( [ KIND = ] <scalar-int-initialization-expr> )
EXTENSION:
  <kind-selector> = ( [ KIND = ] <scalar-int-initialization-expr> )
                    | * <length>

<char-selector> = <length-selector>
                  | ( LEN = <type-param-value>,
                      KIND = <scalar-int-initialization-expr> )
                  | ( <type-param-value>, [ KIND = ]
                      <scalar-int-initialization-expr> )
                  | ( KIND = <scalar-int-initialization-expr> [,
                      LEN = <type-param-value>] )
<length-selector> = ( [ LEN = ] <type-param-value> )
                    | * <char-length> [ , ]
<char-length> = ( <type-param-value> ) | <scalar-int-literal-constant>

<attr-spec> = <access-spec> | ALLOCATABLE | ASYNCHRONOUS
              | DIMENSION ( <array-spec> ) | EXTERNAL
              | INTENT ( <intent-spec> ) | INTRINSIC
              | <language-binding-spec> | OPTIONAL
              | PARAMETER | POINTER | PROTECTED | SAVE
              | TARGET | VALUE | VOLATILE
<entity-decl> = <object-name> [ ( <array-spec> ) ] [ * <char-length> ]
                [ <initialization> ]
              | <function-name> [ * <char-length> ]
<initialization> =  = <initialization-expr>
                    | => NULL
<access-spec> = PUBLIC | PRIVATE
<language-binding-spec> = BIND ( C [ , NAME =
                                 <scalar-char-initialization-expr>] )
<array-spec> =   <explicit-shape-spec-list>
               | <assumed-shape-spec-list>
               | <deferred-shape-spec-list>
               | <assumed-size-spec>
<explicit-shape-spec> = [ <lower-bound> : ] <upper-bound>
<assumed-shape-spec> = [ <lower-bound> ] :
<deferred-shape-spec> = :
<assumed-size-spec> = [ <explicit-shape-spec-list> , ] [ <lower-bound> : ] *
<bound> = <specification-expr>

<int-literal-constant> = <digit-string> [ _ <kind-param> ]
<digit-string> = <digit> [ <digit> ]..
<kind-param> = <digit-string> | <scalar-int-constant-name>
match[source]
default_kind = 8[source]
get_byte_size()[source]
get_zero_value()[source]
class fparser.one.typedecl_statements.Complex(parent, item)[source]

Bases: TypeDeclarationStatement

Class capturing various sorts of type declaration.

<declaration-type-spec> [ [, <attr-spec>] :: ] <entity-decl-list>
<declaration-type-spec> = <intrinsic-type-spec>
                          | TYPE ( <derived-type-spec> )
                          | CLASS ( <derived-type-spec> )
                          | CLASS ( * )

<derived-type-spec> = <type-name> [ ( <type-param-spec-list> ) ]
<type-param-spec> = [ <keyword> = ] <type-param-value>
<type-param-value> = <scalar-int-expr> | * | :

<intrinsic-type-spec> = INTEGER [<kind-selector>]
                        | REAL [<kind-selector>]
                        | DOUBLE PRECISION
                        | COMPLEX [<kind-selector>]
                        | CHARACTER [<char-selector>]
                        | LOGICAL [<kind-selector>]

<kind-selector> = ( [ KIND = ] <scalar-int-initialization-expr> )
EXTENSION:
  <kind-selector> = ( [ KIND = ] <scalar-int-initialization-expr> )
                    | * <length>

<char-selector> = <length-selector>
                  | ( LEN = <type-param-value>,
                      KIND = <scalar-int-initialization-expr> )
                  | ( <type-param-value>, [ KIND = ]
                      <scalar-int-initialization-expr> )
                  | ( KIND = <scalar-int-initialization-expr> [,
                      LEN = <type-param-value>] )
<length-selector> = ( [ LEN = ] <type-param-value> )
                    | * <char-length> [ , ]
<char-length> = ( <type-param-value> ) | <scalar-int-literal-constant>

<attr-spec> = <access-spec> | ALLOCATABLE | ASYNCHRONOUS
              | DIMENSION ( <array-spec> ) | EXTERNAL
              | INTENT ( <intent-spec> ) | INTRINSIC
              | <language-binding-spec> | OPTIONAL
              | PARAMETER | POINTER | PROTECTED | SAVE
              | TARGET | VALUE | VOLATILE
<entity-decl> = <object-name> [ ( <array-spec> ) ] [ * <char-length> ]
                [ <initialization> ]
              | <function-name> [ * <char-length> ]
<initialization> =  = <initialization-expr>
                    | => NULL
<access-spec> = PUBLIC | PRIVATE
<language-binding-spec> = BIND ( C [ , NAME =
                                 <scalar-char-initialization-expr>] )
<array-spec> =   <explicit-shape-spec-list>
               | <assumed-shape-spec-list>
               | <deferred-shape-spec-list>
               | <assumed-size-spec>
<explicit-shape-spec> = [ <lower-bound> : ] <upper-bound>
<assumed-shape-spec> = [ <lower-bound> ] :
<deferred-shape-spec> = :
<assumed-size-spec> = [ <explicit-shape-spec-list> , ] [ <lower-bound> : ] *
<bound> = <specification-expr>

<int-literal-constant> = <digit-string> [ _ <kind-param> ]
<digit-string> = <digit> [ <digit> ]..
<kind-param> = <digit-string> | <scalar-int-constant-name>
match[source]
default_kind = 4[source]
get_byte_size()[source]
get_zero_value()[source]
get_part_typedecl()[source]
class fparser.one.typedecl_statements.DoubleComplex(parent, item)[source]

Bases: TypeDeclarationStatement

Class capturing various sorts of type declaration.

<declaration-type-spec> [ [, <attr-spec>] :: ] <entity-decl-list>
<declaration-type-spec> = <intrinsic-type-spec>
                          | TYPE ( <derived-type-spec> )
                          | CLASS ( <derived-type-spec> )
                          | CLASS ( * )

<derived-type-spec> = <type-name> [ ( <type-param-spec-list> ) ]
<type-param-spec> = [ <keyword> = ] <type-param-value>
<type-param-value> = <scalar-int-expr> | * | :

<intrinsic-type-spec> = INTEGER [<kind-selector>]
                        | REAL [<kind-selector>]
                        | DOUBLE PRECISION
                        | COMPLEX [<kind-selector>]
                        | CHARACTER [<char-selector>]
                        | LOGICAL [<kind-selector>]

<kind-selector> = ( [ KIND = ] <scalar-int-initialization-expr> )
EXTENSION:
  <kind-selector> = ( [ KIND = ] <scalar-int-initialization-expr> )
                    | * <length>

<char-selector> = <length-selector>
                  | ( LEN = <type-param-value>,
                      KIND = <scalar-int-initialization-expr> )
                  | ( <type-param-value>, [ KIND = ]
                      <scalar-int-initialization-expr> )
                  | ( KIND = <scalar-int-initialization-expr> [,
                      LEN = <type-param-value>] )
<length-selector> = ( [ LEN = ] <type-param-value> )
                    | * <char-length> [ , ]
<char-length> = ( <type-param-value> ) | <scalar-int-literal-constant>

<attr-spec> = <access-spec> | ALLOCATABLE | ASYNCHRONOUS
              | DIMENSION ( <array-spec> ) | EXTERNAL
              | INTENT ( <intent-spec> ) | INTRINSIC
              | <language-binding-spec> | OPTIONAL
              | PARAMETER | POINTER | PROTECTED | SAVE
              | TARGET | VALUE | VOLATILE
<entity-decl> = <object-name> [ ( <array-spec> ) ] [ * <char-length> ]
                [ <initialization> ]
              | <function-name> [ * <char-length> ]
<initialization> =  = <initialization-expr>
                    | => NULL
<access-spec> = PUBLIC | PRIVATE
<language-binding-spec> = BIND ( C [ , NAME =
                                 <scalar-char-initialization-expr>] )
<array-spec> =   <explicit-shape-spec-list>
               | <assumed-shape-spec-list>
               | <deferred-shape-spec-list>
               | <assumed-size-spec>
<explicit-shape-spec> = [ <lower-bound> : ] <upper-bound>
<assumed-shape-spec> = [ <lower-bound> ] :
<deferred-shape-spec> = :
<assumed-size-spec> = [ <explicit-shape-spec-list> , ] [ <lower-bound> : ] *
<bound> = <specification-expr>

<int-literal-constant> = <digit-string> [ _ <kind-param> ]
<digit-string> = <digit> [ <digit> ]..
<kind-param> = <digit-string> | <scalar-int-constant-name>
match[source]
default_kind = 8[source]
get_byte_size()[source]
get_zero_value()[source]
class fparser.one.typedecl_statements.Logical(parent, item)[source]

Bases: TypeDeclarationStatement

Class capturing various sorts of type declaration.

<declaration-type-spec> [ [, <attr-spec>] :: ] <entity-decl-list>
<declaration-type-spec> = <intrinsic-type-spec>
                          | TYPE ( <derived-type-spec> )
                          | CLASS ( <derived-type-spec> )
                          | CLASS ( * )

<derived-type-spec> = <type-name> [ ( <type-param-spec-list> ) ]
<type-param-spec> = [ <keyword> = ] <type-param-value>
<type-param-value> = <scalar-int-expr> | * | :

<intrinsic-type-spec> = INTEGER [<kind-selector>]
                        | REAL [<kind-selector>]
                        | DOUBLE PRECISION
                        | COMPLEX [<kind-selector>]
                        | CHARACTER [<char-selector>]
                        | LOGICAL [<kind-selector>]

<kind-selector> = ( [ KIND = ] <scalar-int-initialization-expr> )
EXTENSION:
  <kind-selector> = ( [ KIND = ] <scalar-int-initialization-expr> )
                    | * <length>

<char-selector> = <length-selector>
                  | ( LEN = <type-param-value>,
                      KIND = <scalar-int-initialization-expr> )
                  | ( <type-param-value>, [ KIND = ]
                      <scalar-int-initialization-expr> )
                  | ( KIND = <scalar-int-initialization-expr> [,
                      LEN = <type-param-value>] )
<length-selector> = ( [ LEN = ] <type-param-value> )
                    | * <char-length> [ , ]
<char-length> = ( <type-param-value> ) | <scalar-int-literal-constant>

<attr-spec> = <access-spec> | ALLOCATABLE | ASYNCHRONOUS
              | DIMENSION ( <array-spec> ) | EXTERNAL
              | INTENT ( <intent-spec> ) | INTRINSIC
              | <language-binding-spec> | OPTIONAL
              | PARAMETER | POINTER | PROTECTED | SAVE
              | TARGET | VALUE | VOLATILE
<entity-decl> = <object-name> [ ( <array-spec> ) ] [ * <char-length> ]
                [ <initialization> ]
              | <function-name> [ * <char-length> ]
<initialization> =  = <initialization-expr>
                    | => NULL
<access-spec> = PUBLIC | PRIVATE
<language-binding-spec> = BIND ( C [ , NAME =
                                 <scalar-char-initialization-expr>] )
<array-spec> =   <explicit-shape-spec-list>
               | <assumed-shape-spec-list>
               | <deferred-shape-spec-list>
               | <assumed-size-spec>
<explicit-shape-spec> = [ <lower-bound> : ] <upper-bound>
<assumed-shape-spec> = [ <lower-bound> ] :
<deferred-shape-spec> = :
<assumed-size-spec> = [ <explicit-shape-spec-list> , ] [ <lower-bound> : ] *
<bound> = <specification-expr>

<int-literal-constant> = <digit-string> [ _ <kind-param> ]
<digit-string> = <digit> [ <digit> ]..
<kind-param> = <digit-string> | <scalar-int-constant-name>
match[source]
default_kind = 4[source]
get_zero_value()[source]
class fparser.one.typedecl_statements.Character(parent, item)[source]

Bases: TypeDeclarationStatement

Class capturing various sorts of type declaration.

<declaration-type-spec> [ [, <attr-spec>] :: ] <entity-decl-list>
<declaration-type-spec> = <intrinsic-type-spec>
                          | TYPE ( <derived-type-spec> )
                          | CLASS ( <derived-type-spec> )
                          | CLASS ( * )

<derived-type-spec> = <type-name> [ ( <type-param-spec-list> ) ]
<type-param-spec> = [ <keyword> = ] <type-param-value>
<type-param-value> = <scalar-int-expr> | * | :

<intrinsic-type-spec> = INTEGER [<kind-selector>]
                        | REAL [<kind-selector>]
                        | DOUBLE PRECISION
                        | COMPLEX [<kind-selector>]
                        | CHARACTER [<char-selector>]
                        | LOGICAL [<kind-selector>]

<kind-selector> = ( [ KIND = ] <scalar-int-initialization-expr> )
EXTENSION:
  <kind-selector> = ( [ KIND = ] <scalar-int-initialization-expr> )
                    | * <length>

<char-selector> = <length-selector>
                  | ( LEN = <type-param-value>,
                      KIND = <scalar-int-initialization-expr> )
                  | ( <type-param-value>, [ KIND = ]
                      <scalar-int-initialization-expr> )
                  | ( KIND = <scalar-int-initialization-expr> [,
                      LEN = <type-param-value>] )
<length-selector> = ( [ LEN = ] <type-param-value> )
                    | * <char-length> [ , ]
<char-length> = ( <type-param-value> ) | <scalar-int-literal-constant>

<attr-spec> = <access-spec> | ALLOCATABLE | ASYNCHRONOUS
              | DIMENSION ( <array-spec> ) | EXTERNAL
              | INTENT ( <intent-spec> ) | INTRINSIC
              | <language-binding-spec> | OPTIONAL
              | PARAMETER | POINTER | PROTECTED | SAVE
              | TARGET | VALUE | VOLATILE
<entity-decl> = <object-name> [ ( <array-spec> ) ] [ * <char-length> ]
                [ <initialization> ]
              | <function-name> [ * <char-length> ]
<initialization> =  = <initialization-expr>
                    | => NULL
<access-spec> = PUBLIC | PRIVATE
<language-binding-spec> = BIND ( C [ , NAME =
                                 <scalar-char-initialization-expr>] )
<array-spec> =   <explicit-shape-spec-list>
               | <assumed-shape-spec-list>
               | <deferred-shape-spec-list>
               | <assumed-size-spec>
<explicit-shape-spec> = [ <lower-bound> : ] <upper-bound>
<assumed-shape-spec> = [ <lower-bound> ] :
<deferred-shape-spec> = :
<assumed-size-spec> = [ <explicit-shape-spec-list> , ] [ <lower-bound> : ] *
<bound> = <specification-expr>

<int-literal-constant> = <digit-string> [ _ <kind-param> ]
<digit-string> = <digit> [ <digit> ]..
<kind-param> = <digit-string> | <scalar-int-constant-name>
match[source]
default_kind = 1[source]
get_zero_value()[source]
class fparser.one.typedecl_statements.Byte(parent, item)[source]

Bases: TypeDeclarationStatement

Class capturing various sorts of type declaration.

<declaration-type-spec> [ [, <attr-spec>] :: ] <entity-decl-list>
<declaration-type-spec> = <intrinsic-type-spec>
                          | TYPE ( <derived-type-spec> )
                          | CLASS ( <derived-type-spec> )
                          | CLASS ( * )

<derived-type-spec> = <type-name> [ ( <type-param-spec-list> ) ]
<type-param-spec> = [ <keyword> = ] <type-param-value>
<type-param-value> = <scalar-int-expr> | * | :

<intrinsic-type-spec> = INTEGER [<kind-selector>]
                        | REAL [<kind-selector>]
                        | DOUBLE PRECISION
                        | COMPLEX [<kind-selector>]
                        | CHARACTER [<char-selector>]
                        | LOGICAL [<kind-selector>]

<kind-selector> = ( [ KIND = ] <scalar-int-initialization-expr> )
EXTENSION:
  <kind-selector> = ( [ KIND = ] <scalar-int-initialization-expr> )
                    | * <length>

<char-selector> = <length-selector>
                  | ( LEN = <type-param-value>,
                      KIND = <scalar-int-initialization-expr> )
                  | ( <type-param-value>, [ KIND = ]
                      <scalar-int-initialization-expr> )
                  | ( KIND = <scalar-int-initialization-expr> [,
                      LEN = <type-param-value>] )
<length-selector> = ( [ LEN = ] <type-param-value> )
                    | * <char-length> [ , ]
<char-length> = ( <type-param-value> ) | <scalar-int-literal-constant>

<attr-spec> = <access-spec> | ALLOCATABLE | ASYNCHRONOUS
              | DIMENSION ( <array-spec> ) | EXTERNAL
              | INTENT ( <intent-spec> ) | INTRINSIC
              | <language-binding-spec> | OPTIONAL
              | PARAMETER | POINTER | PROTECTED | SAVE
              | TARGET | VALUE | VOLATILE
<entity-decl> = <object-name> [ ( <array-spec> ) ] [ * <char-length> ]
                [ <initialization> ]
              | <function-name> [ * <char-length> ]
<initialization> =  = <initialization-expr>
                    | => NULL
<access-spec> = PUBLIC | PRIVATE
<language-binding-spec> = BIND ( C [ , NAME =
                                 <scalar-char-initialization-expr>] )
<array-spec> =   <explicit-shape-spec-list>
               | <assumed-shape-spec-list>
               | <deferred-shape-spec-list>
               | <assumed-size-spec>
<explicit-shape-spec> = [ <lower-bound> : ] <upper-bound>
<assumed-shape-spec> = [ <lower-bound> ] :
<deferred-shape-spec> = :
<assumed-size-spec> = [ <explicit-shape-spec-list> , ] [ <lower-bound> : ] *
<bound> = <specification-expr>

<int-literal-constant> = <digit-string> [ _ <kind-param> ]
<digit-string> = <digit> [ <digit> ]..
<kind-param> = <digit-string> | <scalar-int-constant-name>
match[source]
default_kind = 1[source]
get_zero_value()[source]
fparser.one.typedecl_statements.TypeStmt[source]
class fparser.one.typedecl_statements.Class(parent, item)[source]

Bases: TypeDeclarationStatement

Class capturing various sorts of type declaration.

<declaration-type-spec> [ [, <attr-spec>] :: ] <entity-decl-list>
<declaration-type-spec> = <intrinsic-type-spec>
                          | TYPE ( <derived-type-spec> )
                          | CLASS ( <derived-type-spec> )
                          | CLASS ( * )

<derived-type-spec> = <type-name> [ ( <type-param-spec-list> ) ]
<type-param-spec> = [ <keyword> = ] <type-param-value>
<type-param-value> = <scalar-int-expr> | * | :

<intrinsic-type-spec> = INTEGER [<kind-selector>]
                        | REAL [<kind-selector>]
                        | DOUBLE PRECISION
                        | COMPLEX [<kind-selector>]
                        | CHARACTER [<char-selector>]
                        | LOGICAL [<kind-selector>]

<kind-selector> = ( [ KIND = ] <scalar-int-initialization-expr> )
EXTENSION:
  <kind-selector> = ( [ KIND = ] <scalar-int-initialization-expr> )
                    | * <length>

<char-selector> = <length-selector>
                  | ( LEN = <type-param-value>,
                      KIND = <scalar-int-initialization-expr> )
                  | ( <type-param-value>, [ KIND = ]
                      <scalar-int-initialization-expr> )
                  | ( KIND = <scalar-int-initialization-expr> [,
                      LEN = <type-param-value>] )
<length-selector> = ( [ LEN = ] <type-param-value> )
                    | * <char-length> [ , ]
<char-length> = ( <type-param-value> ) | <scalar-int-literal-constant>

<attr-spec> = <access-spec> | ALLOCATABLE | ASYNCHRONOUS
              | DIMENSION ( <array-spec> ) | EXTERNAL
              | INTENT ( <intent-spec> ) | INTRINSIC
              | <language-binding-spec> | OPTIONAL
              | PARAMETER | POINTER | PROTECTED | SAVE
              | TARGET | VALUE | VOLATILE
<entity-decl> = <object-name> [ ( <array-spec> ) ] [ * <char-length> ]
                [ <initialization> ]
              | <function-name> [ * <char-length> ]
<initialization> =  = <initialization-expr>
                    | => NULL
<access-spec> = PUBLIC | PRIVATE
<language-binding-spec> = BIND ( C [ , NAME =
                                 <scalar-char-initialization-expr>] )
<array-spec> =   <explicit-shape-spec-list>
               | <assumed-shape-spec-list>
               | <deferred-shape-spec-list>
               | <assumed-size-spec>
<explicit-shape-spec> = [ <lower-bound> : ] <upper-bound>
<assumed-shape-spec> = [ <lower-bound> ] :
<deferred-shape-spec> = :
<assumed-size-spec> = [ <explicit-shape-spec-list> , ] [ <lower-bound> : ] *
<bound> = <specification-expr>

<int-literal-constant> = <digit-string> [ _ <kind-param> ]
<digit-string> = <digit> [ <digit> ]..
<kind-param> = <digit-string> | <scalar-int-constant-name>
match[source]
class fparser.one.typedecl_statements.Implicit(parent, item)[source]

Bases: fparser.common.base_classes.Statement

Class capturing various forms of IMPLICIT statement.

IMPLICIT <implicit-spec-list>
IMPLICIT NONE
<implicit-spec> = <declaration-type-spec> ( <letter-spec-list> )
<letter-spec> = <letter> [ - <letter> ]
match[source]
letters[source]
process_item()[source]
tofortran(isfix=None)[source]
analyze()[source]

Analyze the Implicit statments constructed by the parser and set-up the associated implicit_rules belonging to the parent of this object in the AST.

fparser.one.typedecl_statements.intrinsic_type_spec[source]
fparser.one.typedecl_statements.declaration_type_spec[source]