module Code where

data Unit = Unit { inlets::[String]
                 , outlets::[String]
                 , statements::[Statement]
                 , statevars::[(String,String)]
                 }
            deriving (Show,Eq)

data Statement = Statement { inputs::[String]
                           , op::Op
                           , outputs::[String]
                           }
                 deriving (Show,Eq)

data Op = Add
        | Sub
        | Mul
        | Div
        | Store String
        | Load String
          deriving (Show,Eq)