module AST where

data Cmd
  = Next -- >
  | Prev -- <
  | Incr -- +
  | Decr -- -
  | Print -- .
  | Input -- ,
  | Loop [Cmd] -- [...]
  deriving (Int -> Cmd -> ShowS
[Cmd] -> ShowS
Cmd -> String
(Int -> Cmd -> ShowS)
-> (Cmd -> String) -> ([Cmd] -> ShowS) -> Show Cmd
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Cmd -> ShowS
showsPrec :: Int -> Cmd -> ShowS
$cshow :: Cmd -> String
show :: Cmd -> String
$cshowList :: [Cmd] -> ShowS
showList :: [Cmd] -> ShowS
Show)

-- Criando tipo AST pela facilidade de leitura e manutenção
type AST = [Cmd]