husk-scheme-3.18: R5RS Scheme interpreter, compiler, and library.

Portabilityportable
Stabilityexperimental
Maintainergithub.com/justinethier
Safe HaskellNone

Language.Scheme.Parser

Contents

Description

This module implements parsing of Scheme code.

Synopsis

Documentation

lispDef :: LanguageDef ()

Language definition for Scheme

Higher level parsing

mainParser :: Parser LispVal

Initial parser used by the high-level parse functions

readOrThrow :: Parser a -> String -> ThrowsError a

Use a parser to parse the given text, throwing an error if there is a problem parsing the text.

readExpr :: String -> ThrowsError LispVal

Parse an expression from a string of text

readExprList :: String -> ThrowsError [LispVal]

Parse many expressions from a string of text

Low level parsing

parseExpr :: Parser LispVal

Parse an expression

parseAtom :: Parser LispVal

Parse an atom (scheme symbol)

parseBool :: Parser LispVal

Parse a boolean

parseChar :: Parser LispVal

Parse a character

parseOctalNumber :: Parser LispVal

Parse an integer in octal notation, base 8

parseBinaryNumber :: Parser LispVal

Parse an integer in binary notation, base 2

parseHexNumber :: Parser LispVal

Parse an integer in hexadecimal notation, base 16

parseDecimalNumber :: Parser LispVal

Parser for Integer, base 10

parseNumber :: Parser LispVal

Parse an integer in any base

parseRealNumber :: Parser LispVal

Parse a floating point number

parseRationalNumber :: Parser LispVal

Parse a rational number

parseComplexNumber :: Parser LispVal

Parse a complex number

parseEscapedChar :: forall st. GenParser Char st Char

Parse an escaped character

parseString :: Parser LispVal

Parse a string

parseVector :: Parser LispVal

Parse a vector

parseByteVector :: Parser LispVal

Parse a bytevector

parseHashTable :: Parser LispVal

Parse a hash table. The table is either empty or is made up of an alist (associative list)

parseList :: Parser LispVal

Parse a list

parseDottedList :: Parser LispVal

Parse a dotted list (scheme pair)

parseQuoted :: Parser LispVal

Parse a quoted expression

parseQuasiQuoted :: Parser LispVal

Parse a quasi-quoted expression

parseUnquoted :: Parser LispVal

Parse an unquoted expression (a quasiquotated expression preceded by a comma)

parseUnquoteSpliced :: Parser LispVal

Parse an unquote-spliced expression