Copyright | Justin Ethier |
---|---|
License | MIT (see LICENSE in the distribution) |
Maintainer | github.com/justinethier |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
This module implements parsing of Scheme code.
Synopsis
- lispDef :: LanguageDef ()
- mainParser :: Parser LispVal
- readOrThrow :: Parser a -> String -> ThrowsError a
- readExpr :: String -> ThrowsError LispVal
- readExprList :: String -> ThrowsError [LispVal]
- parseExpr :: Parser LispVal
- parseAtom :: Parser LispVal
- parseBool :: Parser LispVal
- parseChar :: Parser LispVal
- parseOctalNumber :: Parser LispVal
- parseBinaryNumber :: Parser LispVal
- parseHexNumber :: Parser LispVal
- parseDecimalNumber :: Parser LispVal
- parseNumber :: Parser LispVal
- parseRealNumber :: Parser LispVal
- parseRationalNumber :: Parser LispVal
- parseComplexNumber :: Parser LispVal
- parseEscapedChar :: forall st. GenParser Char st Char
- parseString :: Parser LispVal
- parseVector :: Parser LispVal
- parseByteVector :: Parser LispVal
- parseHashTable :: Parser LispVal
- parseList :: Parser LispVal
- parseDottedList :: Parser LispVal
- parseQuoted :: Parser LispVal
- parseQuasiQuoted :: Parser LispVal
- parseUnquoted :: Parser LispVal
- parseUnquoteSpliced :: Parser LispVal
Documentation
lispDef :: LanguageDef () Source #
Language definition for Scheme
Higher level parsing
mainParser :: Parser LispVal Source #
Initial parser used by the high-level parse functions
readOrThrow :: Parser a -> String -> ThrowsError a Source #
Use a parser to parse the given text, throwing an error if there is a problem parsing the text.
readExprList :: String -> ThrowsError [LispVal] Source #
Parse many expressions from a string of text
Low level parsing
parseOctalNumber :: Parser LispVal Source #
Parse an integer in octal notation, base 8
parseBinaryNumber :: Parser LispVal Source #
Parse an integer in binary notation, base 2
parseHexNumber :: Parser LispVal Source #
Parse an integer in hexadecimal notation, base 16
parseDecimalNumber :: Parser LispVal Source #
Parser for Integer, base 10
parseNumber :: Parser LispVal Source #
Parse an integer in any base
parseRealNumber :: Parser LispVal Source #
Parse a floating point number
parseRationalNumber :: Parser LispVal Source #
Parse a rational number
parseComplexNumber :: Parser LispVal Source #
Parse a complex number
parseString :: Parser LispVal Source #
Parse a string
parseVector :: Parser LispVal Source #
Parse a vector
parseByteVector :: Parser LispVal Source #
Parse a bytevector
parseHashTable :: Parser LispVal Source #
Parse a hash table. The table is either empty or is made up of an alist (associative list)
parseDottedList :: Parser LispVal Source #
Parse a dotted list (scheme pair)
parseQuoted :: Parser LispVal Source #
Parse a quoted expression
parseQuasiQuoted :: Parser LispVal Source #
Parse a quasi-quoted expression
parseUnquoted :: Parser LispVal Source #
Parse an unquoted expression (a quasiquotated expression preceded by a comma)
parseUnquoteSpliced :: Parser LispVal Source #
Parse an unquote-spliced expression