{-# LANGUAGE DeriveGeneric #-}
module Test.Tasty.Patterns.Types where
import GHC.Generics
data Expr
= IntLit !Int
| NF
| Add Expr Expr
| Sub Expr Expr
| Neg Expr
| Not Expr
| And Expr Expr
| LT Expr Expr
| GT Expr Expr
| LE Expr Expr
| GE Expr Expr
| EQ Expr Expr
| NE Expr Expr
| Or Expr Expr
| Concat Expr Expr
| Match Expr String
| NoMatch Expr String
| Field Expr
| StringLit String
| If Expr Expr Expr
| ERE String
| ToUpperFn Expr
| ToLowerFn Expr
| LengthFn (Maybe Expr)
| MatchFn Expr String
| SubstrFn Expr Expr (Maybe Expr)
deriving (Int -> Expr -> ShowS
[Expr] -> ShowS
Expr -> String
(Int -> Expr -> ShowS)
-> (Expr -> String) -> ([Expr] -> ShowS) -> Show Expr
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Expr] -> ShowS
$cshowList :: [Expr] -> ShowS
show :: Expr -> String
$cshow :: Expr -> String
showsPrec :: Int -> Expr -> ShowS
$cshowsPrec :: Int -> Expr -> ShowS
Show, Expr -> Expr -> Bool
(Expr -> Expr -> Bool) -> (Expr -> Expr -> Bool) -> Eq Expr
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Expr -> Expr -> Bool
$c/= :: Expr -> Expr -> Bool
== :: Expr -> Expr -> Bool
$c== :: Expr -> Expr -> Bool
Eq, (forall x. Expr -> Rep Expr x)
-> (forall x. Rep Expr x -> Expr) -> Generic Expr
forall x. Rep Expr x -> Expr
forall x. Expr -> Rep Expr x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Expr x -> Expr
$cfrom :: forall x. Expr -> Rep Expr x
Generic)