microScheme
|
Go to the source code of this file.
Functions | |
Cell * | make_int (const int i) |
Make an int cell. More... | |
Cell * | make_double (const double d) |
Make a double cell. More... | |
Cell * | make_symbol (const char *const s) |
Make a symbol cell. More... | |
Cell * | cons (Cell *const my_car, Cell *const my_cdr) |
Make a conspair cell. More... | |
Cell * | lambda (Cell *const my_formals, Cell *const my_body) |
Make a procedure cell. More... | |
bool | nullp (Cell *const c) |
Check if c points to an empty list, i.e., is a null pointer. More... | |
bool | listp (Cell *const c) |
Check if c points to a list (i.e., nil or a cons cell). More... | |
bool | procedurep (Cell *const c) |
Check if c is a procedure cell. More... | |
bool | intp (Cell *const c) |
Check if c points to an int cell. More... | |
bool | doublep (Cell *const c) |
Check if c points to a double cell. More... | |
bool | symbolp (Cell *const c) |
Check if c points to a symbol cell. More... | |
int | get_int (Cell *const c) |
Accessor (error if c is not an int cell). More... | |
double | get_double (Cell *const c) |
Accessor (error if c is not a double cell). More... | |
string | get_symbol (Cell *const c) |
Retrieve the symbol name as a string (error if c is not a symbol cell). More... | |
Cell * | car (Cell *const c) |
Accessor (error if c is not a cons cell). More... | |
Cell * | cdr (Cell *const c) |
Accessor (error if c is not a string cell). More... | |
Cell * | get_formals (Cell *const c) |
Accessor (error if c is not a procedure cell). More... | |
Cell * | get_body (Cell *const c) |
Accessor (error if c is not a procedure cell). More... | |
ostream & | operator<< (ostream &os, const Cell &c) |
Print the subtree rooted at c, in s-expression notation. More... | |
Variables | |
Cell *const | nil |
The null pointer value. More... | |
Encapsulates an abstract interface layer for a cons list ADT, without using member functions. Makes no assumptions about what kind of concrete type Cell will be defined to be.
|
inline |
Accessor (error if c is not a cons cell).
Referenced by separate_parse().
|
inline |
Accessor (error if c is not a string cell).
Referenced by separate_parse().
|
inline |
Make a conspair cell.
my_car | The initial car pointer to be stored in the new cell. |
my_cdr | The initial cdr pointer to be stored in the new cell. |
Referenced by separate_parse().
|
inline |
|
inline |
Accessor (error if c is not a procedure cell).
|
inline |
Accessor (error if c is not a double cell).
|
inline |
Accessor (error if c is not a procedure cell).
|
inline |
Accessor (error if c is not an int cell).
|
inline |
Retrieve the symbol name as a string (error if c is not a symbol cell).
|
inline |
|
inline |
Make a procedure cell.
my_formals | A list of the procedure's formal parameter names. |
my_body | The body (an expression) of the procedure. |
|
inline |
Check if c points to a list (i.e., nil or a cons cell).
References nullp().
|
inline |
Make a double cell.
d | The initial double value to be stored in the new cell. |
Referenced by makecell().
|
inline |
Make an int cell.
i | The initial int value to be stored in the new cell. |
Referenced by makecell().
|
inline |
Make a symbol cell.
s | The initial symbol name to be stored in the new cell. |
Referenced by makecell().
|
inline |
|
inline |
Print the subtree rooted at c, in s-expression notation.
os | The output stream to print to. |
c | The root cell of the subtree to be printed. |
|
inline |
|
inline |
Cell* const nil |
The null pointer value.
Referenced by nullp(), and parse_eval_print().