]> Git — Sourcephile - comptalang.git/blob - lib/Hcompta/Model/Filter.hs
Ajout : lib/Hcompta/ : structures de données
[comptalang.git] / lib / Hcompta / Model / Filter.hs
1 {-# LANGUAGE DeriveDataTypeable #-}
2 module Hcompta.Model.Filter where
3
4 import Data.Data
5 import Data.Typeable ()
6
7 import qualified Hcompta.Model.Account as Account
8 import qualified Hcompta.Model.Amount as Amount
9 import qualified Hcompta.Model.Date as Date
10 import qualified Hcompta.Model.Tag as Tag
11
12 data T
13 = Account SComp Account.Name
14 | AccountTag SComp String (Maybe (SComp, String))
15 | Amount (NComp, NAbsComp) Amount.T
16 | And T T
17 | Any
18 | Balance (NComp, NAbsComp) Amount.T
19 | Commodity SComp String
20 | Date Date.Span
21 | Date2 Date.Span
22 | Depth NComp Int
23 | Description SComp String
24 | None
25 | Not T
26 | Or T T
27 | Real Bool
28 | Status Bool
29 | Tag SComp String (Maybe (SComp, String))
30 deriving (Data, Eq, Show, Typeable)
31
32 data Context
33 = Context
34 { context_day :: Date.Day
35 } deriving (Data, Eq, Show, Typeable)
36
37 data NComp
38 = NLt
39 | NLtEq
40 | NGt
41 | NGtEq
42 | NEq
43 deriving (Data, Eq, Show, Typeable)
44
45 type NAbsComp
46 = Bool
47
48 data SComp
49 = SEq
50 | SRegexp
51 deriving (Data, Eq, Show, Typeable)