cons.hpp File Reference

#include <iostream>
#include "Cell.hpp"

Go to the source code of this file.

Functions

Cellmake_int (const int i)
 Make an int cell.
Cellmake_double (const double d)
 Make a double cell.
Cellmake_symbol (const char *const s)
 Make a symbol cell.
Cellcons (Cell *const my_car, Cell *const my_cdr)
 Make a conspair cell.
bool nullp (Cell *const c)
 Check if c points to an empty list, i.e., is a null pointer.
bool listp (Cell *const c)
 Check if c points to a list (i.e., nil or a cons cell).
bool intp (Cell *const c)
 Check if c points to an int cell.
bool doublep (Cell *const c)
 Check if c points to a double cell.
bool symbolp (Cell *const c)
 Check if c points to a symbol cell.
int get_int (Cell *const c)
 Accessor (error if c is not an int cell).
double get_double (Cell *const c)
 Accessor (error if c is not a double cell).
string get_symbol (Cell *const c)
 Retrieve the symbol name as a string (error if c is not a symbol cell).
Cellcar (Cell *const c)
 Accessor (error if c is not a cons cell).
Cellcdr (Cell *const c)
 Accessor (error if c is not a string cell).
ostream & operator<< (ostream &os, const Cell &c)
 Print the subtree rooted at c, in s-expression notation.

Variables

Cell *const nil
 The null pointer value.


Detailed Description

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.

Function Documentation

Cell* car ( Cell *const   c  )  [inline]

Accessor (error if c is not a cons cell).

Returns:
The car pointer in the cons cell pointed to by c.

References Cell::get_car().

Referenced by separate_parse().

Cell* cdr ( Cell *const   c  )  [inline]

Accessor (error if c is not a string cell).

Returns:
The cdr pointer in the cons cell pointed to by c.

References Cell::get_cdr().

Referenced by separate_parse().

Cell* cons ( Cell *const   my_car,
Cell *const   my_cdr 
) [inline]

Make a conspair cell.

Parameters:
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().

bool doublep ( Cell *const   c  )  [inline]

Check if c points to a double cell.

Returns:
True iff c points to a double cell.

References Cell::is_double(), and nullp().

double get_double ( Cell *const   c  )  [inline]

Accessor (error if c is not a double cell).

Returns:
The value in the double cell pointed to by c.

References Cell::get_double().

int get_int ( Cell *const   c  )  [inline]

Accessor (error if c is not an int cell).

Returns:
The value in the int cell pointed to by c.

References Cell::get_int().

string get_symbol ( Cell *const   c  )  [inline]

Retrieve the symbol name as a string (error if c is not a symbol cell).

Returns:
The symbol name in the symbol cell pointed to by c.

References Cell::get_symbol().

bool intp ( Cell *const   c  )  [inline]

Check if c points to an int cell.

Returns:
True iff c points to an int cell.

References Cell::is_int(), and nullp().

bool listp ( Cell *const   c  )  [inline]

Check if c points to a list (i.e., nil or a cons cell).

Returns:
True iff c points to a list (i.e., nil or a cons cell).

References Cell::is_cons(), and nullp().

Cell* make_double ( const double  d  )  [inline]

Make a double cell.

Parameters:
d The initial double value to be stored in the new cell.

Referenced by makecell().

Cell* make_int ( const int  i  )  [inline]

Make an int cell.

Parameters:
i The initial int value to be stored in the new cell.

Referenced by makecell().

Cell* make_symbol ( const char *const   s  )  [inline]

Make a symbol cell.

Parameters:
s The initial symbol name to be stored in the new cell.

Referenced by makecell().

bool nullp ( Cell *const   c  )  [inline]

Check if c points to an empty list, i.e., is a null pointer.

Returns:
True iff c points to an empty list, i.e., is a null pointer.

Referenced by doublep(), intp(), listp(), and symbolp().

ostream& operator<< ( ostream &  os,
const Cell c 
) [inline]

Print the subtree rooted at c, in s-expression notation.

Parameters:
os The output stream to print to.
c The root cell of the subtree to be printed.

References Cell::print().

bool symbolp ( Cell *const   c  )  [inline]

Check if c points to a symbol cell.

Returns:
True iff c points to a symbol cell.

References Cell::is_symbol(), and nullp().


Variable Documentation

Cell* const nil

The null pointer value.

Referenced by parse_eval_print().


Generated on Fri Oct 5 14:08:52 2012 for a1 by  doxygen 1.5.8