semantic-version-0.0.2: Semantic Version
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.SemanticVersion.IdentifierCharacters

Synopsis

Documentation

>>> import Text.Parsec(parse)
>>> import Data.Either(isLeft)

newtype IdentifierCharacters Source #

parseIdentifierCharacters :: CharParsing p => p IdentifierCharacters Source #

>>> parse (parseIdentifierCharacters <* eof) "parseIdentifierCharacters" "a"
Right (IdentifierCharacters (IdentifierCharacterNonDigit (NonDigitLetter (AlphaLower Lower_a)) :| []))
>>> isLeft (parse parseIdentifierCharacters "parseIdentifierCharacters" "")
True
>>> parse (parseIdentifierCharacters <* eof) "parseIdentifierCharacters" "0"
Right (IdentifierCharacters (IdentifierCharacterDigit DecDigit0 :| []))
>>> parse (parseIdentifierCharacters <* eof) "parseIdentifierCharacters" "Abc"
Right (IdentifierCharacters (IdentifierCharacterNonDigit (NonDigitLetter (AlphaUpper Upper_A)) :| [IdentifierCharacterNonDigit (NonDigitLetter (AlphaLower Lower_b)),IdentifierCharacterNonDigit (NonDigitLetter (AlphaLower Lower_c))]))
>>> parse (parseIdentifierCharacters <* eof) "parseIdentifierCharacters" "-"
Right (IdentifierCharacters (IdentifierCharacterNonDigit NonDigitHyphen :| []))
>>> parse (parseIdentifierCharacters <* eof) "parseIdentifierCharacters" "Abc-123"
Right (IdentifierCharacters (IdentifierCharacterNonDigit (NonDigitLetter (AlphaUpper Upper_A)) :| [IdentifierCharacterNonDigit (NonDigitLetter (AlphaLower Lower_b)),IdentifierCharacterNonDigit (NonDigitLetter (AlphaLower Lower_c)),IdentifierCharacterNonDigit NonDigitHyphen,IdentifierCharacterDigit DecDigit1,IdentifierCharacterDigit DecDigit2,IdentifierCharacterDigit DecDigit3]))
>>> parse (parseIdentifierCharacters <* eof) "parseIdentifierCharacters" "Ab-c-12--3"
Right (IdentifierCharacters (IdentifierCharacterNonDigit (NonDigitLetter (AlphaUpper Upper_A)) :| [IdentifierCharacterNonDigit (NonDigitLetter (AlphaLower Lower_b)),IdentifierCharacterNonDigit NonDigitHyphen,IdentifierCharacterNonDigit (NonDigitLetter (AlphaLower Lower_c)),IdentifierCharacterNonDigit NonDigitHyphen,IdentifierCharacterDigit DecDigit1,IdentifierCharacterDigit DecDigit2,IdentifierCharacterNonDigit NonDigitHyphen,IdentifierCharacterNonDigit NonDigitHyphen,IdentifierCharacterDigit DecDigit3]))
>>> parse parseIdentifierCharacters "parseIdentifierCharacters" "ABC+"
Right (IdentifierCharacters (IdentifierCharacterNonDigit (NonDigitLetter (AlphaUpper Upper_A)) :| [IdentifierCharacterNonDigit (NonDigitLetter (AlphaUpper Upper_B)),IdentifierCharacterNonDigit (NonDigitLetter (AlphaUpper Upper_C))]))
>>> isLeft (parse parseIdentifierCharacters "parseIdentifierCharacters" "+")
True