diff options
Diffstat (limited to 'src/Data/JLD/Compaction/InverseContext.hs')
-rw-r--r-- | src/Data/JLD/Compaction/InverseContext.hs | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/Data/JLD/Compaction/InverseContext.hs b/src/Data/JLD/Compaction/InverseContext.hs index b351e34..03a45f2 100644 --- a/src/Data/JLD/Compaction/InverseContext.hs +++ b/src/Data/JLD/Compaction/InverseContext.hs | |||
@@ -4,32 +4,32 @@ import Data.JLD.Prelude | |||
4 | 4 | ||
5 | import Data.JLD.Model.ActiveContext (ActiveContext (..)) | 5 | import Data.JLD.Model.ActiveContext (ActiveContext (..)) |
6 | import Data.JLD.Model.Direction (Direction (..)) | 6 | import Data.JLD.Model.Direction (Direction (..)) |
7 | import Data.JLD.Model.InverseContext (InverseContext) | 7 | import Data.JLD.Model.InverseContext (InverseContext, insert) |
8 | import Data.JLD.Model.Keyword (Keyword (..)) | 8 | import Data.JLD.Model.Keyword (Keyword (..)) |
9 | import Data.JLD.Model.Language (Language (Language)) | 9 | import Data.JLD.Model.Language (Language (Language)) |
10 | import Data.JLD.Model.TermDefinition (TermDefinition (..)) | 10 | import Data.JLD.Model.TermDefinition (TermDefinition (..)) |
11 | 11 | ||
12 | import Data.Map qualified as M | 12 | import Data.Map qualified as M (foldlWithKey) |
13 | 13 | ||
14 | processTerm :: Text -> InverseContext -> Text -> TermDefinition -> InverseContext | 14 | processTerm :: Text -> InverseContext -> Text -> TermDefinition -> InverseContext |
15 | processTerm defaultLangDir out termName TermDefinition{..} | 15 | processTerm defaultLangDir out termName TermDefinition{..} |
16 | | Just variableName <- termDefinitionIriMapping = | 16 | | Just variableName <- termDefinitionIriMapping = |
17 | out | 17 | out |
18 | |> M.insert (variableName, container, show KeywordAny, show KeywordNone) termName | 18 | |> insert variableName container KeywordAny (show KeywordNone) termName |
19 | .> if | 19 | .> if |
20 | | termDefinitionReversePropertyFlag -> | 20 | | termDefinitionReversePropertyFlag -> |
21 | M.insert (variableName, container, show KeywordType, show KeywordReverse) termName | 21 | insert variableName container KeywordType (show KeywordReverse) termName |
22 | | termDefinitionTypeMapping == Just (show KeywordNone) -> | 22 | | termDefinitionTypeMapping == Just (show KeywordNone) -> |
23 | M.insert (variableName, container, show KeywordLanguage, show KeywordAny) termName | 23 | insert variableName container KeywordLanguage (show KeywordAny) termName |
24 | .> M.insert (variableName, container, show KeywordType, show KeywordAny) termName | 24 | .> insert variableName container KeywordType (show KeywordAny) termName |
25 | | Just typeMapping <- termDefinitionTypeMapping -> | 25 | | Just typeMapping <- termDefinitionTypeMapping -> |
26 | M.insert (variableName, container, show KeywordType, typeMapping) termName | 26 | insert variableName container KeywordType typeMapping termName |
27 | | Just langDir <- maybeLangDir -> | 27 | | Just langDir <- maybeLangDir -> |
28 | M.insert (variableName, container, show KeywordLanguage, langDir) termName | 28 | insert variableName container KeywordLanguage langDir termName |
29 | | otherwise -> | 29 | | otherwise -> |
30 | M.insert (variableName, container, show KeywordLanguage, defaultLangDir) termName | 30 | insert variableName container KeywordLanguage defaultLangDir termName |
31 | .> M.insert (variableName, container, show KeywordLanguage, show KeywordNone) termName | 31 | .> insert variableName container KeywordLanguage (show KeywordNone) termName |
32 | .> M.insert (variableName, container, show KeywordType, show KeywordNone) termName | 32 | .> insert variableName container KeywordType (show KeywordNone) termName |
33 | | otherwise = out | 33 | | otherwise = out |
34 | where | 34 | where |
35 | container = if null termDefinitionContainerMapping then show KeywordNone else fold termDefinitionContainerMapping | 35 | container = if null termDefinitionContainerMapping then show KeywordNone else fold termDefinitionContainerMapping |