on master help sign in
Remove Elm.Name and switch elm.cabal file to new name format
77bac8fEvan Czaplicki
compiler/src/Elm/Name.hsdeleted−342
@@ -1,342 +0,0 @@
1−{-# OPTIONS_GHC -Wall #-}
2−{-# LANGUAGE OverloadedStrings #-}
3−module Elm.Name
4− ( Name
5− -- utilities
6− , length
7− , contains
8− , startsWith
9− , drop
10− -- conversions
11− , toText
12− , toString
13− , toBuilder
14− , toDotlessBuilder
15− , toShort
16− -- helpers
17− , addIndex
18− , addSafeIndex
19− , toCompositeName
20− , sepBy
21− -- create
22− , fromForeignPtr
23− , fromString
24− , fromLetter
25− , fromText
26− -- interned
27− , int, float, bool, char, string
28− , maybe, result, list, array, dict, tuple, jsArray
29− , task, router, cmd, sub, platform, virtualDom
30− , shader, debug, debugger, bitwise, basics
31− , utils, negate, true, false, value
32− , node, program, main, dollar, identity
33− , replModule
34− )
35− where
36−
37−
38−import Prelude hiding (drop, length, maybe, negate)
39−import Data.Binary
40−import qualified Data.ByteString.Builder as B
41−import qualified Data.ByteString.Internal as B
42−import qualified Data.ByteString.Short as S
43−import qualified Data.Char as Char
44−import qualified Data.String as String
45−import qualified Data.Text as Text
46−import qualified Data.Text.Encoding as Text
47−import Data.Word (Word8)
48−import Foreign.ForeignPtr (ForeignPtr)
49−
50−
51−
52−-- NAME
53−
54−
55−newtype Name = Name { _name :: Text.Text }
56− deriving (Eq, Ord)
57−
58−
59−length :: Name -> Int
60−length (Name name) =
61− Text.length name
62−
63−
64−contains :: Word8 -> Name -> Bool
65−contains word (Name name) =
66− Text.isInfixOf (Text.singleton (Char.chr (fromIntegral word))) name
67−
68−
69−startsWith :: Name -> Name -> Bool
70−startsWith (Name prefix) (Name name) =
71− Text.isPrefixOf prefix name
72−
73−
74−drop :: Int -> Name -> Name
75−drop numBytes (Name name) =
76− Name (Text.drop numBytes name)
77−
78−
79−
80−-- CONVERSIONS
81−
82−
83−toText :: Name -> Text.Text
84−toText (Name name) =
85− name
86−
87−
88−toString :: Name -> String
89−toString (Name name) =
90− Text.unpack name
91−
92−
93−toBuilder :: Name -> B.Builder
94−toBuilder (Name name) =
95− Text.encodeUtf8Builder name
96−
97−
98−toDotlessBuilder :: Name -> B.Builder
99−toDotlessBuilder (Name name) =
100− Text.encodeUtf8Builder (Text.replace "." "$" name)
101−
102−
103−toShort :: Name -> S.ShortByteString
104−toShort (Name name) =
105− S.toShort (Text.encodeUtf8 name)
106−
107−
108−addIndex :: Name -> Int -> Name
109−addIndex (Name name) index =
110− Name (Text.append name (Text.pack (show index)))
111−
112−
113−addSafeIndex :: Name -> Int -> Name
114−addSafeIndex (Name name) index =
115− Name $ Text.append name $ Text.pack $
116− if Char.isDigit (Text.last name) then
117− '_' : show index
118− else
119− show index
120−
121−
122−toCompositeName :: [Name] -> Name
123−toCompositeName names =
124− Name (Text.cons '$' (Text.intercalate "$" (map _name names)))
125−
126−
127−sepBy :: Word8 -> Name -> Name -> Name
128−sepBy sep (Name home) (Name name) =
129− Name (Text.concat [ home, Text.singleton (Char.chr (fromIntegral sep)), name ])
130−
131−
132−
133−-- CREATE NAMES
134−
135−
136−fromForeignPtr :: ForeignPtr Word8 -> Int -> Int -> Name
137−fromForeignPtr fptr offset len =
138− Name (Text.decodeUtf8 (B.PS fptr offset len))
139−
140−
141−fromString :: String -> Name
142−fromString str =
143− Name (Text.pack str)
144−
145−
146−{- Takes a letter from 0 to 25 -}
147−fromLetter :: Int -> Name
148−fromLetter letter =
149− Name (Text.singleton (Char.chr (97 + letter)))
150−
151−
152−fromText :: Text.Text -> Name
153−fromText =
154− Name
155−
156−
157−
158−-- INSTANCES
159−
160−
161−instance String.IsString Name where
162− fromString str =
163− Name (Text.pack str)
164−
165−
166−instance Binary Name where
167− put (Name name) = put name
168− get = Name <$> get
169−
170−
171−
172−-- COMMON NAMES
173−
174−
175−{-# NOINLINE int #-}
176−int :: Name
177−int = "Int"
178−
179−
180−{-# NOINLINE float #-}
181−float :: Name
182−float = "Float"
183−
184−
185−{-# NOINLINE bool #-}
186−bool :: Name
187−bool = "Bool"
188−
189−
190−{-# NOINLINE char #-}
191−char :: Name
192−char = "Char"
193−
194−
195−{-# NOINLINE string #-}
196−string :: Name
197−string = "String"
198−
199−
200−{-# NOINLINE maybe #-}
201−maybe :: Name
202−maybe = "Maybe"
203−
204−
205−{-# NOINLINE result #-}
206−result :: Name
207−result = "Result"
208−
209−
210−{-# NOINLINE list #-}
211−list :: Name
212−list = "List"
213−
214−
215−{-# NOINLINE array #-}
216−array :: Name
217−array = "Array"
218−
219−
220−{-# NOINLINE dict #-}
221−dict :: Name
222−dict = "Dict"
223−
224−
225−{-# NOINLINE tuple #-}
226−tuple :: Name
227−tuple = "Tuple"
228−
229−
230−{-# NOINLINE jsArray #-}
231−jsArray :: Name
232−jsArray = "JsArray"
233−
234−
235−{-# NOINLINE task #-}
236−task :: Name
237−task = "Task"
238−
239−
240−{-# NOINLINE router #-}
241−router :: Name
242−router = "Router"
243−
244−
245−{-# NOINLINE cmd #-}
246−cmd :: Name
247−cmd = "Cmd"
248−
249−
250−{-# NOINLINE sub #-}
251−sub :: Name
252−sub = "Sub"
253−
254−
255−{-# NOINLINE platform #-}
256−platform :: Name
257−platform = "Platform"
258−
259−
260−{-# NOINLINE virtualDom #-}
261−virtualDom :: Name
262−virtualDom = "VirtualDom"
263−
264−
265−{-# NOINLINE shader #-}
266−shader :: Name
267−shader = "Shader"
268−
269−
270−{-# NOINLINE debug #-}
271−debug :: Name
272−debug = "Debug"
273−
274−
275−{-# NOINLINE debugger #-}
276−debugger :: Name
277−debugger = "Debugger"
278−
279−
280−{-# NOINLINE bitwise #-}
281−bitwise :: Name
282−bitwise = "Bitwise"
283−
284−
285−{-# NOINLINE basics #-}
286−basics :: Name
287−basics = "Basics"
288−
289−
290−{-# NOINLINE utils #-}
291−utils :: Name
292−utils = "Utils"
293−
294−
295−{-# NOINLINE negate #-}
296−negate :: Name
297−negate = "negate"
298−
299−
300−{-# NOINLINE true #-}
301−true :: Name
302−true = "True"
303−
304−
305−{-# NOINLINE false #-}
306−false :: Name
307−false = "False"
308−
309−
310−{-# NOINLINE value #-}
311−value :: Name
312−value = "Value"
313−
314−
315−{-# NOINLINE node #-}
316−node :: Name
317−node = "Node"
318−
319−
320−{-# NOINLINE program #-}
321−program :: Name
322−program = "Program"
323−
324−
325−{-# NOINLINE main #-}
326−main :: Name
327−main = "main"
328−
329−
330−{-# NOINLINE dollar #-}
331−dollar :: Name
332−dollar = "$"
333−
334−
335−{-# NOINLINE identity #-}
336−identity :: Name
337−identity = "identity"
338−
339−
340−{-# NOINLINE replModule #-}
341−replModule :: Name
342−replModule = "Elm_Repl"
elm.cabal+1−1
@@ -136,7 +136,6 @@ Executable elm
136 Elm.Docs
136 Elm.Docs
137 Elm.Kernel
137 Elm.Kernel
138 Elm.Header
138 Elm.Header
139− Elm.Name
140 Elm.Package
139 Elm.Package
141 Json.Decode
140 Json.Decode
142 Json.Encode
141 Json.Encode
@@ -162,6 +161,7 @@ Executable elm
162 Compile
161 Compile
163 Data.Bag
162 Data.Bag
164 Data.Index
163 Data.Index
164+ Data.Name
165 Data.OneOrMore
165 Data.OneOrMore
166 Data.Utf8
166 Data.Utf8
167 Elm.Compiler.Imports
167 Elm.Compiler.Imports