diff --git a/CHANGELOG.md b/CHANGELOG.md index c07bea4..3b55544 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ New features: Bugfixes: -Other improvements: +Other improvements: Add `lower` parser to Text.Parsing.Parser.String.Basic. ## [v8.2.0](https://github.com/purescript-contrib/purescript-parsing/releases/tag/v8.2.0) - 2022-01-26 diff --git a/spago.dhall b/spago.dhall index c1ee314..9f3233a 100644 --- a/spago.dhall +++ b/spago.dhall @@ -18,6 +18,7 @@ , "tailrec" , "transformers" , "tuples" + , "unfoldable" , "unicode" , "unsafe-coerce" ] diff --git a/src/Text/Parsing/Parser/String/Basic.purs b/src/Text/Parsing/Parser/String/Basic.purs index 1a8f2ac..78d8a95 100644 --- a/src/Text/Parsing/Parser/String/Basic.purs +++ b/src/Text/Parsing/Parser/String/Basic.purs @@ -10,6 +10,7 @@ module Text.Parsing.Parser.String.Basic , octDigit , letter , space + , lower , upper , alphaNum , intDecimal @@ -19,7 +20,7 @@ module Text.Parsing.Parser.String.Basic import Prelude -import Data.CodePoint.Unicode (isAlpha, isAlphaNum, isDecDigit, isHexDigit, isOctDigit, isSpace, isUpper) +import Data.CodePoint.Unicode (isAlpha, isAlphaNum, isDecDigit, isHexDigit, isLower, isOctDigit, isSpace, isUpper) import Data.Int as Data.Int import Data.Maybe (Maybe(..)) import Data.Number (infinity, nan) @@ -44,6 +45,10 @@ hexDigit = satisfyCP isHexDigit "hex digit" octDigit :: forall m. Monad m => ParserT String m Char octDigit = satisfyCP isOctDigit "oct digit" +-- | Parse a lowercase letter. Matches any char that satisfies `Data.CodePoint.Unicode.isLower`. +lower :: forall m. Monad m => ParserT String m Char +lower = satisfyCP isLower "lowercase letter" + -- | Parse an uppercase letter. Matches any char that satisfies `Data.CodePoint.Unicode.isUpper`. upper :: forall m. Monad m => ParserT String m Char upper = satisfyCP isUpper "uppercase letter"