language-fortran-0.2.7: Fortran lexer and parser, language support, and extensions.

Safe HaskellNone
LanguageHaskell98

Language.Fortran

Documentation

data SubName p Source

Constructors

SubName p String 
NullSubName p 

Instances

Functor SubName 
Tagged SubName 
Eq p => Eq (SubName p) 
Data p => Data (SubName p) 
Show p => Show (SubName p) 
Alts v => OutputF (SubName p) v 
Typeable (* -> *) SubName 

data VarName p Source

Constructors

VarName p Variable 

Instances

Functor VarName 
Tagged VarName 
Eq p => Eq (VarName p) 
Data p => Data (VarName p) 
Read p => Read (VarName p) 
Show p => Show (VarName p) 
Alts v => OutputF (VarName p) v 
Typeable (* -> *) VarName 

data ArgName p Source

Constructors

ArgName p String 
ASeq p (ArgName p) (ArgName p) 
NullArg p 

Instances

Functor ArgName 
Tagged ArgName 
Eq p => Eq (ArgName p) 
Data p => Data (ArgName p) 
Show p => Show (ArgName p) 
(OutputG (VarName p) v, OutputG (ArgName p) v, Alts v) => OutputF (ArgName p) v 
Typeable (* -> *) ArgName 

data Arg p Source

Constructors

Arg p (ArgName p) SrcSpan 

Instances

Functor Arg 
Tagged Arg 
Eq p => Eq (Arg p) 
Data p => Data (Arg p) 
Show p => Show (Arg p) 
(OutputG (ArgName p) v, Alts v) => OutputF (Arg p) v 
Typeable (* -> *) Arg 

data ArgList p Source

Constructors

ArgList p (Expr p) 

Instances

Functor ArgList 
Tagged ArgList 
Eq p => Eq (ArgList p) 
Data p => Data (ArgList p) 
Show p => Show (ArgList p) 
(OutputG (Expr p) v, Alts v) => OutputF (ArgList p) v 
Typeable (* -> *) ArgList 

type Program p = [ProgUnit p] Source

data ProgUnit p Source

Constructors

Main p SrcSpan (SubName p) (Arg p) (Block p) [ProgUnit p] 
Sub p SrcSpan (Maybe (BaseType p)) (SubName p) (Arg p) (Block p) 
Function p SrcSpan (Maybe (BaseType p)) (SubName p) (Arg p) (Maybe (VarName p)) (Block p) 
Module p SrcSpan (SubName p) (Uses p) (Implicit p) (Decl p) [ProgUnit p] 
BlockData p SrcSpan (SubName p) (Uses p) (Implicit p) (Decl p) 
PSeq p SrcSpan (ProgUnit p) (ProgUnit p) 
Prog p SrcSpan (ProgUnit p) 
NullProg p SrcSpan 
IncludeProg p SrcSpan (Decl p) (Maybe (Fortran p)) 

Instances

Functor ProgUnit 
Tagged ProgUnit 
Eq p => Eq (ProgUnit p) 
Data p => Data (ProgUnit p) 
Show p => Show (ProgUnit p) 
Span (ProgUnit a) 
(OutputG (Arg p) v, OutputG (BaseType p) v, OutputG (Block p) v, OutputG (Decl p) v, OutputG (Fortran p) v, OutputG (Implicit p) v, OutputG (SubName p) v, OutputG (VarName p) v, OutputG (ProgUnit p) v, Alts v) => OutputF (ProgUnit p) v 
Typeable (* -> *) ProgUnit 

data Implicit p Source

Constructors

ImplicitNone p 
ImplicitNull p 

Instances

Functor Implicit 
Tagged Implicit 
Eq p => Eq (Implicit p) 
Data p => Data (Implicit p) 
Show p => Show (Implicit p) 
Alts v => OutputF (Implicit p) v 
Typeable (* -> *) Implicit 

data UseBlock p Source

Constructors

UseBlock (Uses p) SrcLoc 

Instances

Functor UseBlock 
Eq p => Eq (UseBlock p) 
Data p => Data (UseBlock p) 
Show p => Show (UseBlock p) 
(Alts v, OutputF (Uses p) v) => OutputF (UseBlock p) v 
Typeable (* -> *) UseBlock 

data Uses p Source

Constructors

Use p (String, Renames) (Uses p) p 
UseNil p 

Instances

Functor Uses 
Tagged Uses 
Eq p => Eq (Uses p) 
Data p => Data (Uses p) 
Show p => Show (Uses p) 
Alts v => OutputF (Uses p) v 
Typeable (* -> *) Uses 

data Block p Source

Constructors

Block p (UseBlock p) (Implicit p) SrcSpan (Decl p) (Fortran p) 

Instances

Functor Block 
Eq p => Eq (Block p) 
Data p => Data (Block p) 
Show p => Show (Block p) 
Span (Block a) 
(OutputG (Fortran p) v, OutputG (Decl p) v, OutputG (Implicit p) v, Alts v) => OutputF (Block p) v 
Typeable (* -> *) Block 

data Decl p Source

Instances

Functor Decl 
Tagged Decl 
Eq p => Eq (Decl p) 
Data p => Data (Decl p) 
Show p => Show (Decl p) 
Span (Decl a) 
(Indentor (Decl p), OutputG (ArgList p) v, OutputG (Attr p) v, OutputG (BinOp p) v, OutputG (Decl p) v, OutputG (DataForm p) v, OutputG (Expr p) v, OutputG (GSpec p) v, OutputG (InterfaceSpec p) v, OutputG (MeasureUnitSpec p) v, OutputG (SubName p) v, OutputG (UnaryOp p) v, OutputG (VarName p) v, OutputG (Type p) v, Alts v) => OutputF (Decl p) v 
Typeable (* -> *) Decl 

data Type p Source

Constructors

BaseType p (BaseType p) [Attr p] (Expr p) (Expr p) 
ArrayT p [(Expr p, Expr p)] (BaseType p) [Attr p] (Expr p) (Expr p) 

Instances

Functor Type 
Eq p => Eq (Type p) 
Data p => Data (Type p) 
Show p => Show (Type p) 
(OutputG (ArgList p) v, OutputG (BinOp p) v, OutputG (UnaryOp p) v, OutputG (BaseType p) v, OutputG (Expr p) v, OutputG (MeasureUnitSpec p) v, OutputG (VarName p) v, Alts v) => OutputF (Type p) v 
Typeable (* -> *) Type 

data BaseType p Source

Constructors

Integer p 
Real p 
Character p 
SomeType p 
DerivedType p (SubName p) 
Recursive p 
Pure p 
Elemental p 
Logical p 
Complex p 

Instances

Functor BaseType 
Tagged BaseType 
Eq p => Eq (BaseType p) 
Data p => Data (BaseType p) 
Show p => Show (BaseType p) 
(OutputG (SubName p) v, Alts v) => OutputF (BaseType p) v 
Typeable (* -> *) BaseType 

data Attr p Source

Instances

Functor Attr 
Tagged Attr 
Eq p => Eq (Attr p) 
Data p => Data (Attr p) 
Show p => Show (Attr p) 
(OutputG (MeasureUnitSpec p) v, Alts v) => OutputF (Attr p) v 
Typeable (* -> *) Attr 

data Fraction p Source

Instances

Functor Fraction 
Eq p => Eq (Fraction p) 
Data p => Data (Fraction p) 
Show p => Show (Fraction p) 
Alts v => OutputF (Fraction p) v 
Typeable (* -> *) Fraction 

data GSpec p Source

Constructors

GName p (Expr p) 
GOper p (BinOp p) 
GAssg p 

Instances

Functor GSpec 
Tagged GSpec 
Eq p => Eq (GSpec p) 
Data p => Data (GSpec p) 
Show p => Show (GSpec p) 
(OutputG (Arg p) v, OutputG (BinOp p) v, OutputG (Expr p) v, Alts v) => OutputF (GSpec p) v 
Typeable (* -> *) GSpec 

data InterfaceSpec p Source

Constructors

FunctionInterface p (SubName p) (Arg p) (Uses p) (Implicit p) (Decl p) 
SubroutineInterface p (SubName p) (Arg p) (Uses p) (Implicit p) (Decl p) 
ModuleProcedure p [SubName p] 

Instances

data DataForm p Source

Constructors

Data p [(Expr p, Expr p)] 

Instances

Functor DataForm 
Tagged DataForm 
Eq p => Eq (DataForm p) 
Data p => Data (DataForm p) 
Show p => Show (DataForm p) 
OutputG (Expr p) v => OutputF (DataForm p) v 
Typeable (* -> *) DataForm 

data IntentAttr p Source

Constructors

In p 
Out p 
InOut p 

Instances

data Fortran p Source

Instances

Functor Fortran 
Tagged Fortran 
Eq p => Eq (Fortran p) 
Data p => Data (Fortran p) 
Show p => Show (Fortran p) 
Span (Fortran a) 
(Indentor (Fortran p), OutputG (VarName p) v, OutputG (Expr p) v, OutputG (UnaryOp p) v, OutputG (BinOp p) v, OutputG (ArgList p) v, OutputIndG (Fortran p) v, OutputG (DataForm p) v, OutputG (Fortran p) v, OutputG (Spec p) v, Alts v) => OutputIndF (Fortran p) v 
(OutputIndF (Fortran p) v, Alts v) => OutputF (Fortran p) v 
Typeable (* -> *) Fortran 

data Expr p Source

Instances

Functor Expr 
Tagged Expr 
Eq p => Eq (Expr p) 
Data p => Data (Expr p) 
Show p => Show (Expr p) 
Span (Expr a) 
(OutputG (ArgList p) v, OutputG (BinOp p) v, OutputG (Expr p) v, OutputG (UnaryOp p) v, OutputG (VarName p) v, Alts v) => OutputF (Expr p) v 
Typeable (* -> *) Expr 

data BinOp p Source

Constructors

Plus p 
Minus p 
Mul p 
Div p 
Or p 
And p 
Concat p 
Power p 
RelEQ p 
RelNE p 
RelLT p 
RelLE p 
RelGT p 
RelGE p 

Instances

Functor BinOp 
Eq p => Eq (BinOp p) 
Data p => Data (BinOp p) 
Show p => Show (BinOp p) 
Alts v => OutputF (BinOp p) v 
Typeable (* -> *) BinOp 

data UnaryOp p Source

Constructors

UMinus p 
Not p 

Instances

Functor UnaryOp 
Eq p => Eq (UnaryOp p) 
Data p => Data (UnaryOp p) 
Show p => Show (UnaryOp p) 
Alts v => OutputF (UnaryOp p) v 
Typeable (* -> *) UnaryOp 

data Spec p Source

Constructors

Access p (Expr p) 
Action p (Expr p) 
Advance p (Expr p) 
Blank p (Expr p) 
Delim p (Expr p) 
Direct p (Expr p) 
End p (Expr p) 
Err p (Expr p) 
ExFile p (Expr p) 
Exist p (Expr p) 
Eor p (Expr p) 
File p (Expr p) 
FMT p (Expr p) 
Form p (Expr p) 
Formatted p (Expr p) 
Unformatted p (Expr p) 
IOLength p (Expr p) 
IOStat p (Expr p) 
Name p (Expr p) 
Named p (Expr p) 
NoSpec p (Expr p) 
Number p (Expr p) 
Floating p (Expr p) (Expr p) 
NextRec p (Expr p) 
NML p (Expr p) 
Opened p (Expr p) 
Pad p (Expr p) 
Position p (Expr p) 
Read p (Expr p) 
ReadWrite p (Expr p) 
Rec p (Expr p) 
Recl p (Expr p) 
Sequential p (Expr p) 
Size p (Expr p) 
Status p (Expr p) 
StringLit p String 
Unit p (Expr p) 
WriteSp p (Expr p) 
Delimiter p 

Instances

Functor Spec 
Eq p => Eq (Spec p) 
Data p => Data (Spec p) 
Show p => Show (Spec p) 
(OutputG (Expr p) v, Alts v) => OutputF (Spec p) v 
Typeable (* -> *) Spec 

class Span t where Source

Methods

srcSpan :: t -> (SrcLoc, SrcLoc) Source

Instances

Span (Expr a) 
Span (Fortran a) 
Span (Decl a) 
Span (Block a) 
Span (ProgUnit a)