\doxysection{workspace/post-\/scarcity/src/ops/lispops.c File Reference}
\hypertarget{lispops_8c}{}\label{lispops_8c}\index{workspace/post-\/scarcity/src/ops/lispops.c@{workspace/post-\/scarcity/src/ops/lispops.c}}
{\ttfamily \#include $<$ctype.\+h$>$}\newline
{\ttfamily \#include $<$stdbool.\+h$>$}\newline
{\ttfamily \#include $<$stdio.\+h$>$}\newline
{\ttfamily \#include $<$stdlib.\+h$>$}\newline
{\ttfamily \#include $<$string.\+h$>$}\newline
{\ttfamily \#include "{}memory/consspaceobject.\+h"{}}\newline
{\ttfamily \#include "{}memory/conspage.\+h"{}}\newline
{\ttfamily \#include "{}debug.\+h"{}}\newline
{\ttfamily \#include "{}memory/dump.\+h"{}}\newline
{\ttfamily \#include "{}ops/equal.\+h"{}}\newline
{\ttfamily \#include "{}arith/integer.\+h"{}}\newline
{\ttfamily \#include "{}ops/intern.\+h"{}}\newline
{\ttfamily \#include "{}io/io.\+h"{}}\newline
{\ttfamily \#include "{}ops/lispops.\+h"{}}\newline
{\ttfamily \#include "{}io/print.\+h"{}}\newline
{\ttfamily \#include "{}io/read.\+h"{}}\newline
{\ttfamily \#include "{}memory/stack.\+h"{}}\newline
{\ttfamily \#include "{}memory/vectorspace.\+h"{}}\newline
Include dependency graph for lispops.\+c\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{lispops_8c__incl}
\end{center}
\end{figure}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_ad91d964e274bbb8abf38aaa3522664a2}{c\+\_\+append}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} l1, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} l2)
\begin{DoxyCompactList}\small\item\em A version of append which can conveniently be called from C. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a06b3929acdfb8079898f493ec4db828b}{c\+\_\+apply}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Internal guts of apply. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a8e1a3da3aea36db9cf736ceb76046810}{c\+\_\+keys}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} store)
\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a643f4b78bb2f84baae37a6f73085470b}{c\+\_\+progn}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} expressions, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Evaluate each of these expressions in this {\ttfamily env}ironment over this {\ttfamily frame}, returning only the value of the last. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a3222877b61c27e3b6f0d18d485fbe143}{c\+\_\+reverse}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} arg)
\begin{DoxyCompactList}\small\item\em reverse a sequence (if it is a sequence); else return it unchanged. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a40b682c3cb66be9f583857a5f488a1a3}{compose\+\_\+body}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame)
\begin{DoxyCompactList}\small\item\em Used to construct the body for {\ttfamily lambda} and {\ttfamily nlambda} expressions. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{lispops_8c_a9f1504aecf8fbcd4b77a7207475e46b1}{end\+\_\+of\+\_\+stringp}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} arg)
\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a44a5860734b40a3b74b9bcf681422017}{eval\+\_\+form}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}parent, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} parent\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} form, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Useful building block; evaluate this single form in the context of this parent stack frame and this environment. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a75b0b6eb243d1137eb9daa78d03e51f6}{eval\+\_\+forms}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} list, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Evaluate all the forms in this {\ttfamily list} in the context of this stack {\ttfamily frame} and this {\ttfamily env}, and return a list of their values. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_af998b509301da77fe751a1585aad91e1}{eval\+\_\+lambda}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\+\_\+space\+\_\+object}} cell, struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Evaluate a lambda or nlambda expression. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_abdc42c3fca33f19b155b35ef0a572680}{lisp\+\_\+append}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em should really be overwritten with a version in Lisp, since this is much easier to write in Lisp \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a5f46a92d58e16619fe9f3df406948f7f}{lisp\+\_\+apply}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Function; apply the function which is the result of evaluating the first argument to the list of values which is the result of evaluating the second argument. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a02dbbf32cdf97a3c49d03de2af28b56d}{lisp\+\_\+assoc}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Function; look up the value of a {\ttfamily key} in a {\ttfamily store}. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a3a7c2b4fe66e0c4b62f274443c9add70}{lisp\+\_\+car}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Function; returns the first item (head) of a sequence. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_ad4fc50e8dfc244fa5881ef577c000d49}{lisp\+\_\+cdr}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Function; returns the remainder of a sequence when the head is removed. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_ada539c994fddd1943492b6c0a9abdcb7}{lisp\+\_\+cond}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Special form\+: conditional. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a17fe7aebbf97744d912402087ae1622b}{lisp\+\_\+cons}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Function; returns a cell constructed from a and b. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a1bcd755166a33b1cc3952ee495bfcffb}{lisp\+\_\+eq}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Function; are these two objects the same object? Shallow, cheap equality. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_aa5c4d9285dc36c3231cb93af9e9192bf}{lisp\+\_\+equal}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Function; are these two arguments identical? Deep, expensive equality. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a723a97602491ca6737289d7437f96d40}{lisp\+\_\+eval}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Function; evaluate the expression which is the first argument in the frame; further arguments are ignored. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a2a9243d54e3891ae97b25dd314a91a2a}{lisp\+\_\+exception}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Function; create an exception. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a53cd12e5e167232513707b89291e6d08}{lisp\+\_\+inspect}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Function\+: dump/inspect one complete lisp expression and return NIL. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_aa555248e9a265261bf7f2b2395b01b54}{lisp\+\_\+keys}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_ad01fa34e71190873e229778577b350d0}{lisp\+\_\+lambda}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Construct an interpretable function. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a5ce5878a7fe40eb09fbae6b6c3111cdd}{lisp\+\_\+length}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Function\+: return, as an integer, the length of the sequence indicated by the first argument, or zero if it is not a sequence. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a536dcbdd60e4ff3bf74b617e488b0c75}{lisp\+\_\+let}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Special form\+: evaluate a series of forms in an environment in which these bindings are bound. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_ad5ed6a7754f8aac2352165f675549f3c}{lisp\+\_\+list}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a1537dbeaaee54b95ab9ca1c12307bb52}{lisp\+\_\+mapcar}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a022029c6b7753a6f99fcba31ca51751f}{lisp\+\_\+nlambda}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Construct an interpretable special form. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_ada3567423dc08d9a59a5c5fff911aa2a}{lisp\+\_\+oblist}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Return the object list (root namespace). \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_ad10bc08ad7c7e794b180cf27cfed1d0d}{lisp\+\_\+print}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Function; print one complete lisp expression and return NIL. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a9831a05871538397b3bd1f6ee83a6b54}{lisp\+\_\+progn}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Special form; evaluate the expressions which are listed in my arguments sequentially and return the value of the last. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_ac8551f91422af8672b2b35b097e073d0}{lisp\+\_\+quote}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Special form; returns its argument (strictly first argument -\/ only one is expected but this isn\textquotesingle{}t at this stage checked) unevaluated. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a211a982339c3c992f77a436d3872a958}{lisp\+\_\+read}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Function; read one complete lisp form and return it. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_ab9755455107909ddd1f0f4eaacebd3e1}{lisp\+\_\+repl}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Function\+: the read/eval/print loop. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_ae3d8526a48dadb8a2d1042eb1a30599d}{lisp\+\_\+reverse}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Function; reverse the order of members in s sequence. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_acb0b12e6b1e85b766821e6a088d98d43}{lisp\+\_\+set}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Function; binds the value of {\ttfamily name} in the {\ttfamily namespace} to value of {\ttfamily value}, altering the namespace in so doing. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_abcba0ec3ef4ee8df493af82538e06fd2}{lisp\+\_\+set\+\_\+shriek}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Special form; binds {\ttfamily symbol} in the {\ttfamily namespace} to value of {\ttfamily value}, altering the namespace in so doing, and returns value. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a0b72bf4f6e9fb8381c0e6c73da6c26c9}{lisp\+\_\+source}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Function. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a5cfeb36141e705d2f5a885c57af4674e}{lisp\+\_\+try}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em OK, the idea here (and I know this is less than perfect) is that the basic {\ttfamily try} special form in PSSE takes two arguments, the first, {\ttfamily body}, being a list of forms, and the second, {\ttfamily catch}, being a catch handler (which is also a list of forms). \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a7647de62289a00570d25be62cc3d3a58}{lisp\+\_\+type}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Function\+: get the Lisp type of the single argument. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{lispops_8c_ad702e2d8f85514459d4c7ffdb4d7f122}{log\+\_\+binding}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} name, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} val)
\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_a24b5ba8eb0cb1705e44fdf3cd90d6f75}{throw\+\_\+exception}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} message, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer)
\begin{DoxyCompactList}\small\item\em Throw an exception. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{lispops_8c_ae98f233f522769b02aa734cc43a0fe7b}{prompt\+\_\+name}}
\begin{DoxyCompactList}\small\item\em the name of the symbol to which the prompt is bound; \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Function Documentation}
\Hypertarget{lispops_8c_ad91d964e274bbb8abf38aaa3522664a2}\label{lispops_8c_ad91d964e274bbb8abf38aaa3522664a2} 
\index{lispops.c@{lispops.c}!c\_append@{c\_append}}
\index{c\_append@{c\_append}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{c\_append()}{c\_append()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} c\+\_\+append (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{l1,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{l2 }\end{DoxyParamCaption})}



A version of append which can conveniently be called from C. 



Definition at line \mbox{\hyperlink{lispops_8c_source_l01410}{1410}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{lispops_8c_source_l01410}{c\+\_\+append()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00125}{c\+\_\+car()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00139}{c\+\_\+cdr()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00454}{c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+string()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00046}{CONSTV}}, \mbox{\hyperlink{consspaceobject_8h_source_l00100}{KEYTV}}, \mbox{\hyperlink{consspaceobject_8c_source_l00177}{make\+\_\+cons()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00308}{make\+\_\+string\+\_\+like\+\_\+thing()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_source_l00303}{nilp}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, \mbox{\hyperlink{consspaceobject_8h_source_l00221}{STRINGTV}}, \mbox{\hyperlink{consspaceobject_8h_source_l00231}{SYMBOLTV}}, and \mbox{\hyperlink{lispops_8c_source_l01208}{throw\+\_\+exception()}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l01410}{c\+\_\+append()}}, \mbox{\hyperlink{intern_8c_source_l00327}{c\+\_\+assoc()}}, and \mbox{\hyperlink{lispops_8c_source_l01456}{lisp\+\_\+append()}}.

\Hypertarget{lispops_8c_a06b3929acdfb8079898f493ec4db828b}\label{lispops_8c_a06b3929acdfb8079898f493ec4db828b} 
\index{lispops.c@{lispops.c}!c\_apply@{c\_apply}}
\index{c\_apply@{c\_apply}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{c\_apply()}{c\_apply()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} c\+\_\+apply (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Internal guts of apply. 


\begin{DoxyParams}{Parameters}
{\em frame} & the stack frame, expected to have only one argument, a list comprising something that evaluates to a function and its arguments. \\
\hline
{\em env} & The evaluation environment. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the result of evaluating the function with its arguments. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00340}{340}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{intern_8c_source_l00327}{c\+\_\+assoc()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00125}{c\+\_\+car()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00139}{c\+\_\+cdr()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00454}{c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+string()}}, \mbox{\hyperlink{debug_8h_source_l00049}{DEBUG\+\_\+\+EVAL}}, \mbox{\hyperlink{debug_8c_source_l00041}{debug\+\_\+print()}}, \mbox{\hyperlink{debug_8c_source_l00119}{debug\+\_\+print\+\_\+object()}}, \mbox{\hyperlink{debug_8c_source_l00085}{debug\+\_\+println()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00080}{dec\+\_\+ref()}}, \mbox{\hyperlink{lispops_8c_source_l00064}{eval\+\_\+form()}}, \mbox{\hyperlink{lispops_8c_source_l00256}{eval\+\_\+lambda()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00313}{exceptionp}}, \mbox{\hyperlink{consspaceobject_8h_source_l00057}{EXCEPTIONTV}}, \mbox{\hyperlink{consspaceobject_8h_source_l00080}{FUNCTIONTV}}, \mbox{\hyperlink{stack_8c_source_l00053}{get\+\_\+stack\+\_\+frame()}}, \mbox{\hyperlink{vectorspace_8h_source_l00030}{HASHTV}}, \mbox{\hyperlink{consspaceobject_8c_source_l00062}{inc\+\_\+ref()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00100}{KEYTV}}, \mbox{\hyperlink{consspaceobject_8h_source_l00111}{LAMBDATV}}, \mbox{\hyperlink{stack_8c_source_l00183}{make\+\_\+special\+\_\+frame()}}, \mbox{\hyperlink{stack_8c_source_l00116}{make\+\_\+stack\+\_\+frame()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_source_l00168}{NLAMBDATV}}, \mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{cons\+\_\+space\+\_\+object\+::payload}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, \mbox{\hyperlink{vectorspace_8h_source_l00055}{pointer\+\_\+to\+\_\+vso}}, \mbox{\hyperlink{consspaceobject_8h_source_l00211}{SPECIALTV}}, \mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{cons\+\_\+space\+\_\+object\+::tag}}, \mbox{\hyperlink{lispops_8c_source_l01208}{throw\+\_\+exception()}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00262}{VECTORPOINTTV}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l00564}{lisp\+\_\+apply()}}, and \mbox{\hyperlink{lispops_8c_source_l00504}{lisp\+\_\+eval()}}.

\Hypertarget{lispops_8c_a8e1a3da3aea36db9cf736ceb76046810}\label{lispops_8c_a8e1a3da3aea36db9cf736ceb76046810} 
\index{lispops.c@{lispops.c}!c\_keys@{c\_keys}}
\index{c\_keys@{c\_keys}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{c\_keys()}{c\_keys()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} c\+\_\+keys (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{store }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{lispops_8c_source_l00840}{840}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8c_source_l00125}{c\+\_\+car()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00139}{c\+\_\+cdr()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00308}{consp}}, \mbox{\hyperlink{intern_8c_source_l00162}{hashmap\+\_\+keys()}}, \mbox{\hyperlink{vectorspace_8h_source_l00032}{hashmapp}}, \mbox{\hyperlink{consspaceobject_8c_source_l00177}{make\+\_\+cons()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00303}{nilp}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l00854}{lisp\+\_\+keys()}}, and \mbox{\hyperlink{loop_8c_source_l00045}{lisp\+\_\+loop()}}.

\Hypertarget{lispops_8c_a643f4b78bb2f84baae37a6f73085470b}\label{lispops_8c_a643f4b78bb2f84baae37a6f73085470b} 
\index{lispops.c@{lispops.c}!c\_progn@{c\_progn}}
\index{c\_progn@{c\_progn}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{c\_progn()}{c\_progn()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} c\+\_\+progn (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{expressions,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Evaluate each of these expressions in this {\ttfamily env}ironment over this {\ttfamily frame}, returning only the value of the last. 



Definition at line \mbox{\hyperlink{lispops_8c_source_l01096}{1096}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8c_source_l00125}{c\+\_\+car()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00139}{c\+\_\+cdr()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00308}{consp}}, \mbox{\hyperlink{consspaceobject_8c_source_l00080}{dec\+\_\+ref()}}, \mbox{\hyperlink{lispops_8c_source_l00064}{eval\+\_\+form()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00313}{exceptionp}}, \mbox{\hyperlink{consspaceobject_8c_source_l00062}{inc\+\_\+ref()}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l01161}{lisp\+\_\+cond()}}, \mbox{\hyperlink{lispops_8c_source_l01127}{lisp\+\_\+progn()}}, and \mbox{\hyperlink{lispops_8c_source_l00157}{lisp\+\_\+try()}}.

\Hypertarget{lispops_8c_a3222877b61c27e3b6f0d18d485fbe143}\label{lispops_8c_a3222877b61c27e3b6f0d18d485fbe143} 
\index{lispops.c@{lispops.c}!c\_reverse@{c\_reverse}}
\index{c\_reverse@{c\_reverse}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{c\_reverse()}{c\_reverse()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} c\+\_\+reverse (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{arg }\end{DoxyParamCaption})}



reverse a sequence (if it is a sequence); else return it unchanged. 



Definition at line \mbox{\hyperlink{lispops_8c_source_l00943}{943}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8c_source_l00139}{c\+\_\+cdr()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00046}{CONSTV}}, \mbox{\hyperlink{consspaceobject_8c_source_l00177}{make\+\_\+cons()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00338}{make\+\_\+string()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00350}{make\+\_\+symbol\+\_\+or\+\_\+key()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{cons\+\_\+space\+\_\+object\+::payload}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, \mbox{\hyperlink{consspaceobject_8h_source_l00380}{sequencep}}, \mbox{\hyperlink{consspaceobject_8h_source_l00221}{STRINGTV}}, \mbox{\hyperlink{consspaceobject_8h_source_l00231}{SYMBOLTV}}, and \mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{cons\+\_\+space\+\_\+object\+::tag}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l00129}{eval\+\_\+forms()}}, \mbox{\hyperlink{lispops_8c_source_l01468}{lisp\+\_\+mapcar()}}, and \mbox{\hyperlink{lispops_8c_source_l00981}{lisp\+\_\+reverse()}}.

\Hypertarget{lispops_8c_a40b682c3cb66be9f583857a5f488a1a3}\label{lispops_8c_a40b682c3cb66be9f583857a5f488a1a3} 
\index{lispops.c@{lispops.c}!compose\_body@{compose\_body}}
\index{compose\_body@{compose\_body}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{compose\_body()}{compose\_body()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} compose\+\_\+body (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame }\end{DoxyParamCaption})}



Used to construct the body for {\ttfamily lambda} and {\ttfamily nlambda} expressions. 



Definition at line \mbox{\hyperlink{lispops_8c_source_l00194}{194}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8h_source_l00425}{args\+\_\+in\+\_\+frame}}, \mbox{\hyperlink{debug_8c_source_l00136}{debug\+\_\+dump\+\_\+object()}}, \mbox{\hyperlink{debug_8h_source_l00063}{DEBUG\+\_\+\+LAMBDA}}, \mbox{\hyperlink{debug_8c_source_l00041}{debug\+\_\+print()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00177}{make\+\_\+cons()}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00303}{nilp}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l00223}{lisp\+\_\+lambda()}}, and \mbox{\hyperlink{lispops_8c_source_l00240}{lisp\+\_\+nlambda()}}.

\Hypertarget{lispops_8c_a9f1504aecf8fbcd4b77a7207475e46b1}\label{lispops_8c_a9f1504aecf8fbcd4b77a7207475e46b1} 
\index{lispops.c@{lispops.c}!end\_of\_stringp@{end\_of\_stringp}}
\index{end\_of\_stringp@{end\_of\_stringp}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{end\_of\_stringp()}{end\_of\_stringp()}}
{\footnotesize\ttfamily bool end\+\_\+of\+\_\+stringp (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{arg }\end{DoxyParamCaption})}

\begin{DoxyReturn}{Returns}
true if {\ttfamily arg} represents an end of string, else false. 
\end{DoxyReturn}
\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000015}{Todo}}]candidate for moving to a memory/string.\+c file \end{DoxyRefDesc}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00680}{680}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8h_source_l00303}{nilp}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00343}{stringp}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l00702}{lisp\+\_\+cons()}}.

\Hypertarget{lispops_8c_a44a5860734b40a3b74b9bcf681422017}\label{lispops_8c_a44a5860734b40a3b74b9bcf681422017} 
\index{lispops.c@{lispops.c}!eval\_form@{eval\_form}}
\index{eval\_form@{eval\_form}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{eval\_form()}{eval\_form()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} eval\+\_\+form (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{parent,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{parent\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{form,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Useful building block; evaluate this single form in the context of this parent stack frame and this environment. 


\begin{DoxyParams}{Parameters}
{\em parent} & the parent stack frame. \\
\hline
{\em form} & the form to be evaluated. \\
\hline
{\em env} & the evaluation environment. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the result of evaluating the form. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00064}{64}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8h_source_l00441}{stack\+\_\+frame\+::args}}, \mbox{\hyperlink{debug_8h_source_l00049}{DEBUG\+\_\+\+EVAL}}, \mbox{\hyperlink{debug_8c_source_l00041}{debug\+\_\+print()}}, \mbox{\hyperlink{debug_8c_source_l00119}{debug\+\_\+print\+\_\+object()}}, \mbox{\hyperlink{debug_8c_source_l00085}{debug\+\_\+println()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00080}{dec\+\_\+ref()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00313}{exceptionp}}, \mbox{\hyperlink{consspaceobject_8h_source_l00057}{EXCEPTIONTV}}, \mbox{\hyperlink{consspaceobject_8h_source_l00068}{FREETV}}, \mbox{\hyperlink{stack_8c_source_l00053}{get\+\_\+stack\+\_\+frame()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00062}{inc\+\_\+ref()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00090}{INTEGERTV}}, \mbox{\hyperlink{consspaceobject_8h_source_l00100}{KEYTV}}, \mbox{\hyperlink{lispops_8c_source_l00504}{lisp\+\_\+eval()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00122}{LOOPTV}}, \mbox{\hyperlink{stack_8c_source_l00075}{make\+\_\+empty\+\_\+frame()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00157}{NILTV}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, \mbox{\hyperlink{consspaceobject_8h_source_l00179}{RATIOTV}}, \mbox{\hyperlink{consspaceobject_8h_source_l00189}{READTV}}, \mbox{\hyperlink{consspaceobject_8h_source_l00199}{REALTV}}, \mbox{\hyperlink{stack_8c_source_l00033}{set\+\_\+reg()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00221}{STRINGTV}}, \mbox{\hyperlink{consspaceobject_8h_source_l00241}{TIMETV}}, \mbox{\hyperlink{consspaceobject_8h_source_l00252}{TRUETV}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00272}{WRITETV}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l00340}{c\+\_\+apply()}}, \mbox{\hyperlink{lispops_8c_source_l01096}{c\+\_\+progn()}}, \mbox{\hyperlink{lispops_8c_source_l00129}{eval\+\_\+forms()}}, \mbox{\hyperlink{lispops_8c_source_l00256}{eval\+\_\+lambda()}}, \mbox{\hyperlink{lispops_8c_source_l01161}{lisp\+\_\+cond()}}, \mbox{\hyperlink{lispops_8c_source_l01528}{lisp\+\_\+let()}}, \mbox{\hyperlink{lispops_8c_source_l01468}{lisp\+\_\+mapcar()}}, \mbox{\hyperlink{lispops_8c_source_l01127}{lisp\+\_\+progn()}}, \mbox{\hyperlink{lispops_8c_source_l01263}{lisp\+\_\+repl()}}, \mbox{\hyperlink{lispops_8c_source_l00654}{lisp\+\_\+set\+\_\+shriek()}}, \mbox{\hyperlink{stack_8c_source_l00116}{make\+\_\+stack\+\_\+frame()}}, and \mbox{\hyperlink{read_8c_source_l00441}{read\+\_\+map()}}.

\Hypertarget{lispops_8c_a75b0b6eb243d1137eb9daa78d03e51f6}\label{lispops_8c_a75b0b6eb243d1137eb9daa78d03e51f6} 
\index{lispops.c@{lispops.c}!eval\_forms@{eval\_forms}}
\index{eval\_forms@{eval\_forms}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{eval\_forms()}{eval\_forms()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} eval\+\_\+forms (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{list,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Evaluate all the forms in this {\ttfamily list} in the context of this stack {\ttfamily frame} and this {\ttfamily env}, and return a list of their values. 

eval all the forms in this {\ttfamily list} in the context of this stack {\ttfamily frame} and this {\ttfamily env}, and return a list of their values.

If the arg passed as {\ttfamily list} is not in fact a list, return NIL. 
\begin{DoxyParams}{Parameters}
{\em frame} & the stack frame. \\
\hline
{\em list} & the list of forms to be evaluated. \\
\hline
{\em env} & the evaluation environment. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a list of the the results of evaluating the forms. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00129}{129}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8c_source_l00125}{c\+\_\+car()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00139}{c\+\_\+cdr()}}, \mbox{\hyperlink{lispops_8c_source_l00943}{c\+\_\+reverse()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00308}{consp}}, \mbox{\hyperlink{lispops_8c_source_l00064}{eval\+\_\+form()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00177}{make\+\_\+cons()}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l00256}{eval\+\_\+lambda()}}, and \mbox{\hyperlink{stack_8c_source_l00116}{make\+\_\+stack\+\_\+frame()}}.

\Hypertarget{lispops_8c_af998b509301da77fe751a1585aad91e1}\label{lispops_8c_af998b509301da77fe751a1585aad91e1} 
\index{lispops.c@{lispops.c}!eval\_lambda@{eval\_lambda}}
\index{eval\_lambda@{eval\_lambda}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{eval\_lambda()}{eval\_lambda()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} eval\+\_\+lambda (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\+\_\+space\+\_\+object}}}]{cell,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Evaluate a lambda or nlambda expression. 



Definition at line \mbox{\hyperlink{lispops_8c_source_l00256}{256}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8h_source_l00425}{args\+\_\+in\+\_\+frame}}, \mbox{\hyperlink{consspaceobject_8c_source_l00125}{c\+\_\+car()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00139}{c\+\_\+cdr()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00308}{consp}}, \mbox{\hyperlink{debug_8h_source_l00063}{DEBUG\+\_\+\+LAMBDA}}, \mbox{\hyperlink{debug_8c_source_l00041}{debug\+\_\+print()}}, \mbox{\hyperlink{debug_8c_source_l00119}{debug\+\_\+print\+\_\+object()}}, \mbox{\hyperlink{debug_8c_source_l00085}{debug\+\_\+println()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00080}{dec\+\_\+ref()}}, \mbox{\hyperlink{lispops_8c_source_l00064}{eval\+\_\+form()}}, \mbox{\hyperlink{lispops_8c_source_l00129}{eval\+\_\+forms()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00313}{exceptionp}}, \mbox{\hyperlink{consspaceobject_8c_source_l00062}{inc\+\_\+ref()}}, \mbox{\hyperlink{lispops_8c_source_l00245}{log\+\_\+binding()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00177}{make\+\_\+cons()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_source_l00303}{nilp}}, \mbox{\hyperlink{intern_8c_source_l00412}{set()}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00348}{symbolp}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l00340}{c\+\_\+apply()}}.

\Hypertarget{lispops_8c_abdc42c3fca33f19b155b35ef0a572680}\label{lispops_8c_abdc42c3fca33f19b155b35ef0a572680} 
\index{lispops.c@{lispops.c}!lisp\_append@{lisp\_append}}
\index{lisp\_append@{lisp\_append}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_append()}{lisp\_append()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+append (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



should really be overwritten with a version in Lisp, since this is much easier to write in Lisp 



Definition at line \mbox{\hyperlink{lispops_8c_source_l01456}{1456}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{lispops_8c_source_l01410}{c\+\_\+append()}}, and \mbox{\hyperlink{stack_8c_source_l00286}{fetch\+\_\+arg()}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_a5f46a92d58e16619fe9f3df406948f7f}\label{lispops_8c_a5f46a92d58e16619fe9f3df406948f7f} 
\index{lispops.c@{lispops.c}!lisp\_apply@{lisp\_apply}}
\index{lisp\_apply@{lisp\_apply}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_apply()}{lisp\_apply()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+apply (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Function; apply the function which is the result of evaluating the first argument to the list of values which is the result of evaluating the second argument. 


\begin{DoxyItemize}
\item (apply fn args)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & my environment. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the result of applying {\ttfamily fn} to {\ttfamily args}. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00564}{564}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{lispops_8c_source_l00340}{c\+\_\+apply()}}, \mbox{\hyperlink{debug_8c_source_l00136}{debug\+\_\+dump\+\_\+object()}}, \mbox{\hyperlink{debug_8h_source_l00049}{DEBUG\+\_\+\+EVAL}}, \mbox{\hyperlink{debug_8c_source_l00041}{debug\+\_\+print()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00177}{make\+\_\+cons()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, and \mbox{\hyperlink{stack_8c_source_l00033}{set\+\_\+reg()}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_a02dbbf32cdf97a3c49d03de2af28b56d}\label{lispops_8c_a02dbbf32cdf97a3c49d03de2af28b56d} 
\index{lispops.c@{lispops.c}!lisp\_assoc@{lisp\_assoc}}
\index{lisp\_assoc@{lisp\_assoc}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_assoc()}{lisp\_assoc()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+assoc (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Function; look up the value of a {\ttfamily key} in a {\ttfamily store}. 


\begin{DoxyItemize}
\item (assoc key store)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & my environment (ignored). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the value associated with {\ttfamily key} in {\ttfamily store}, or {\ttfamily nil} if not found. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00835}{835}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{intern_8c_source_l00327}{c\+\_\+assoc()}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_a3a7c2b4fe66e0c4b62f274443c9add70}\label{lispops_8c_a3a7c2b4fe66e0c4b62f274443c9add70} 
\index{lispops.c@{lispops.c}!lisp\_car@{lisp\_car}}
\index{lisp\_car@{lisp\_car}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_car()}{lisp\_car()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+car (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Function; returns the first item (head) of a sequence. 

Valid for cons cells, strings, read streams and TODO other things which can be considered as sequences.


\begin{DoxyItemize}
\item (car expression)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & my environment (ignored). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the first item (head) of {\ttfamily expression}. 
\end{DoxyReturn}

\begin{DoxyExceptions}{Exceptions}
{\em if} & \`{}expression\`{} is not a sequence. \\
\hline
\end{DoxyExceptions}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00735}{735}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8c_source_l00454}{c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+string()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00046}{CONSTV}}, \mbox{\hyperlink{consspaceobject_8c_source_l00338}{make\+\_\+string()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_source_l00157}{NILTV}}, \mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{cons\+\_\+space\+\_\+object\+::payload}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, \mbox{\hyperlink{consspaceobject_8h_source_l00189}{READTV}}, \mbox{\hyperlink{consspaceobject_8h_source_l00221}{STRINGTV}}, \mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{cons\+\_\+space\+\_\+object\+::tag}}, \mbox{\hyperlink{lispops_8c_source_l01208}{throw\+\_\+exception()}}, and \mbox{\hyperlink{io_8c_source_l00151}{url\+\_\+fgetwc()}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_ad4fc50e8dfc244fa5881ef577c000d49}\label{lispops_8c_ad4fc50e8dfc244fa5881ef577c000d49} 
\index{lispops.c@{lispops.c}!lisp\_cdr@{lisp\_cdr}}
\index{lisp\_cdr@{lisp\_cdr}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_cdr()}{lisp\_cdr()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+cdr (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Function; returns the remainder of a sequence when the head is removed. 

Valid for cons cells, strings, read streams and TODO other things which can be considered as sequences. {\itshape NOTE} that if the argument is an input stream, the first character is removed AND DISCARDED.


\begin{DoxyItemize}
\item (cdr expression)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & my environment (ignored). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the remainder of {\ttfamily expression} when the head is removed. 
\end{DoxyReturn}

\begin{DoxyExceptions}{Exceptions}
{\em if} & \`{}expression\`{} is not a sequence. \\
\hline
\end{DoxyExceptions}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00779}{779}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8c_source_l00454}{c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+string()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00046}{CONSTV}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_source_l00157}{NILTV}}, \mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{cons\+\_\+space\+\_\+object\+::payload}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, \mbox{\hyperlink{consspaceobject_8h_source_l00189}{READTV}}, \mbox{\hyperlink{consspaceobject_8h_source_l00221}{STRINGTV}}, \mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{cons\+\_\+space\+\_\+object\+::tag}}, \mbox{\hyperlink{lispops_8c_source_l01208}{throw\+\_\+exception()}}, and \mbox{\hyperlink{io_8c_source_l00151}{url\+\_\+fgetwc()}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_ada539c994fddd1943492b6c0a9abdcb7}\label{lispops_8c_ada539c994fddd1943492b6c0a9abdcb7} 
\index{lispops.c@{lispops.c}!lisp\_cond@{lisp\_cond}}
\index{lisp\_cond@{lisp\_cond}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_cond()}{lisp\_cond()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+cond (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Special form\+: conditional. 

Each {\ttfamily clause} is expected to be a list; if the first item in such a list evaluates to non-\/\+NIL, the remaining items in that list are evaluated in turn and the value of the last returned. If no arg {\ttfamily clause} has a first element which evaluates to non NIL, then NIL is returned.


\begin{DoxyItemize}
\item (cond clauses...)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my stack frame. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & the environment in which arguments will be evaluated. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the value of the last expression of the first successful {\ttfamily clause}. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l01161}{1161}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8h_source_l00425}{args\+\_\+in\+\_\+frame}}, \mbox{\hyperlink{consspaceobject_8c_source_l00125}{c\+\_\+car()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00139}{c\+\_\+cdr()}}, \mbox{\hyperlink{lispops_8c_source_l01096}{c\+\_\+progn()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00454}{c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+string()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00308}{consp}}, \mbox{\hyperlink{debug_8c_source_l00136}{debug\+\_\+dump\+\_\+object()}}, \mbox{\hyperlink{debug_8h_source_l00049}{DEBUG\+\_\+\+EVAL}}, \mbox{\hyperlink{debug_8c_source_l00041}{debug\+\_\+print()}}, \mbox{\hyperlink{lispops_8c_source_l00064}{eval\+\_\+form()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_source_l00303}{nilp}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, and \mbox{\hyperlink{lispops_8c_source_l01208}{throw\+\_\+exception()}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_a17fe7aebbf97744d912402087ae1622b}\label{lispops_8c_a17fe7aebbf97744d912402087ae1622b} 
\index{lispops.c@{lispops.c}!lisp\_cons@{lisp\_cons}}
\index{lisp\_cons@{lisp\_cons}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_cons()}{lisp\_cons()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+cons (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Function; returns a cell constructed from a and b. 

If a is of type string but its cdr is nill, and b is of type string, then returns a new string cell; otherwise returns a new cons cell.

Thus\+: {\ttfamily (cons "{}a"{} "{}bcd"{}) -\/\texorpdfstring{$>$}{>} "{}abcd"{}}, but {\ttfamily (cons "{}ab"{} "{}cd"{}) -\/\texorpdfstring{$>$}{>} ("{}ab"{} . "{}cd"{})}


\begin{DoxyItemize}
\item (cons a b)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & my environment (ignored). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a new cons cell whose {\ttfamily car} is {\ttfamily a} and whose {\ttfamily cdr} is {\ttfamily b}. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00702}{702}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8c_source_l00139}{c\+\_\+cdr()}}, \mbox{\hyperlink{lispops_8c_source_l00680}{end\+\_\+of\+\_\+stringp()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00177}{make\+\_\+cons()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00338}{make\+\_\+string()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_source_l00303}{nilp}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00343}{stringp}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_a1bcd755166a33b1cc3952ee495bfcffb}\label{lispops_8c_a1bcd755166a33b1cc3952ee495bfcffb} 
\index{lispops.c@{lispops.c}!lisp\_eq@{lisp\_eq}}
\index{lisp\_eq@{lisp\_eq}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_eq()}{lisp\_eq()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+eq (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Function; are these two objects the same object? Shallow, cheap equality. 


\begin{DoxyItemize}
\item (eq a b)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & my environment (ignored). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily t} if {\ttfamily a} and {\ttfamily b} are pointers to the same object, else {\ttfamily nil}; 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00870}{870}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{equal_8c_source_l00024}{eq()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00282}{TRUE}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_aa5c4d9285dc36c3231cb93af9e9192bf}\label{lispops_8c_aa5c4d9285dc36c3231cb93af9e9192bf} 
\index{lispops.c@{lispops.c}!lisp\_equal@{lisp\_equal}}
\index{lisp\_equal@{lisp\_equal}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_equal()}{lisp\_equal()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+equal (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Function; are these two arguments identical? Deep, expensive equality. 


\begin{DoxyItemize}
\item (equal a b)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & my environment (ignored). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily t} if {\ttfamily a} and {\ttfamily b} are recursively identical, else {\ttfamily nil}. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00887}{887}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{equal_8c_source_l00247}{equal()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00282}{TRUE}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_a723a97602491ca6737289d7437f96d40}\label{lispops_8c_a723a97602491ca6737289d7437f96d40} 
\index{lispops.c@{lispops.c}!lisp\_eval@{lisp\_eval}}
\index{lisp\_eval@{lisp\_eval}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_eval()}{lisp\_eval()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+eval (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Function; evaluate the expression which is the first argument in the frame; further arguments are ignored. 


\begin{DoxyItemize}
\item (eval expression)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & my environment. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item If {\ttfamily expression} is a number, string, {\ttfamily nil}, or {\ttfamily t}, returns {\ttfamily expression}.
\item If {\ttfamily expression} is a symbol, returns the value that expression is bound to in the evaluation environment ({\ttfamily env}).
\item If {\ttfamily expression} is a list, expects the car to be something that evaluates to a function or special form\+:
\begin{DoxyItemize}
\item If a function, evaluates all the other top level elements in {\ttfamily expression} and passes them in a stack frame as arguments to the function;
\item If a special form, passes the cdr of expression to the special form as argument. 
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyReturn}

\begin{DoxyExceptions}{Exceptions}
{\em if} & \`{}expression\`{} is a symbol which is not bound in \`{}env\`{}. \\
\hline
\end{DoxyExceptions}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00504}{504}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{lispops_8c_source_l00340}{c\+\_\+apply()}}, \mbox{\hyperlink{intern_8c_source_l00327}{c\+\_\+assoc()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00454}{c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+string()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00046}{CONSTV}}, \mbox{\hyperlink{debug_8c_source_l00136}{debug\+\_\+dump\+\_\+object()}}, \mbox{\hyperlink{debug_8h_source_l00049}{DEBUG\+\_\+\+EVAL}}, \mbox{\hyperlink{debug_8c_source_l00041}{debug\+\_\+print()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00062}{inc\+\_\+ref()}}, \mbox{\hyperlink{intern_8c_source_l00281}{internedp()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00177}{make\+\_\+cons()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00303}{nilp}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, \mbox{\hyperlink{consspaceobject_8h_source_l00231}{SYMBOLTV}}, \mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{cons\+\_\+space\+\_\+object\+::tag}}, and \mbox{\hyperlink{lispops_8c_source_l01208}{throw\+\_\+exception()}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l00064}{eval\+\_\+form()}}, and \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_a2a9243d54e3891ae97b25dd314a91a2a}\label{lispops_8c_a2a9243d54e3891ae97b25dd314a91a2a} 
\index{lispops.c@{lispops.c}!lisp\_exception@{lisp\_exception}}
\index{lisp\_exception@{lisp\_exception}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_exception()}{lisp\_exception()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+exception (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Function; create an exception. 

Exceptions are special in as much as if an exception is created in the binding of the arguments of any function, the function will return the exception rather than whatever else it would normally return. A function which detects a problem it cannot resolve {\itshape should} return an exception.


\begin{DoxyItemize}
\item (exception message frame)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my stack frame. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & the environment in which arguments will be evaluated. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
areturns an exception whose message is this {\ttfamily message}, and whose stack frame is the parent stack frame when the function is invoked. {\ttfamily message} does not have to be a string but should be something intelligible which can be read. If {\ttfamily message} is itself an exception, returns that instead. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l01244}{1244}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8h_source_l00313}{exceptionp}}, and \mbox{\hyperlink{lispops_8c_source_l01208}{throw\+\_\+exception()}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_a53cd12e5e167232513707b89291e6d08}\label{lispops_8c_a53cd12e5e167232513707b89291e6d08} 
\index{lispops.c@{lispops.c}!lisp\_inspect@{lisp\_inspect}}
\index{lisp\_inspect@{lisp\_inspect}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_inspect()}{lisp\_inspect()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+inspect (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Function\+: dump/inspect one complete lisp expression and return NIL. 

If write-\/stream is specified and is a write stream, then print to that stream, else the stream which is the value of {\ttfamily \texorpdfstring{$\ast$}{*}out\texorpdfstring{$\ast$}{*}} in the environment.


\begin{DoxyItemize}
\item (inspect expr)
\item (inspect expr write-\/stream)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & my environment (from which the stream may be extracted). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
NIL. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l01001}{1001}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{debug_8c_source_l00136}{debug\+\_\+dump\+\_\+object()}}, \mbox{\hyperlink{debug_8h_source_l00056}{DEBUG\+\_\+\+IO}}, \mbox{\hyperlink{debug_8c_source_l00041}{debug\+\_\+print()}}, \mbox{\hyperlink{dump_8c_source_l00059}{dump\+\_\+object()}}, \mbox{\hyperlink{io_8c_source_l00134}{file\+\_\+to\+\_\+url\+\_\+file()}}, \mbox{\hyperlink{io_8c_source_l00411}{get\+\_\+default\+\_\+stream()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00390}{writep}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_aa555248e9a265261bf7f2b2395b01b54}\label{lispops_8c_aa555248e9a265261bf7f2b2395b01b54} 
\index{lispops.c@{lispops.c}!lisp\_keys@{lisp\_keys}}
\index{lisp\_keys@{lisp\_keys}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_keys()}{lisp\_keys()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+keys (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{lispops_8c_source_l00854}{854}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{lispops_8c_source_l00840}{c\+\_\+keys()}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_ad01fa34e71190873e229778577b350d0}\label{lispops_8c_ad01fa34e71190873e229778577b350d0} 
\index{lispops.c@{lispops.c}!lisp\_lambda@{lisp\_lambda}}
\index{lisp\_lambda@{lisp\_lambda}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_lambda()}{lisp\_lambda()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+lambda (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Construct an interpretable function. 

{\itshape NOTE} that if {\ttfamily args} is a single symbol rather than a list, a varargs function will be created.

(lambda args body)


\begin{DoxyParams}{Parameters}
{\em frame} & the stack frame in which the expression is to be interpreted; \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & the environment in which it is to be intepreted. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
an interpretable function with these {\ttfamily args} and this {\ttfamily body}. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00223}{223}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{lispops_8c_source_l00194}{compose\+\_\+body()}}, and \mbox{\hyperlink{consspaceobject_8c_source_l00240}{make\+\_\+lambda()}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_a5ce5878a7fe40eb09fbae6b6c3111cdd}\label{lispops_8c_a5ce5878a7fe40eb09fbae6b6c3111cdd} 
\index{lispops.c@{lispops.c}!lisp\_length@{lisp\_length}}
\index{lisp\_length@{lisp\_length}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_length()}{lisp\_length()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+length (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Function\+: return, as an integer, the length of the sequence indicated by the first argument, or zero if it is not a sequence. 


\begin{DoxyItemize}
\item (length any)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & my environment (ignored). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the length of {\ttfamily any}, if it is a sequence, or zero otherwise. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00818}{818}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8c_source_l00164}{c\+\_\+length()}}, \mbox{\hyperlink{integer_8c_source_l00089}{make\+\_\+integer()}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}.

\Hypertarget{lispops_8c_a536dcbdd60e4ff3bf74b617e488b0c75}\label{lispops_8c_a536dcbdd60e4ff3bf74b617e488b0c75} 
\index{lispops.c@{lispops.c}!lisp\_let@{lisp\_let}}
\index{lisp\_let@{lisp\_let}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_let()}{lisp\_let()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+let (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Special form\+: evaluate a series of forms in an environment in which these bindings are bound. 

This is {\ttfamily let\texorpdfstring{$\ast$}{*}} in Common Lisp parlance; {\ttfamily let} in Clojure parlance. 

Definition at line \mbox{\hyperlink{lispops_8c_source_l01528}{1528}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8c_source_l00125}{c\+\_\+car()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00139}{c\+\_\+cdr()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00454}{c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+string()}}, \mbox{\hyperlink{lispops_8c_source_l00064}{eval\+\_\+form()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00313}{exceptionp}}, \mbox{\hyperlink{stack_8c_source_l00286}{fetch\+\_\+arg()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00177}{make\+\_\+cons()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_source_l00348}{symbolp}}, \mbox{\hyperlink{lispops_8c_source_l01208}{throw\+\_\+exception()}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00410}{truep}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_ad5ed6a7754f8aac2352165f675549f3c}\label{lispops_8c_ad5ed6a7754f8aac2352165f675549f3c} 
\index{lispops.c@{lispops.c}!lisp\_list@{lisp\_list}}
\index{lisp\_list@{lisp\_list}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_list()}{lisp\_list()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+list (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{lispops_8c_source_l01510}{1510}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8h_source_l00425}{args\+\_\+in\+\_\+frame}}, \mbox{\hyperlink{stack_8c_source_l00286}{fetch\+\_\+arg()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00177}{make\+\_\+cons()}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00303}{nilp}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_a1537dbeaaee54b95ab9ca1c12307bb52}\label{lispops_8c_a1537dbeaaee54b95ab9ca1c12307bb52} 
\index{lispops.c@{lispops.c}!lisp\_mapcar@{lisp\_mapcar}}
\index{lisp\_mapcar@{lisp\_mapcar}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_mapcar()}{lisp\_mapcar()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+mapcar (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{lispops_8c_source_l01468}{1468}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8c_source_l00125}{c\+\_\+car()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00139}{c\+\_\+cdr()}}, \mbox{\hyperlink{lispops_8c_source_l00943}{c\+\_\+reverse()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00308}{consp}}, \mbox{\hyperlink{debug_8c_source_l00136}{debug\+\_\+dump\+\_\+object()}}, \mbox{\hyperlink{debug_8h_source_l00049}{DEBUG\+\_\+\+EVAL}}, \mbox{\hyperlink{debug_8c_source_l00041}{debug\+\_\+print()}}, \mbox{\hyperlink{debug_8c_source_l00119}{debug\+\_\+print\+\_\+object()}}, \mbox{\hyperlink{debug_8c_source_l00101}{debug\+\_\+printf()}}, \mbox{\hyperlink{debug_8c_source_l00085}{debug\+\_\+println()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00080}{dec\+\_\+ref()}}, \mbox{\hyperlink{lispops_8c_source_l00064}{eval\+\_\+form()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00313}{exceptionp}}, \mbox{\hyperlink{consspaceobject_8c_source_l00062}{inc\+\_\+ref()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00177}{make\+\_\+cons()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00410}{truep}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_a022029c6b7753a6f99fcba31ca51751f}\label{lispops_8c_a022029c6b7753a6f99fcba31ca51751f} 
\index{lispops.c@{lispops.c}!lisp\_nlambda@{lisp\_nlambda}}
\index{lisp\_nlambda@{lisp\_nlambda}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_nlambda()}{lisp\_nlambda()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+nlambda (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Construct an interpretable special form. 

{\itshape NOTE} that if {\ttfamily args} is a single symbol rather than a list, a varargs special form will be created.

(nlambda args body)


\begin{DoxyParams}{Parameters}
{\em frame} & the stack frame in which the expression is to be interpreted; \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & the environment in which it is to be intepreted. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
an interpretable special form with these {\ttfamily args} and this {\ttfamily body}. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00240}{240}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{lispops_8c_source_l00194}{compose\+\_\+body()}}, and \mbox{\hyperlink{consspaceobject_8c_source_l00257}{make\+\_\+nlambda()}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_ada3567423dc08d9a59a5c5fff911aa2a}\label{lispops_8c_ada3567423dc08d9a59a5c5fff911aa2a} 
\index{lispops.c@{lispops.c}!lisp\_oblist@{lisp\_oblist}}
\index{lisp\_oblist@{lisp\_oblist}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_oblist()}{lisp\_oblist()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+oblist (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Return the object list (root namespace). 


\begin{DoxyItemize}
\item (oblist)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & the stack frame in which the expression is to be interpreted; \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & my environment (ignored). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the root namespace. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00186}{186}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{intern_8c_source_l00048}{oblist}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_ad10bc08ad7c7e794b180cf27cfed1d0d}\label{lispops_8c_ad10bc08ad7c7e794b180cf27cfed1d0d} 
\index{lispops.c@{lispops.c}!lisp\_print@{lisp\_print}}
\index{lisp\_print@{lisp\_print}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_print()}{lisp\_print()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+print (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Function; print one complete lisp expression and return NIL. 

If write-\/stream is specified and is a write stream, then print to that stream, else the stream which is the value of {\ttfamily \texorpdfstring{$\ast$}{*}out\texorpdfstring{$\ast$}{*}} in the environment.


\begin{DoxyItemize}
\item (print expr)
\item (print expr write-\/stream)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & my environment (from which the stream may be extracted). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
NIL. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l01040}{1040}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{debug_8c_source_l00136}{debug\+\_\+dump\+\_\+object()}}, \mbox{\hyperlink{debug_8h_source_l00056}{DEBUG\+\_\+\+IO}}, \mbox{\hyperlink{debug_8c_source_l00041}{debug\+\_\+print()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00080}{dec\+\_\+ref()}}, \mbox{\hyperlink{io_8c_source_l00134}{file\+\_\+to\+\_\+url\+\_\+file()}}, \mbox{\hyperlink{io_8c_source_l00411}{get\+\_\+default\+\_\+stream()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00062}{inc\+\_\+ref()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, \mbox{\hyperlink{print_8c_source_l00151}{print()}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00390}{writep}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_a9831a05871538397b3bd1f6ee83a6b54}\label{lispops_8c_a9831a05871538397b3bd1f6ee83a6b54} 
\index{lispops.c@{lispops.c}!lisp\_progn@{lisp\_progn}}
\index{lisp\_progn@{lisp\_progn}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_progn()}{lisp\_progn()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+progn (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Special form; evaluate the expressions which are listed in my arguments sequentially and return the value of the last. 

Function; evaluate the forms which are listed in my single argument sequentially and return the value of the last.

This function is called \textquotesingle{}do\textquotesingle{} in some dialects of Lisp.


\begin{DoxyItemize}
\item (progn expressions...)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my stack frame. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & the environment in which expressions are evaluated. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the value of the last {\ttfamily expression} of the sequence which is my single argument. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l01127}{1127}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8h_source_l00425}{args\+\_\+in\+\_\+frame}}, \mbox{\hyperlink{lispops_8c_source_l01096}{c\+\_\+progn()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00308}{consp}}, \mbox{\hyperlink{consspaceobject_8c_source_l00080}{dec\+\_\+ref()}}, \mbox{\hyperlink{lispops_8c_source_l00064}{eval\+\_\+form()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00062}{inc\+\_\+ref()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00303}{nilp}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_ac8551f91422af8672b2b35b097e073d0}\label{lispops_8c_ac8551f91422af8672b2b35b097e073d0} 
\index{lispops.c@{lispops.c}!lisp\_quote@{lisp\_quote}}
\index{lisp\_quote@{lisp\_quote}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_quote()}{lisp\_quote()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+quote (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Special form; returns its argument (strictly first argument -\/ only one is expected but this isn\textquotesingle{}t at this stage checked) unevaluated. 


\begin{DoxyItemize}
\item (quote a)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & my environment (ignored). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily a}, unevaluated, 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00594}{594}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_a211a982339c3c992f77a436d3872a958}\label{lispops_8c_a211a982339c3c992f77a436d3872a958} 
\index{lispops.c@{lispops.c}!lisp\_read@{lisp\_read}}
\index{lisp\_read@{lisp\_read}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_read()}{lisp\_read()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+read (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Function; read one complete lisp form and return it. 

If read-\/stream is specified and is a read stream, then read from that stream, else the stream which is the value of {\ttfamily \texorpdfstring{$\ast$}{*}in\texorpdfstring{$\ast$}{*}} in the environment.


\begin{DoxyItemize}
\item (read)
\item (read read-\/stream)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & my environment. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the expression read. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00906}{906}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{debug_8c_source_l00136}{debug\+\_\+dump\+\_\+object()}}, \mbox{\hyperlink{debug_8h_source_l00056}{DEBUG\+\_\+\+IO}}, \mbox{\hyperlink{debug_8c_source_l00041}{debug\+\_\+print()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00080}{dec\+\_\+ref()}}, \mbox{\hyperlink{io_8c_source_l00134}{file\+\_\+to\+\_\+url\+\_\+file()}}, \mbox{\hyperlink{io_8c_source_l00411}{get\+\_\+default\+\_\+stream()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00062}{inc\+\_\+ref()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, \mbox{\hyperlink{read_8c_source_l00559}{read()}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00363}{readp}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l01263}{lisp\+\_\+repl()}}, and \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_ab9755455107909ddd1f0f4eaacebd3e1}\label{lispops_8c_ab9755455107909ddd1f0f4eaacebd3e1} 
\index{lispops.c@{lispops.c}!lisp\_repl@{lisp\_repl}}
\index{lisp\_repl@{lisp\_repl}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_repl()}{lisp\_repl()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+repl (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Function\+: the read/eval/print loop. 


\begin{DoxyItemize}
\item (repl)
\item (repl prompt)
\item (repl prompt input\+\_\+stream output\+\_\+stream)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my stack frame. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & the environment in which epressions will be evaluated. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the value of the last expression read. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l01263}{1263}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{intern_8c_source_l00327}{c\+\_\+assoc()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00125}{c\+\_\+car()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00139}{c\+\_\+cdr()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00469}{c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+symbol()}}, \mbox{\hyperlink{debug_8c_source_l00041}{debug\+\_\+print()}}, \mbox{\hyperlink{debug_8c_source_l00119}{debug\+\_\+print\+\_\+object()}}, \mbox{\hyperlink{debug_8c_source_l00101}{debug\+\_\+printf()}}, \mbox{\hyperlink{debug_8c_source_l00085}{debug\+\_\+println()}}, \mbox{\hyperlink{debug_8h_source_l00070}{DEBUG\+\_\+\+REPL}}, \mbox{\hyperlink{consspaceobject_8c_source_l00080}{dec\+\_\+ref()}}, \mbox{\hyperlink{equal_8c_source_l00024}{eq()}}, \mbox{\hyperlink{lispops_8c_source_l00064}{eval\+\_\+form()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00313}{exceptionp}}, \mbox{\hyperlink{io_8c_source_l00411}{get\+\_\+default\+\_\+stream()}}, \mbox{\hyperlink{stack_8c_source_l00053}{get\+\_\+stack\+\_\+frame()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00062}{inc\+\_\+ref()}}, \mbox{\hyperlink{lispops_8c_source_l00906}{lisp\+\_\+read()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00177}{make\+\_\+cons()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_source_l00303}{nilp}}, \mbox{\hyperlink{intern_8c_source_l00048}{oblist}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, \mbox{\hyperlink{print_8c_source_l00151}{print()}}, \mbox{\hyperlink{print_8c_source_l00275}{println()}}, \mbox{\hyperlink{lispops_8c_source_l00046}{prompt\+\_\+name}}, \mbox{\hyperlink{consspaceobject_8h_source_l00363}{readp}}, \mbox{\hyperlink{intern_8c_source_l00412}{set()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00410}{truep}}, \mbox{\hyperlink{fopen_8c_source_l00286}{url\+\_\+feof()}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00390}{writep}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}, and \mbox{\hyperlink{repl_8c_source_l00033}{repl()}}.

\Hypertarget{lispops_8c_ae3d8526a48dadb8a2d1042eb1a30599d}\label{lispops_8c_ae3d8526a48dadb8a2d1042eb1a30599d} 
\index{lispops.c@{lispops.c}!lisp\_reverse@{lisp\_reverse}}
\index{lisp\_reverse@{lisp\_reverse}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_reverse()}{lisp\_reverse()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+reverse (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Function; reverse the order of members in s sequence. 


\begin{DoxyItemize}
\item (reverse sequence)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & my environment (ignored). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a sequence like this {\ttfamily sequence} but with the members in the reverse order. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00981}{981}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{lispops_8c_source_l00943}{c\+\_\+reverse()}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_acb0b12e6b1e85b766821e6a088d98d43}\label{lispops_8c_acb0b12e6b1e85b766821e6a088d98d43} 
\index{lispops.c@{lispops.c}!lisp\_set@{lisp\_set}}
\index{lisp\_set@{lisp\_set}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_set()}{lisp\_set()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+set (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Function; binds the value of {\ttfamily name} in the {\ttfamily namespace} to value of {\ttfamily value}, altering the namespace in so doing. 

Retuns {\ttfamily value}. {\ttfamily namespace} defaults to the oblist. \begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000013}{Todo}}]doesn\textquotesingle{}t actually work yet for namespaces which are not the oblist.\end{DoxyRefDesc}



\begin{DoxyItemize}
\item (set name value)
\item (set name value namespace)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & my environment (ignored). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily value} 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00616}{616}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8c_source_l00454}{c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+string()}}, \mbox{\hyperlink{intern_8c_source_l00447}{deep\+\_\+bind()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00177}{make\+\_\+cons()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_source_l00303}{nilp}}, \mbox{\hyperlink{intern_8c_source_l00048}{oblist}}, \mbox{\hyperlink{consspaceobject_8h_source_l00348}{symbolp}}, and \mbox{\hyperlink{lispops_8c_source_l01208}{throw\+\_\+exception()}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_abcba0ec3ef4ee8df493af82538e06fd2}\label{lispops_8c_abcba0ec3ef4ee8df493af82538e06fd2} 
\index{lispops.c@{lispops.c}!lisp\_set\_shriek@{lisp\_set\_shriek}}
\index{lisp\_set\_shriek@{lisp\_set\_shriek}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_set\_shriek()}{lisp\_set\_shriek()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+set\+\_\+shriek (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Special form; binds {\ttfamily symbol} in the {\ttfamily namespace} to value of {\ttfamily value}, altering the namespace in so doing, and returns value. 

{\ttfamily namespace} defaults to the value of {\ttfamily oblist}. \begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000014}{Todo}}]doesn\textquotesingle{}t actually work yet for namespaces which are not the oblist.\end{DoxyRefDesc}



\begin{DoxyItemize}
\item (set! symbol value)
\item (set! symbol value namespace)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & my environment (ignored). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily value} 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l00654}{654}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8c_source_l00454}{c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+string()}}, \mbox{\hyperlink{intern_8c_source_l00447}{deep\+\_\+bind()}}, \mbox{\hyperlink{lispops_8c_source_l00064}{eval\+\_\+form()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00177}{make\+\_\+cons()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_source_l00348}{symbolp}}, and \mbox{\hyperlink{lispops_8c_source_l01208}{throw\+\_\+exception()}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_a0b72bf4f6e9fb8381c0e6c73da6c26c9}\label{lispops_8c_a0b72bf4f6e9fb8381c0e6c73da6c26c9} 
\index{lispops.c@{lispops.c}!lisp\_source@{lisp\_source}}
\index{lisp\_source@{lisp\_source}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_source()}{lisp\_source()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+source (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Function. 

return the source code of the object which is its first argument, if it is an executable and has source code.


\begin{DoxyItemize}
\item (source object)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my stack frame. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & the environment (ignored). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the source of the {\ttfamily object} indicated, if it is a function, a lambda, an nlambda, or a spcial form; else {\ttfamily nil}. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l01377}{1377}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{intern_8c_source_l00327}{c\+\_\+assoc()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00437}{c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+keyword()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00469}{c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+symbol()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00080}{FUNCTIONTV}}, \mbox{\hyperlink{consspaceobject_8c_source_l00062}{inc\+\_\+ref()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00111}{LAMBDATV}}, \mbox{\hyperlink{consspaceobject_8c_source_l00177}{make\+\_\+cons()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_source_l00168}{NLAMBDATV}}, \mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{cons\+\_\+space\+\_\+object\+::payload}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, \mbox{\hyperlink{consspaceobject_8h_source_l00211}{SPECIALTV}}, and \mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{cons\+\_\+space\+\_\+object\+::tag}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_a5cfeb36141e705d2f5a885c57af4674e}\label{lispops_8c_a5cfeb36141e705d2f5a885c57af4674e} 
\index{lispops.c@{lispops.c}!lisp\_try@{lisp\_try}}
\index{lisp\_try@{lisp\_try}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_try()}{lisp\_try()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+try (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



OK, the idea here (and I know this is less than perfect) is that the basic {\ttfamily try} special form in PSSE takes two arguments, the first, {\ttfamily body}, being a list of forms, and the second, {\ttfamily catch}, being a catch handler (which is also a list of forms). 

Forms from {\ttfamily body} are evaluated in turn until one returns an exception object, or until the list is exhausted. If the list was exhausted, then the value of evaluating the last form in {\ttfamily body} is returned. If an exception was encountered, then each of the forms in {\ttfamily catch} is evaluated and the value of the last of those is returned.

This is experimental. It almost certainly WILL change. 

Definition at line \mbox{\hyperlink{lispops_8c_source_l00157}{157}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{lispops_8c_source_l01096}{c\+\_\+progn()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00469}{c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+symbol()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00313}{exceptionp}}, and \mbox{\hyperlink{consspaceobject_8c_source_l00177}{make\+\_\+cons()}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_a7647de62289a00570d25be62cc3d3a58}\label{lispops_8c_a7647de62289a00570d25be62cc3d3a58} 
\index{lispops.c@{lispops.c}!lisp\_type@{lisp\_type}}
\index{lisp\_type@{lisp\_type}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{lisp\_type()}{lisp\_type()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+type (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Function\+: get the Lisp type of the single argument. 

Function\+: Get the Lisp type of the single argument.


\begin{DoxyItemize}
\item (type expression)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em frame} & my stack frame. \\
\hline
{\em frame\+\_\+pointer} & a pointer to my \doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}. \\
\hline
{\em env} & my environment (ignored). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
As a Lisp string, the tag of {\ttfamily expression}. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{lispops_8c_source_l01086}{1086}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{consspaceobject_8c_source_l00100}{c\+\_\+type()}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{lispops_8c_ad702e2d8f85514459d4c7ffdb4d7f122}\label{lispops_8c_ad702e2d8f85514459d4c7ffdb4d7f122} 
\index{lispops.c@{lispops.c}!log\_binding@{log\_binding}}
\index{log\_binding@{log\_binding}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{log\_binding()}{log\_binding()}}
{\footnotesize\ttfamily void log\+\_\+binding (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{name,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{val }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{lispops_8c_source_l00245}{245}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{debug_8h_source_l00021}{DEBUG\+\_\+\+ALLOC}}, \mbox{\hyperlink{debug_8c_source_l00136}{debug\+\_\+dump\+\_\+object()}}, and \mbox{\hyperlink{debug_8c_source_l00041}{debug\+\_\+print()}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l00256}{eval\+\_\+lambda()}}.

\Hypertarget{lispops_8c_a24b5ba8eb0cb1705e44fdf3cd90d6f75}\label{lispops_8c_a24b5ba8eb0cb1705e44fdf3cd90d6f75} 
\index{lispops.c@{lispops.c}!throw\_exception@{throw\_exception}}
\index{throw\_exception@{throw\_exception}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{throw\_exception()}{throw\_exception()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} throw\+\_\+exception (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{message,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer }\end{DoxyParamCaption})}



Throw an exception. 

{\ttfamily throw\+\_\+exception} is a misnomer, because it doesn\textquotesingle{}t obey the calling signature of a lisp function; but it is nevertheless to be preferred to make\+\_\+exception. A real {\ttfamily throw\+\_\+exception}, which does, will be needed. object pointing to it. Then this should become a normal lisp function which expects a normally bound frame and environment, such that frame-\/\texorpdfstring{$>$}{>}arg\mbox{[}0\mbox{]} is the message, and frame-\/\texorpdfstring{$>$}{>}arg\mbox{[}1\mbox{]} is the cons-\/space pointer to the frame in which the exception occurred. 

Definition at line \mbox{\hyperlink{lispops_8c_source_l01208}{1208}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



References \mbox{\hyperlink{debug_8c_source_l00136}{debug\+\_\+dump\+\_\+object()}}, \mbox{\hyperlink{debug_8h_source_l00049}{DEBUG\+\_\+\+EVAL}}, \mbox{\hyperlink{debug_8c_source_l00041}{debug\+\_\+print()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00057}{EXCEPTIONTV}}, \mbox{\hyperlink{consspaceobject_8c_source_l00200}{make\+\_\+exception()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, and \mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{cons\+\_\+space\+\_\+object\+::tag}}.



Referenced by \mbox{\hyperlink{peano_8c_source_l00217}{add\+\_\+2()}}, \mbox{\hyperlink{ratio_8c_source_l00137}{add\+\_\+integer\+\_\+ratio()}}, \mbox{\hyperlink{ratio_8c_source_l00093}{add\+\_\+ratio\+\_\+ratio()}}, \mbox{\hyperlink{lispops_8c_source_l01410}{c\+\_\+append()}}, \mbox{\hyperlink{lispops_8c_source_l00340}{c\+\_\+apply()}}, \mbox{\hyperlink{intern_8c_source_l00327}{c\+\_\+assoc()}}, \mbox{\hyperlink{lispops_8c_source_l00735}{lisp\+\_\+car()}}, \mbox{\hyperlink{lispops_8c_source_l00779}{lisp\+\_\+cdr()}}, \mbox{\hyperlink{lispops_8c_source_l01161}{lisp\+\_\+cond()}}, \mbox{\hyperlink{peano_8c_source_l00655}{lisp\+\_\+divide()}}, \mbox{\hyperlink{lispops_8c_source_l00504}{lisp\+\_\+eval()}}, \mbox{\hyperlink{lispops_8c_source_l01244}{lisp\+\_\+exception()}}, \mbox{\hyperlink{lispops_8c_source_l01528}{lisp\+\_\+let()}}, \mbox{\hyperlink{lispops_8c_source_l00616}{lisp\+\_\+set()}}, \mbox{\hyperlink{lispops_8c_source_l00654}{lisp\+\_\+set\+\_\+shriek()}}, \mbox{\hyperlink{ratio_8c_source_l00312}{make\+\_\+ratio()}}, \mbox{\hyperlink{peano_8c_source_l00349}{multiply\+\_\+2()}}, \mbox{\hyperlink{ratio_8c_source_l00254}{multiply\+\_\+integer\+\_\+ratio()}}, \mbox{\hyperlink{ratio_8c_source_l00203}{multiply\+\_\+ratio\+\_\+ratio()}}, \mbox{\hyperlink{read_8c_source_l00155}{read\+\_\+continuation()}}, \mbox{\hyperlink{read_8c_source_l00288}{read\+\_\+number()}}, and \mbox{\hyperlink{peano_8c_source_l00544}{subtract\+\_\+2()}}.



\doxysubsection{Variable Documentation}
\Hypertarget{lispops_8c_ae98f233f522769b02aa734cc43a0fe7b}\label{lispops_8c_ae98f233f522769b02aa734cc43a0fe7b} 
\index{lispops.c@{lispops.c}!prompt\_name@{prompt\_name}}
\index{prompt\_name@{prompt\_name}!lispops.c@{lispops.c}}
\doxysubsubsection{\texorpdfstring{prompt\_name}{prompt\_name}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} prompt\+\_\+name}



the name of the symbol to which the prompt is bound; 

\doxylink{lispops_8h}{lispops.\+h}

Set in init to {\ttfamily \texorpdfstring{$\ast$}{*}prompt\texorpdfstring{$\ast$}{*}} 

Definition at line \mbox{\hyperlink{lispops_8c_source_l00046}{46}} of file \mbox{\hyperlink{lispops_8c_source}{lispops.\+c}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l01263}{lisp\+\_\+repl()}}, and \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

