Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- newtype IdentifierCharacters = IdentifierCharacters (NonEmpty IdentifierCharacter)
- class HasIdentifierCharacters a where
- class AsIdentifierCharacters a where
- parseIdentifierCharacters :: CharParsing p => p IdentifierCharacters
Documentation
>>>
import Text.Parsec(parse)
>>>
import Data.Either(isLeft)
newtype IdentifierCharacters Source #
Instances
class HasIdentifierCharacters a where Source #
class AsIdentifierCharacters a where 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