-- Haskell data types for the abstract syntax.
-- Generated by the BNF converter.

module MiniJS.Abs where

newtype Ident = Ident String
  deriving (Eq, Ord, Show, Read)

data Program = Prg [Stm]
  deriving (Eq, Ord, Show, Read)

data Stm = SAssign Ident Exp | SPrint Exp
  deriving (Eq, Ord, Show, Read)

data Exp
    = EVar Ident
    | EInt Integer
    | EDouble Double
    | ETimes Exp Exp
    | EDiv Exp Exp
    | EPlus Exp Exp
    | EMinus Exp Exp
  deriving (Eq, Ord, Show, Read)