File: Syntax.lhs

package info (click to toggle)
frown 0.6.1-13
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 9,956 kB
  • sloc: haskell: 35,132; makefile: 228; csh: 35; yacc: 23
file content (27 lines) | stat: -rw-r--r-- 761 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
> module Syntax
> where
>
> type Ident    =  String
> type TyIdent  =  String
>
> data Expr  =  Var      Ident
>            |  Block    [Expr]
>            |  Int      String
>            |  Un       UnOp Expr
>            |  Call     Ident [Expr]
>            |  Bin      Expr  BinOp Expr
>            |  Assign   Ident Expr
>            |  IfThen   Expr Expr
>            |  IfElse   Expr Expr Expr
>            |  While    Expr Expr
>            |  Let      [Decl] [Expr]
>               deriving (Show)
>
> data Decl    =  Variable  Ident Expr
>              |  Function  Ident [Ident] Expr
>               deriving (Show)
>
> data UnOp  =  Neg
>               deriving (Show)
> data BinOp =  Add | Sub | Mul | Div | Leq | Eq
>               deriving (Show)