@@ -2,10 +2,6 @@
22{-# LANGUAGE OverloadedStrings #-}
33module Generate.JavaScript.Name
44 ( Name
5− , Mode(..)
6− , Target(..)
7− , Debugger(..)
8− , isServer
95 , toBuilder
106 , fromIndex
117 , fromInt
@@ -13,22 +9,18 @@ module Generate.JavaScript.Name
139 , fromGlobal
1410 , fromCycle
1511 , fromKernel
16− , fromField
1712 , makeF
1813 , makeA
1914 , makeLabel
2015 , makeTemp
2116 , dollar
22− , shortenFieldNames
2317 )
2418 where
2519
2620
2721import qualified Data.ByteString.Builder as B
2822import qualified Data.ByteString.Short as S
29−import qualified Data.List as List
3023import Data.Monoid ((<>))
31−import Data.Map ((!))
3224import qualified Data.Map as Map
3325import qualified Data.Set as Set
3426import qualified Data.Text as Text
@@ -50,39 +42,6 @@ newtype Name =
5042
5143
5244
53−-- MODE
54−
55−
56−data Mode
57− = Dev Target Debugger
58− | Prod Target ShortFieldNames
59−
60−
61−data Target = Client | Server
62−
63−
64−data Debugger
65− = DebuggerOn
66− | DebuggerOff
67−
68−
69−type ShortFieldNames =
70− Map.Map N.Name Name
71−
72−
73−isServer :: Mode -> Bool
74−isServer mode =
75− case mode of
76− Dev target _ -> isServerHelp target
77− Prod target _ -> isServerHelp target
78−
79−
80−isServerHelp :: Target -> Bool
81−isServerHelp target =
82− case target of { Client -> False ; Server -> True }
83−
84−
85−
8645-- CONSTRUCTORS
8746
8847
@@ -127,16 +86,6 @@ fromKernel home name =
12786 Name ("_" <> N.toBuilder home <> "_" <> N.toBuilder name)
12887
12988
130−fromField :: Mode -> N.Name -> Name
131−fromField mode name =
132− case mode of
133− Dev _ _ ->
134− Name (N.toBuilder name)
135−
136− Prod _ fields ->
137− fields ! name
138−
139−
14089
14190-- TEMPORARY NAMES
14291
@@ -167,33 +116,6 @@ dollar =
167116
168117
169118
170−-- SHORTEN FIELD NAMES
171−
172−
173−shortenFieldNames :: Map.Map N.Name Int -> ShortFieldNames
174−shortenFieldNames frequencies =
175− Map.foldr addToShortNames Map.empty $
176− Map.foldrWithKey addToBuckets Map.empty frequencies
177−
178−
179−addToBuckets :: N.Name -> Int -> Map.Map Int [N.Name] -> Map.Map Int [N.Name]
180−addToBuckets field frequency buckets =
181− -- TODO try using an IntMap for buckets
182− Map.insertWith (++) frequency [field] buckets
183−
184−
185−addToShortNames :: [N.Name] -> ShortFieldNames -> ShortFieldNames
186−addToShortNames fields shortNames =
187− List.foldl' addField shortNames fields
188−
189−
190−addField :: ShortFieldNames -> N.Name -> ShortFieldNames
191−addField shortNames field =
192− let rename = fromInt (Map.size shortNames) in
193− Map.insert field rename shortNames
194−
195−
196−
197119-- RESERVED NAMES
198120
199121