Skip to content

Commit 2b49c65

Browse files
committed
refactor!: use megaparsec-utils for posNumParser
1 parent 59b628c commit 2b49c65

File tree

5 files changed

+19
-11
lines changed

5 files changed

+19
-11
lines changed

megaparsec-time.cabal

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ library
4040
build-depends:
4141
base >=4.7 && <5
4242
, megaparsec >=9.0 && <10
43+
, megaparsec-utils >=0.1 && <1
4344
, parser-combinators >=1.0 && <2
4445
, time >=1.10 && <2
4546
default-language: Haskell2010
@@ -59,6 +60,7 @@ test-suite megaparsec-time-test
5960
, hspec
6061
, megaparsec >=9.0 && <10
6162
, megaparsec-time
63+
, megaparsec-utils >=0.1 && <1
6264
, parser-combinators >=1.0 && <2
6365
, time >=1.10 && <2
6466
default-language: Haskell2010

package.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ description: |
2525
dependencies:
2626
- base >= 4.7 && < 5
2727
- megaparsec >= 9.0 && < 10
28+
- megaparsec-utils >= 0.1 && < 1
2829
- parser-combinators >= 1.0 && < 2
2930
- time >= 1.10 && < 2
3031

src/Text/Megaparsec/Time.hs

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,7 @@ import Text.Megaparsec.Char (
5151
string',
5252
)
5353
import Text.Printf (printf)
54-
55-
_posNumParser
56-
:: Ord e
57-
=> Read a
58-
=> Parsec e String a
59-
_posNumParser = read <$> some digitChar
54+
import Text.Megaparsec.Utils (posNumParser)
6055

6156
-- | Representation of a parser result with either a number of days relative to
6257
-- the current day, or a 'DayOfWeek'.
@@ -131,19 +126,19 @@ gregorianDayParser = do
131126
hoursParser
132127
:: Ord e
133128
=> Parsec e String NominalDiffTime
134-
hoursParser = secondsToNominalDiffTime . (* 3600) <$> _posNumParser <* char 'h'
129+
hoursParser = secondsToNominalDiffTime . (* 3600) <$> posNumParser <* char 'h'
135130

136131
-- | Parse a 'NominalDiffTime' from a number of minutes from a string like @1m@.
137132
minutesParser
138133
:: Ord e
139134
=> Parsec e String NominalDiffTime
140-
minutesParser = secondsToNominalDiffTime . (* 60) <$> _posNumParser <* char 'm'
135+
minutesParser = secondsToNominalDiffTime . (* 60) <$> posNumParser <* char 'm'
141136

142137
-- | Parse a 'NominalDiffTime' from a number of seconds from a string like @1s@.
143138
secondsParser
144139
:: Ord e
145140
=> Parsec e String NominalDiffTime
146-
secondsParser = secondsToNominalDiffTime <$> _posNumParser <* optional (char 's')
141+
secondsParser = secondsToNominalDiffTime <$> posNumParser <* optional (char 's')
147142

148143
-- | Parse a 'TimeOfDay' from a string like @01:23@.
149144
timeParser

stack.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,6 @@ resolver:
33

44
packages:
55
- .
6+
7+
extra-deps:
8+
- megaparsec-utils-0.1.0.0@sha256:9c2e136b553486fcea3c3c7ae19ee829def7fe9ba22fcfc1ed553181b6c60046,2028

stack.yaml.lock

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
# This file was autogenerated by Stack.
22
# You should not edit this file by hand.
33
# For more information, please see the documentation at:
4-
# https://docs.haskellstack.org/en/stable/lock_files
4+
# https://docs.haskellstack.org/en/stable/topics/lock_files
55

6-
packages: []
6+
packages:
7+
- completed:
8+
hackage: megaparsec-utils-0.1.0.0@sha256:9c2e136b553486fcea3c3c7ae19ee829def7fe9ba22fcfc1ed553181b6c60046,2028
9+
pantry-tree:
10+
sha256: d16978d575cab9c4268d40b2de479ee8184df60de7493401bf8954c395dcf4f9
11+
size: 410
12+
original:
13+
hackage: megaparsec-utils-0.1.0.0@sha256:9c2e136b553486fcea3c3c7ae19ee829def7fe9ba22fcfc1ed553181b6c60046,2028
714
snapshots:
815
- completed:
916
sha256: a81fb3877c4f9031e1325eb3935122e608d80715dc16b586eb11ddbff8671ecd

0 commit comments

Comments
 (0)