language-c99-simple-0.3.0: C-like AST to simplify writing C99 programs.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Language.C99.Simple.AST

Documentation

type Ident = String Source #

data TransUnit Source #

Constructors

TransUnit [Decln] [FunDef] 

data FunDef Source #

Constructors

FunDef (Maybe StorageSpec) Type Ident [Param] [Decln] [Stmt] 

data Param Source #

Constructors

Param Type Ident 

data Decln Source #

Constructors

VarDecln (Maybe StorageSpec) Type Ident (Maybe Init) 
FunDecln (Maybe StorageSpec) Type Ident [Param] 
TypeDecln Type 

data Init Source #

Constructors

InitExpr Expr 
InitList (NonEmpty InitItem) 

data InitItem Source #

Constructors

InitItem (Maybe Ident) Init 

data UnaryOp Source #

Constructors

Inc 
Dec 
Ref 
DeRef 
Plus 
Min 
BoolNot 
Not 

data BinaryOp Source #

Constructors

Mult 
Div 
Mod 
Add 
Sub 
ShiftL 
ShiftR 
LT 
GT 
LE 
GE 
Eq 
NEq 
And 
XOr 
Or 
LAnd 
LOr 

data TypeName Source #

Constructors

TypeName Type 

data Case Source #

Constructors

Case Expr Stmt 
Default Stmt