]> ruin.nu Git - proglang.git/blob - Abssyntax.hs
7c95d5324e1a58ef1a8f32b099d16fb0babcac42
[proglang.git] / Abssyntax.hs
1 module Abssyntax where
2
3 -- Haskell module generated by the BNF converter
4
5 newtype Ident = Ident String deriving (Eq,Ord,Show)
6
7 data Stm =
8    SDecl Type Ident Exp
9  | SExp Exp
10  | SBlock [Stm]
11  | SIf Exp Stm Stm
12  | SWhile Exp Stm
13  | SPrint Exp
14  | SNoop
15   deriving (Eq,Ord,Show)
16
17 data Exp =
18    BExp Exp BOp Exp
19  | EVar Ident
20  | EAss Ident Exp
21  | EInt Integer
22  | ENeg Exp
23  | EBool Bool
24  | EReadI
25  | EReadB
26  | ExpT Type Exp
27  | EDefault
28  | OpExp Exp Op Exp
29  | EPost Ident Op
30   deriving (Eq,Ord,Show)
31
32 data Stms =
33    Program [Stm]
34   deriving (Eq,Ord,Show)
35
36 data BOp =
37    Lt
38  | ELt
39  | Gt
40  | EGt
41  | Eq
42  | NEq
43   deriving (Eq,Ord,Show)
44
45 data Op =
46    Plus
47  | Minus
48  | Times
49  | Div
50   deriving (Eq,Ord,Show)
51
52 data Type =
53    TInt
54  | TBool
55  | NoType
56   deriving (Eq,Ord,Show)
57