Skip to content
This repository was archived by the owner on Jun 15, 2023. It is now read-only.

Commit d83ca24

Browse files
authored
Merge pull request #25 from cryogenian/compiler/0.12
updates for 0.12, also removed argonaut dep
2 parents c1632be + a35f287 commit d83ca24

File tree

10 files changed

+46
-218
lines changed

10 files changed

+46
-218
lines changed

bower.json

+9-10
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,16 @@
1515
"package.json"
1616
],
1717
"dependencies": {
18-
"purescript-argonaut": "^3.0.0",
19-
"purescript-bifunctors": "^3.0.0",
20-
"purescript-datetime": "^3.0.0",
21-
"purescript-maps": "^3.0.0",
22-
"purescript-matryoshka": "^0.3.0",
23-
"purescript-newtype": "^2.0.0",
24-
"purescript-parsing": "^4.1.0",
25-
"purescript-precise": "^2.0.0",
26-
"purescript-profunctor-lenses": "^3.2.0"
18+
"purescript-ordered-collections": "^1.0.0",
19+
"purescript-matryoshka": "^0.4.0",
20+
"purescript-bifunctors": "^4.0.0",
21+
"purescript-newtype": "^3.0.0",
22+
"purescript-parsing": "^5.0.1",
23+
"purescript-precise": "^3.0.1",
24+
"purescript-profunctor-lenses": "^4.0.0",
25+
"purescript-datetime": "^4.0.0"
2726
},
2827
"devDependencies": {
29-
"purescript-quickcheck": "^4.4.0"
28+
"purescript-quickcheck": "^5.0.0"
3029
}
3130
}

package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
"test": "pulp test"
77
},
88
"devDependencies": {
9-
"pulp": "^11.0.0",
10-
"purescript": "^0.11.4",
11-
"purescript-psa": "^0.5.1",
9+
"pulp": "^12.0.0",
10+
"purescript": "^0.12.0",
11+
"purescript-psa": "^0.6.0",
1212
"rimraf": "^2.6.1"
1313
}
1414
}

src/Data/Json/Extended.purs

+3-33
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,11 @@ module Data.Json.Extended
88
, number
99
, string
1010
, map
11-
, map'
1211
, array
13-
1412
, renderEJson
1513
, parseEJson
16-
, decodeEJson
17-
, encodeEJson
18-
1914
, arbitraryEJsonOfSize
20-
2115
, getType
22-
2316
, _Null
2417
, _String
2518
, _Boolean
@@ -28,41 +21,28 @@ module Data.Json.Extended
2821
, _Number
2922
, _Array
3023
, _Map
31-
, _Map'
3224
) where
3325

3426
import Prelude hiding (map)
3527

3628
import Control.Lazy as Lazy
37-
import Data.Argonaut as JS
38-
import Data.Bitraversable (bitraverse)
29+
import Control.Monad.Gen (class MonadGen)
30+
import Control.Monad.Rec.Class (class MonadRec)
3931
import Data.Either as E
40-
import Data.Functor as F
4132
import Data.Functor.Mu as Mu
4233
import Data.HugeInt as HI
4334
import Data.HugeNum as HN
4435
import Data.Json.Extended.Signature as Sig
4536
import Data.Json.Extended.Signature hiding (getType) as Exports
4637
import Data.Json.Extended.Type (EJsonType)
47-
import Data.Lens (Prism', preview, prism')
38+
import Data.Lens (Prism', prism')
4839
import Data.Map as Map
4940
import Data.Maybe as M
50-
import Data.StrMap as SM
51-
import Data.Traversable (for)
52-
import Data.Tuple as T
5341
import Matryoshka (class Corecursive, class Recursive, anaM, cata, embed, project)
54-
import Control.Monad.Gen (class MonadGen)
55-
import Control.Monad.Rec.Class (class MonadRec)
5642
import Text.Parsing.Parser as P
5743

5844
type EJson = Mu.Mu Sig.EJsonF
5945

60-
decodeEJson t. Corecursive t Sig.EJsonF JS.Json E.Either String t
61-
decodeEJson = anaM Sig.decodeJsonEJsonF
62-
63-
encodeEJson t. Recursive t Sig.EJsonF t JS.Json
64-
encodeEJson = cata Sig.encodeJsonEJsonF
65-
6646
arbitraryEJsonOfSize
6747
m t
6848
. MonadGen m
@@ -103,11 +83,6 @@ array = embed <<< Sig.Array
10383
map t. Corecursive t Sig.EJsonF Map.Map t t t
10484
map = embed <<< Sig.Map <<< Sig.EJsonMap <<< Map.toUnfoldable
10585

106-
map' t. Corecursive t Sig.EJsonF SM.StrMap t t
107-
map' = embed <<< Sig.Map <<< Sig.EJsonMap <<< F.map go <<< SM.toUnfoldable
108-
where
109-
go (T.Tuple a b) = T.Tuple (string a) b
110-
11186
getType t. Recursive t Sig.EJsonF t EJsonType
11287
getType = Sig.getType <<< project
11388

@@ -151,8 +126,3 @@ _Map ∷ ∀ t. Corecursive t Sig.EJsonF ⇒ Recursive t Sig.EJsonF ⇒ Ord t
151126
_Map = prism' map $ project >>> case _ of
152127
Sig.Map (Sig.EJsonMap kvs) → M.Just $ Map.fromFoldable kvs
153128
_ → M.Nothing
154-
155-
_Map' t. Corecursive t Sig.EJsonF Recursive t Sig.EJsonF Prism' t (SM.StrMap t)
156-
_Map' = prism' map' $ project >>> case _ of
157-
Sig.Map (Sig.EJsonMap kvs) → SM.fromFoldable <$> for kvs (bitraverse (preview _String) pure)
158-
_ → M.Nothing

src/Data/Json/Extended/Cursor.purs

+3-8
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import Data.Functor.Mu (Mu)
1010
import Data.Json.Extended (EJson)
1111
import Data.Json.Extended as EJ
1212
import Data.Maybe (Maybe(..), maybe)
13-
import Data.Monoid (mempty)
1413
import Data.Ord (class Ord1)
1514
import Data.TacitString (TacitString)
1615
import Data.Traversable (class Traversable, traverse)
@@ -48,12 +47,8 @@ data CursorF a
4847
derive instance functorCursorFFunctor CursorF
4948
derive instance eqCursorEq a Eq (CursorF a)
5049
derive instance ordCursorOrd a Ord (CursorF a)
51-
52-
instance eq1CursorFEq1 CursorF where
53-
eq1 = eq
54-
55-
instance ord1CursorFOrd1 CursorF where
56-
compare1 = compare
50+
derive instance eq1CursorFEq1 CursorF
51+
derive instance ord1CursorFOrd1 CursorF
5752

5853
instance showCursorFShow (CursorF TacitString) where
5954
show = case _ of
@@ -80,7 +75,7 @@ instance traversableCursorF :: Traversable CursorF where
8075
All -> pure All
8176
AtKey k a -> AtKey k <$> f a
8277
AtIndex i a -> AtIndex i <$> f a
83-
sequence = traverse id
78+
sequence = traverse identity
8479

8580
renderEJsonCursor Cursor String
8681
renderEJsonCursor = show

src/Data/Json/Extended/Signature.purs

+4-6
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@ module Data.Json.Extended.Signature
33
, module Render
44
, module Parse
55
, module Gen
6-
, module Json
76
) where
87

9-
import Data.Json.Extended.Signature.Core as Core
10-
import Data.Json.Extended.Signature.Render as Render
11-
import Data.Json.Extended.Signature.Parse as Parse
12-
import Data.Json.Extended.Signature.Gen as Gen
13-
import Data.Json.Extended.Signature.Json as Json
8+
import Data.Json.Extended.Signature.Core (EJsonF(..), EJsonMap(..), getType) as Core
9+
import Data.Json.Extended.Signature.Gen (arbitraryEJsonF) as Gen
10+
import Data.Json.Extended.Signature.Parse (parseArrayLiteral, parseBooleanLiteral, parseDecimalLiteral, parseEJsonF, parseHugeIntLiteral, parseIntLiteral, parseMapLiteral, parseNull, parseStringLiteral) as Parse
11+
import Data.Json.Extended.Signature.Render (renderEJsonF) as Render

src/Data/Json/Extended/Signature/Core.purs

+1-2
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,11 @@ import Prelude
99
import Data.Bifunctor as BF
1010
import Data.Eq (class Eq1)
1111
import Data.Foldable as F
12-
import Data.HugeNum as HN
1312
import Data.HugeInt as HI
13+
import Data.HugeNum as HN
1414
import Data.Json.Extended.Type as JT
1515
import Data.List as L
1616
import Data.Map as M
17-
import Data.Monoid (mempty)
1817
import Data.Newtype (class Newtype)
1918
import Data.Ord (class Ord1)
2019
import Data.TacitString (TacitString)

src/Data/Json/Extended/Signature/Json.purs

-115
This file was deleted.

src/Data/Json/Extended/Signature/Parse.purs

+7-8
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,9 @@ import Data.Int as Int
2323
import Data.Json.Extended.Signature.Core (EJsonF(..), EJsonMap(..))
2424
import Data.List as L
2525
import Data.Maybe as M
26-
import Data.String as S
26+
import Data.String.CodeUnits as SCU
2727
import Data.Traversable (sequence)
2828
import Data.Tuple as T
29-
3029
import Text.Parsing.Parser as P
3130
import Text.Parsing.Parser.Combinators as PC
3231
import Text.Parsing.Parser.String as PS
@@ -67,7 +66,7 @@ commaSep p = do
6766
pure o
6867

6968
stringInner m . Monad m P.ParserT String m String
70-
stringInner = A.many charAtom <#> S.fromCharArray
69+
stringInner = A.many charAtom <#> SCU.fromCharArray
7170
where
7271
charAtom = PC.tryRethrow do
7372
ch ← PS.anyChar
@@ -86,10 +85,10 @@ stringInner = A.many charAtom <#> S.fromCharArray
8685
_ → pure ch
8786

8887
hexEscape = do
89-
hex ← S.fromCharArray <$> sequence (A.replicate 4 PT.hexDigit)
90-
case Int.fromStringAs Int.hexadecimal hex of
88+
hex ← SCU.fromCharArray <$> sequence (A.replicate 4 PT.hexDigit)
89+
case Int.fromStringAs Int.hexadecimal hex >>= Char.fromCharCode of
9190
M.NothingP.fail "Expected character escape sequence"
92-
M.Just i → pure $ Char.fromCharCode i
91+
M.Just i → pure i
9392

9493
quoted a m. Monad m P.ParserT String m a P.ParserT String m a
9594
quoted = PC.between quote quote
@@ -218,7 +217,7 @@ parseHugeNum = do
218217
M.NothingP.fail $ "Failed to parse decimal: " <> str
219218
where
220219
parseDigits =
221-
S.fromCharArray
220+
SCU.fromCharArray
222221
<$> A.many (PS.oneOf ['0','1','2','3','4','5','6','7','8','9'])
223222

224223
parseScientific
@@ -245,7 +244,7 @@ parseHugeIntLiteral ∷ ∀ m. Monad m ⇒ P.ParserT String m HI.HugeInt
245244
parseHugeIntLiteral = parseSigned (parseNat (HI.fromInt 10) HI.fromInt)
246245

247246
parseIntLiteral m. Monad m P.ParserT String m Int
248-
parseIntLiteral = parseSigned (parseNat 10 id)
247+
parseIntLiteral = parseSigned (parseNat 10 identity)
249248

250249
parseStringLiteral m. Monad m P.ParserT String m String
251250
parseStringLiteral = quoted stringInner

src/Data/Json/Extended/Signature/Render.purs

+3-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ import Data.Foldable as F
88
import Data.HugeInt as HI
99
import Data.HugeNum as HN
1010
import Data.Json.Extended.Signature.Core (EJsonF(..), EJsonMap(..))
11-
import Data.String as Str
11+
import Data.String.Pattern (Pattern(..), Replacement(..)) as Str
12+
import Data.String.Common (replaceAll) as Str
13+
import Data.String.CodeUnits (takeWhile) as Str
1214
import Data.Tuple as T
1315
import Matryoshka (Algebra)
1416

0 commit comments

Comments
 (0)