{-# LANGUAGE CPP #-}
module Text.Haiji.Syntax.Expression
( Expression(..)
, expression
) where
#if MIN_VERSION_base(4,8,0)
#else
import Control.Applicative
#endif
import Data.Attoparsec.Text
import Text.Haiji.Syntax.Variable
data Filter = Filter deriving Eq
instance Show Filter where
show _ = ""
data Expression = Expression Variable [Filter] deriving Eq
instance Show Expression where
show (Expression var fs) = show var ++ concat [ '|' : show f | f <- fs ]
expression :: Parser Expression
expression = Expression <$> variable <*> return []