{-# LANGUAGE DeriveLift #-}

module Burrito.Type.Expression
  ( Expression(..)
  ) where

import qualified Burrito.Type.NonEmpty as NonEmpty
import qualified Burrito.Type.Operator as Operator
import qualified Burrito.Type.Variable as Variable
import qualified Language.Haskell.TH.Syntax as TH


-- | Represents an expression in a token.
data Expression = Expression
  { operator :: Operator.Operator
  , variables :: NonEmpty.NonEmpty Variable.Variable
  } deriving (Eq, TH.Lift, Show)