Module oftlisp::reader
[−]
[src]
The OftLisp reader.
Note that this is typically known as a parser, but Lisp tradition is to refer to the parser for the language as "the reader", especially when it does not perform advanced processing (e.g. macro expansion) automatically.
The grammar of OftLisp is:
value = { comment }, byteString
| { comment }, string
| { comment }, symbolish
| { comment }, "(", { value }, ")"
| { comment }, "(", value, { value }, "\u{2022}", value ")"
| { comment }, "[", { value }, "]"
| { comment }, readerMacro, { comment }, value;
comment = ";", { ? all characters ? - "\n" }, "\n";
byteString = "b", '"', { stringChar }, '"'
string = '"', { stringChar }, '"'
symbolish = symbolChar, { symbolChar }
stringChar = ? all characters ? - ( "\\" | '"' )
| "\\", escape;
escape = "a" | "b" | "e" | "n" | "r" | "t" | '"'
| "x", hex, hex
| "u", hex, hex, hex, hex
| "U", hex, hex, hex, hex, hex, hex, hex, hex;
hex = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
| "a" | "b" | "c" | "d" | "e" | "f"
| "A" | "B" | "C" | "D" | "E" | "F";
symbolChar = ? an ASCII letter ?
| ? an ASCII digit ?
| "+" | "-" | "." | "/" | "$" | "?" | "*" | "#" | "=" | "<"
| ">" | "_";
readerMacro = "'" | "`" | ",@" | ",";
Modules
lexer |
The lexer for the OftLisp reader. |
symbolish |
Utilities for parsing a "symbolish" lexeme. |
Structs
ReadError |
An error that occurs while reading. |
SourceLocation |
The location of an error (or of anything else). |
Enums
AcceptSet |
A set of acceptable characters. |
ReadErrorKind |
The kind of the error. |
Functions
read_file |
Reads zero or more |
read_many |
Reads zero or more |
read_one |
Reads a single |