]> ruin.nu Git - proglang.git/blob - Abssyntax.hs
streamlined the binary operators
[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    EAss Ident Exp
19  | EVar Ident
20  | EInt Integer
21  | ENeg Exp
22  | EBool Bool
23  | EReadI
24  | EReadB
25  | ExpT Type Exp
26  | EDefault
27  | BiOpExp Exp Op Exp
28  | EPost Ident Op
29   deriving (Eq,Ord,Show)
30
31 data Stms =
32    Program [Stm]
33   deriving (Eq,Ord,Show)
34
35 data Op =
36    Lt
37  | ELt
38  | Gt
39  | EGt
40  | Eq
41  | NEq
42  | Plus
43  | Minus
44  | Times
45  | Div
46   deriving (Eq,Ord,Show)
47
48 data Type =
49    TInt
50  | TBool
51  | NoType
52   deriving (Eq,Ord,Show)
53