\doxysection{lispops.\+c}
\hypertarget{lispops_8c_source}{}\label{lispops_8c_source}\index{workspace/post-\/scarcity/src/ops/lispops.c@{workspace/post-\/scarcity/src/ops/lispops.c}}
\mbox{\hyperlink{lispops_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00001}00001\ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00002}00002\ \textcolor{comment}{\ *\ lispops.c}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00003}00003\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00004}00004\ \textcolor{comment}{\ *\ List\ processing\ operations.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00005}00005\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00006}00006\ \textcolor{comment}{\ *\ The\ general\ idea\ here\ is\ that\ a\ list\ processing\ operation\ is\ a}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00007}00007\ \textcolor{comment}{\ *\ function\ which\ takes\ two\ arguments,\ both\ cons\_pointers:}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00008}00008\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00009}00009\ \textcolor{comment}{\ *\ 1.\ args,\ the\ argument\ list\ to\ this\ function;}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00010}00010\ \textcolor{comment}{\ *\ 2.\ env,\ the\ environment\ in\ which\ this\ function\ should\ be\ evaluated;}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00011}00011\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00012}00012\ \textcolor{comment}{\ *\ and\ returns\ a\ cons\_pointer,\ the\ result.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00013}00013\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00014}00014\ \textcolor{comment}{\ *\ They\ must\ all\ have\ the\ same\ signature\ so\ that\ I\ can\ call\ them\ as}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00015}00015\ \textcolor{comment}{\ *\ function\ pointers.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00016}00016\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00017}00017\ \textcolor{comment}{\ *\ (c)\ 2017\ Simon\ Brooke\ <simon@journeyman.cc>}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00018}00018\ \textcolor{comment}{\ *\ Licensed\ under\ GPL\ version\ 2.0,\ or,\ at\ your\ option,\ any\ later\ version.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00019}00019\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00020}00020\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00021}00021\ \textcolor{preprocessor}{\#include\ <ctype.h>}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00022}00022\ \textcolor{preprocessor}{\#include\ <stdbool.h>}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00023}00023\ \textcolor{preprocessor}{\#include\ <stdio.h>}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00024}00024\ \textcolor{preprocessor}{\#include\ <stdlib.h>}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00025}00025\ \textcolor{preprocessor}{\#include\ <string.h>}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00026}00026\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00027}00027\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{consspaceobject_8h}{memory/consspaceobject.h}}"{}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00028}00028\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{conspage_8h}{memory/conspage.h}}"{}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00029}00029\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{debug_8h}{debug.h}}"{}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00030}00030\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{dump_8h}{memory/dump.h}}"{}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00031}00031\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{equal_8h}{ops/equal.h}}"{}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00032}00032\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{integer_8h}{arith/integer.h}}"{}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00033}00033\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{intern_8h}{ops/intern.h}}"{}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00034}00034\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{io_8h}{io/io.h}}"{}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00035}00035\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{lispops_8h}{ops/lispops.h}}"{}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00036}00036\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{print_8h}{io/print.h}}"{}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00037}00037\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{read_8h}{io/read.h}}"{}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00038}00038\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{stack_8h}{memory/stack.h}}"{}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00039}00039\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{vectorspace_8h}{memory/vectorspace.h}}"{}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00040}00040\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00041}00041\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00042}00042\ \textcolor{comment}{\ *\ @brief\ the\ name\ of\ the\ symbol\ to\ which\ the\ prompt\ is\ bound;}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00043}00043\ \textcolor{comment}{\ *\ }}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00044}00044\ \textcolor{comment}{\ *\ Set\ in\ init\ to\ \`{}*prompt*\`{}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00045}00045\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00046}\mbox{\hyperlink{lispops_8c_ae98f233f522769b02aa734cc43a0fe7b}{00046}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{lispops_8c_ae98f233f522769b02aa734cc43a0fe7b}{prompt\_name}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00047}00047\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00048}00048\ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00049}00049\ \textcolor{comment}{\ *\ also\ to\ create\ in\ this\ section:}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00050}00050\ \textcolor{comment}{\ *\ struct\ cons\_pointer\ lisp\_let(\ struct\ cons\_pointer\ args,\ struct\ cons\_pointer\ env,}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00051}00051\ \textcolor{comment}{\ *\ struct\ stack\_frame*\ frame);}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00052}00052\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00053}00053\ \textcolor{comment}{\ *\ and\ others\ I\ haven't\ thought\ of\ yet.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00054}00054\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00055}00055\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00056}00056\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00057}00057\ \textcolor{comment}{\ *\ Useful\ building\ block;\ evaluate\ this\ single\ form\ in\ the\ context\ of\ this}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00058}00058\ \textcolor{comment}{\ *\ parent\ stack\ frame\ and\ this\ environment.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00059}00059\ \textcolor{comment}{\ *\ @param\ parent\ the\ parent\ stack\ frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00060}00060\ \textcolor{comment}{\ *\ @param\ form\ the\ form\ to\ be\ evaluated.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00061}00061\ \textcolor{comment}{\ *\ @param\ env\ the\ evaluation\ environment.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00062}00062\ \textcolor{comment}{\ *\ @return\ the\ result\ of\ evaluating\ the\ form.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00063}00063\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00064}\mbox{\hyperlink{lispops_8c_a44a5860734b40a3b74b9bcf681422017}{00064}}\ \textcolor{keyword}{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}}\ *parent,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00065}00065\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ parent\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00066}00066\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ form,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00067}00067\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00068}00068\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}eval\_form:\ "{}},\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00069}00069\ \ \ \ \ \mbox{\hyperlink{debug_8c_ada2d4646201b5827137d0bf053fcac59}{debug\_print\_object}}(\ form,\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00070}00070\ \ \ \ \ \mbox{\hyperlink{debug_8c_a9d5aa8671cb579261b2049c09aafa773}{debug\_println}}(\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00071}00071\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00072}00072\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ form;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00073}00073\ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ form\ ).tag.value\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00074}00074\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ things\ which\ evaluate\ to\ themselves\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00075}00075\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_aa66d7497baaa8e7a255c448e8b08e5ee}{EXCEPTIONTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00076}00076\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a4fc1fb4e748738d9cd5e6f7ead789f06}{FREETV}}:\ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ shouldn't\ happen,\ but\ anyway...}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00077}00077\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ FUNCTIONTV,\ LAMBDATV,\ NLAMBDATV,\ SPECIALTV\ ?}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00078}00078\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a4e0e4ea1576f98a0094f57bf918ded96}{INTEGERTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00079}00079\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a027cdb41b87676d9d2fb55dd058c0078}{KEYTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00080}00080\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a6bb4da4c7454879cc5103a445c0c98ff}{LOOPTV}}:\ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ don't\ think\ this\ should\ happen...}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00081}00081\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_aa460b371cdb05b1db5afb10c39af3c47}{NILTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00082}00082\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a63bde20c8b029f5ac3ffd93b36dfddc9}{RATIOTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00083}00083\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a964051b1bf348dbf06440df0a37bcde4}{REALTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00084}00084\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_adaf34dffde713283cf269225ee0343a8}{READTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00085}00085\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a3a4310cf1909a3b9c167a945ef71d3e1}{STRINGTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00086}00086\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a4628563add0c56fbe9785f015e159022}{TIMETV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00087}00087\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a8627f45d97a6bd63ad4063b3fe688f2e}{TRUETV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00088}00088\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ case\ VECTORPOINTTV:\ ?}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00089}00089\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_ad677447e4a46d52d256d0fe671e2d663}{WRITETV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00090}00090\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00091}00091\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00092}00092\ \ \ \ \ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00093}00093\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ next\_pointer\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00094}00094\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{stack_8c_ae97b7f0d449fa282f7a7c68c521dffd3}{make\_empty\_frame}}(\ parent\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00095}00095\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ next\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00096}00096\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00097}00097\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *next\ =\ \mbox{\hyperlink{stack_8c_a81653b4495f0fd4e7e49b9bd99e8e8db}{get\_stack\_frame}}(\ next\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00098}00098\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{stack_8c_a6f06ca39c92c6c67e589086d32d132a8}{set\_reg}}(\ next,\ 0,\ form\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00099}00099\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ next-\/>\mbox{\hyperlink{consspaceobject_8h_a1bd7a8575ca2650132d636d65dcda2f6}{args}}\ =\ 1;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00100}00100\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00101}00101\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{lispops_8c_a723a97602491ca6737289d7437f96d40}{lisp\_eval}}(\ next,\ next\_pointer,\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00102}00102\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00103}00103\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ !\mbox{\hyperlink{consspaceobject_8h_a08d81da027288f19974af4e6bbb1e99e}{exceptionp}}(\ result\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00104}00104\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ if\ we're\ returning\ an\ exception,\ we\ should\ NOT\ free\ the}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00105}00105\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ stack\ frame.\ Corollary\ is,\ when\ we\ free\ an\ exception,\ we}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00106}00106\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ should\ free\ all\ the\ frames\ it's\ holding\ on\ to.\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00107}00107\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ next\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00108}00108\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00109}00109\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00110}00110\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00111}00111\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00112}00112\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00113}00113\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}eval\_form\ returning:\ "{}},\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00114}00114\ \ \ \ \ \mbox{\hyperlink{debug_8c_ada2d4646201b5827137d0bf053fcac59}{debug\_print\_object}}(\ result,\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00115}00115\ \ \ \ \ \mbox{\hyperlink{debug_8c_a9d5aa8671cb579261b2049c09aafa773}{debug\_println}}(\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00116}00116\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00117}00117\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00118}00118\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00119}00119\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00120}00120\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00121}00121\ \textcolor{comment}{\ *\ Evaluate\ all\ the\ forms\ in\ this\ \`{}list`\ in\ the\ context\ of\ this\ stack\ \`{}frame`}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00122}00122\ \textcolor{comment}{\ *\ and\ this\ \`{}env`,\ and\ return\ a\ list\ of\ their\ values.\ If\ the\ arg\ passed\ as}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00123}00123\ \textcolor{comment}{\ *\ \`{}list`\ is\ not\ in\ fact\ a\ list,\ return\ NIL.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00124}00124\ \textcolor{comment}{\ *\ @param\ frame\ the\ stack\ frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00125}00125\ \textcolor{comment}{\ *\ @param\ list\ the\ list\ of\ forms\ to\ be\ evaluated.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00126}00126\ \textcolor{comment}{\ *\ @param\ env\ the\ evaluation\ environment.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00127}00127\ \textcolor{comment}{\ *\ @return\ a\ list\ of\ the\ the\ results\ of\ evaluating\ the\ forms.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00128}00128\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00129}\mbox{\hyperlink{lispops_8c_a75b0b6eb243d1137eb9daa78d03e51f6}{00129}}\ \textcolor{keyword}{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}}\ *frame,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00130}00130\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00131}00131\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ list,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00132}00132\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00133}00133\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00134}00134\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00135}00135\ \ \ \ \ \textcolor{keywordflow}{while}\ (\ \mbox{\hyperlink{consspaceobject_8h_a69012ee77381bb1d51aafa1002f64430}{consp}}(\ list\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00136}00136\ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00137}00137\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ \mbox{\hyperlink{lispops_8c_a44a5860734b40a3b74b9bcf681422017}{eval\_form}}(\ frame,\ frame\_pointer,\ \mbox{\hyperlink{consspaceobject_8h_ac683bad260c334cc2e5fad1f7d0c7b52}{c\_car}}(\ list\ ),\ env\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00138}00138\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00139}00139\ \ \ \ \ \ \ \ \ list\ =\ \mbox{\hyperlink{consspaceobject_8h_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}(\ list\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00140}00140\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00141}00141\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00142}00142\ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{lispops_8c_a3222877b61c27e3b6f0d18d485fbe143}{c\_reverse}}(\ result\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00143}00143\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00144}00144\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00145}00145\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00146}00146\ \textcolor{comment}{\ *\ OK,\ the\ idea\ here\ (and\ I\ know\ this\ is\ less\ than\ perfect)\ is\ that\ the\ basic\ \`{}try`}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00147}00147\ \textcolor{comment}{\ *\ special\ form\ in\ PSSE\ takes\ two\ arguments,\ the\ first,\ \`{}body`,\ being\ a\ list\ of\ forms,}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00148}00148\ \textcolor{comment}{\ *\ and\ the\ second,\ \`{}catch`,\ being\ a\ catch\ handler\ (which\ is\ also\ a\ list\ of\ forms).}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00149}00149\ \textcolor{comment}{\ *\ Forms\ from\ \`{}body`\ are\ evaluated\ in\ turn\ until\ one\ returns\ an\ exception\ object,}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00150}00150\ \textcolor{comment}{\ *\ or\ until\ the\ list\ is\ exhausted.\ If\ the\ list\ was\ exhausted,\ then\ the\ value\ of}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00151}00151\ \textcolor{comment}{\ *\ evaluating\ the\ last\ form\ in\ \`{}body`\ is\ returned.\ If\ an\ exception\ was\ encountered,}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00152}00152\ \textcolor{comment}{\ *\ then\ each\ of\ the\ forms\ in\ \`{}catch`\ is\ evaluated\ and\ the\ value\ of\ the\ last\ of}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00153}00153\ \textcolor{comment}{\ *\ those\ is\ returned.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00154}00154\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00155}00155\ \textcolor{comment}{\ *\ This\ is\ experimental.\ It\ almost\ certainly\ WILL\ change.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00156}00156\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00157}\mbox{\hyperlink{lispops_8c_a5cfeb36141e705d2f5a885c57af4674e}{00157}}\ \textcolor{keyword}{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}}\ *frame,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00158}00158\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00159}00159\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00160}00160\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00161}00161\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_a643f4b78bb2f84baae37a6f73085470b}{c\_progn}}(\ frame,\ frame\_pointer,\ frame-\/>arg[0],\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00162}00162\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00163}00163\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a08d81da027288f19974af4e6bbb1e99e}{exceptionp}}(\ result\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00164}00164\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ TODO:\ need\ to\ put\ the\ exception\ into\ the\ environment!}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00165}00165\ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{lispops_8c_a643f4b78bb2f84baae37a6f73085470b}{c\_progn}}(\ frame,\ frame\_pointer,\ frame-\/>arg[1],}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00166}00166\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00167}00167\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ \mbox{\hyperlink{consspaceobject_8h_ac18813a5587f81344b2a35977657b09b}{c\_string\_to\_lisp\_symbol}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00168}00168\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ L\textcolor{stringliteral}{"{}*exception*"{}}\ ),\ result\ ),\ env\ )\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00169}00169\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00170}00170\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00171}00171\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00172}00172\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00173}00173\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00174}00174\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00175}00175\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00176}00176\ \textcolor{comment}{\ *\ Return\ the\ object\ list\ (root\ namespace).}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00177}00177\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00178}00178\ \textcolor{comment}{\ *\ *\ (oblist)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00179}00179\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00180}00180\ \textcolor{comment}{\ *\ @param\ frame\ the\ stack\ frame\ in\ which\ the\ expression\ is\ to\ be\ interpreted;}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00181}00181\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00182}00182\ \textcolor{comment}{\ *\ @param\ env\ my\ environment\ (ignored).}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00183}00183\ \textcolor{comment}{\ *\ @return\ the\ root\ namespace.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00184}00184\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00185}00185\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00186}\mbox{\hyperlink{lispops_8c_ada3567423dc08d9a59a5c5fff911aa2a}{00186}}\ \mbox{\hyperlink{lispops_8c_ada3567423dc08d9a59a5c5fff911aa2a}{lisp\_oblist}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00187}00187\ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00188}00188\ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{intern_8c_aca78d8df225fa73eef263164d8427430}{oblist}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00189}00189\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00190}00190\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00191}00191\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00192}00192\ \textcolor{comment}{\ *\ Used\ to\ construct\ the\ body\ for\ \`{}lambda`\ and\ \`{}nlambda`\ expressions.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00193}00193\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00194}\mbox{\hyperlink{lispops_8c_a40b682c3cb66be9f583857a5f488a1a3}{00194}}\ \textcolor{keyword}{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}}\ *frame\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00195}00195\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ body\ =\ frame-\/>more;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00196}00196\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00197}00197\ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keywordtype}{int}\ i\ =\ \mbox{\hyperlink{consspaceobject_8h_a214b772c864ac6458405e6a37fb9bf6e}{args\_in\_frame}}\ -\/\ 1;\ i\ >\ 0;\ i-\/-\/\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00198}00198\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ !\mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ body\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00199}00199\ \ \ \ \ \ \ \ \ \ \ \ \ body\ =\ \mbox{\hyperlink{consspaceobject_8c_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ frame-\/>arg[i],\ body\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00200}00200\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (\ !\mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ frame-\/>arg[i]\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00201}00201\ \ \ \ \ \ \ \ \ \ \ \ \ body\ =\ \mbox{\hyperlink{consspaceobject_8c_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ frame-\/>arg[i],\ body\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00202}00202\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00203}00203\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00204}00204\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00205}00205\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}compose\_body\ returning\ "{}},\ \mbox{\hyperlink{debug_8h_a94213f6fb2a1a53eebc23649303ba404}{DEBUG\_LAMBDA}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00206}00206\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa0ffa929ddbce890ce4f81264a211233}{debug\_dump\_object}}(\ body,\ \mbox{\hyperlink{debug_8h_a94213f6fb2a1a53eebc23649303ba404}{DEBUG\_LAMBDA}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00207}00207\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00208}00208\ \ \ \ \ \textcolor{keywordflow}{return}\ body;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00209}00209\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00210}00210\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00211}00211\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00212}00212\ \textcolor{comment}{\ *\ Construct\ an\ interpretable\ function.\ *NOTE*\ that\ if\ \`{}args`\ is\ a\ single\ symbol}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00213}00213\ \textcolor{comment}{\ *\ rather\ than\ a\ list,\ a\ varargs\ function\ will\ be\ created.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00214}00214\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00215}00215\ \textcolor{comment}{\ *\ (lambda\ args\ body)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00216}00216\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00217}00217\ \textcolor{comment}{\ *\ @param\ frame\ the\ stack\ frame\ in\ which\ the\ expression\ is\ to\ be\ interpreted;}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00218}00218\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00219}00219\ \textcolor{comment}{\ *\ @param\ env\ the\ environment\ in\ which\ it\ is\ to\ be\ intepreted.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00220}00220\ \textcolor{comment}{\ *\ @return\ an\ interpretable\ function\ with\ these\ \`{}args`\ and\ this\ \`{}body`.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00221}00221\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00222}00222\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00223}\mbox{\hyperlink{lispops_8c_ad01fa34e71190873e229778577b350d0}{00223}}\ \mbox{\hyperlink{lispops_8c_ad01fa34e71190873e229778577b350d0}{lisp\_lambda}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00224}00224\ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00225}00225\ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{consspaceobject_8h_a315945df5ea6902613f4a4a6803c72ac}{make\_lambda}}(\ frame-\/>arg[0],\ \mbox{\hyperlink{lispops_8c_a40b682c3cb66be9f583857a5f488a1a3}{compose\_body}}(\ frame\ )\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00226}00226\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00227}00227\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00228}00228\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00229}00229\ \textcolor{comment}{\ *\ Construct\ an\ interpretable\ special\ form.\ *NOTE*\ that\ if\ \`{}args`\ is\ a\ single\ symbol}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00230}00230\ \textcolor{comment}{\ *\ rather\ than\ a\ list,\ a\ varargs\ special\ form\ will\ be\ created.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00231}00231\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00232}00232\ \textcolor{comment}{\ *\ (nlambda\ args\ body)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00233}00233\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00234}00234\ \textcolor{comment}{\ *\ @param\ frame\ the\ stack\ frame\ in\ which\ the\ expression\ is\ to\ be\ interpreted;}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00235}00235\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00236}00236\ \textcolor{comment}{\ *\ @param\ env\ the\ environment\ in\ which\ it\ is\ to\ be\ intepreted.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00237}00237\ \textcolor{comment}{\ *\ @return\ an\ interpretable\ special\ form\ with\ these\ \`{}args`\ and\ this\ \`{}body`.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00238}00238\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00239}00239\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00240}\mbox{\hyperlink{lispops_8c_a022029c6b7753a6f99fcba31ca51751f}{00240}}\ \mbox{\hyperlink{lispops_8c_a022029c6b7753a6f99fcba31ca51751f}{lisp\_nlambda}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00241}00241\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00242}00242\ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{consspaceobject_8h_ad8207dff3baf23366b5110ca4ae46bf7}{make\_nlambda}}(\ frame-\/>arg[0],\ \mbox{\hyperlink{lispops_8c_a40b682c3cb66be9f583857a5f488a1a3}{compose\_body}}(\ frame\ )\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00243}00243\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00244}00244\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00245}\mbox{\hyperlink{lispops_8c_ad702e2d8f85514459d4c7ffdb4d7f122}{00245}}\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{lispops_8c_ad702e2d8f85514459d4c7ffdb4d7f122}{log\_binding}}(\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ name,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ val\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00246}00246\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}\(\backslash\)n\(\backslash\)tBinding\ "{}},\ \mbox{\hyperlink{debug_8h_ab99ea81093661d24ffaaa4e85cb2387a}{DEBUG\_ALLOC}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00247}00247\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa0ffa929ddbce890ce4f81264a211233}{debug\_dump\_object}}(\ name,\ \mbox{\hyperlink{debug_8h_ab99ea81093661d24ffaaa4e85cb2387a}{DEBUG\_ALLOC}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00248}00248\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}\ to\ "{}},\ \mbox{\hyperlink{debug_8h_ab99ea81093661d24ffaaa4e85cb2387a}{DEBUG\_ALLOC}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00249}00249\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa0ffa929ddbce890ce4f81264a211233}{debug\_dump\_object}}(\ val,\ \mbox{\hyperlink{debug_8h_ab99ea81093661d24ffaaa4e85cb2387a}{DEBUG\_ALLOC}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00250}00250\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00251}00251\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00252}00252\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00253}00253\ \textcolor{comment}{\ *\ Evaluate\ a\ lambda\ or\ nlambda\ expression.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00254}00254\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00255}00255\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00256}\mbox{\hyperlink{lispops_8c_af998b509301da77fe751a1585aad91e1}{00256}}\ \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}}\ *frame,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00257}00257\ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,\ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00258}00258\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00259}00259\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}eval\_lambda\ called\(\backslash\)n"{}},\ \mbox{\hyperlink{debug_8h_a94213f6fb2a1a53eebc23649303ba404}{DEBUG\_LAMBDA}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00260}00260\ \ \ \ \ \mbox{\hyperlink{debug_8c_a9d5aa8671cb579261b2049c09aafa773}{debug\_println}}(\ \mbox{\hyperlink{debug_8h_a94213f6fb2a1a53eebc23649303ba404}{DEBUG\_LAMBDA}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00261}00261\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00262}00262\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ new\_env\ =\ env;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00263}00263\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ names\ =\ cell.payload.lambda.args;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00264}00264\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ body\ =\ cell.payload.lambda.body;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00265}00265\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00266}00266\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a69012ee77381bb1d51aafa1002f64430}{consp}}(\ names\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00267}00267\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ if\ \`{}names`\ is\ a\ list,\ bind\ successive\ items\ from\ that\ list}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00268}00268\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ to\ values\ of\ arguments\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00269}00269\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ frame-\/>args\ \&\&\ \mbox{\hyperlink{consspaceobject_8h_a69012ee77381bb1d51aafa1002f64430}{consp}}(\ names\ );\ i++\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00270}00270\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ name\ =\ \mbox{\hyperlink{consspaceobject_8h_ac683bad260c334cc2e5fad1f7d0c7b52}{c\_car}}(\ names\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00271}00271\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ val\ =\ frame-\/>arg[i];}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00272}00272\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00273}00273\ \ \ \ \ \ \ \ \ \ \ \ \ new\_env\ =\ \mbox{\hyperlink{intern_8c_af8e370c233928d41c268874a6aa5d9e2}{set}}(\ name,\ val,\ new\_env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00274}00274\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_ad702e2d8f85514459d4c7ffdb4d7f122}{log\_binding}}(\ name,\ val\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00275}00275\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00276}00276\ \ \ \ \ \ \ \ \ \ \ \ \ names\ =\ \mbox{\hyperlink{consspaceobject_8h_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}(\ names\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00277}00277\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00278}00278\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ new\_env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00279}00279\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00280}00280\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ \(\backslash\)todo\ if\ there's\ more\ than\ \`{}args\_in\_frame`\ arguments,\ bind\ those\ too.\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00281}00281\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a868a73028c615e36d3ec378406b725b8}{symbolp}}(\ names\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00282}00282\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ if\ \`{}names`\ is\ a\ symbol,\ rather\ than\ a\ list\ of\ symbols,}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00283}00283\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ then\ bind\ a\ list\ of\ the\ values\ of\ args\ to\ that\ symbol.\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00284}00284\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ \(\backslash\)todo\ eval\ all\ the\ things\ in\ frame-\/>more\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00285}00285\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ vals\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00286}00286\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_a75b0b6eb243d1137eb9daa78d03e51f6}{eval\_forms}}(\ frame,\ frame\_pointer,\ frame-\/>more,\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00287}00287\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00288}00288\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keywordtype}{int}\ i\ =\ \mbox{\hyperlink{consspaceobject_8h_a214b772c864ac6458405e6a37fb9bf6e}{args\_in\_frame}}\ -\/\ 1;\ i\ >=\ 0;\ i-\/-\/\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00289}00289\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ val\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00290}00290\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_a44a5860734b40a3b74b9bcf681422017}{eval\_form}}(\ frame,\ frame\_pointer,\ frame-\/>arg[i],\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00291}00291\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00292}00292\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ val\ )\ \&\&\ \mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ vals\ )\ )\ \{\ \ \textcolor{comment}{/*\ nothing\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00293}00293\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00294}00294\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ vals\ =\ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ val,\ vals\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00295}00295\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00296}00296\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00297}00297\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00298}00298\ \ \ \ \ \ \ \ \ new\_env\ =\ \mbox{\hyperlink{intern_8c_af8e370c233928d41c268874a6aa5d9e2}{set}}(\ names,\ vals,\ new\_env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00299}00299\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ new\_env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00300}00300\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00301}00301\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00302}00302\ \ \ \ \ \textcolor{keywordflow}{while}\ (\ !\mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ body\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00303}00303\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ sexpr\ =\ \mbox{\hyperlink{consspaceobject_8h_ac683bad260c334cc2e5fad1f7d0c7b52}{c\_car}}(\ body\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00304}00304\ \ \ \ \ \ \ \ \ body\ =\ \mbox{\hyperlink{consspaceobject_8h_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}(\ body\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00305}00305\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00306}00306\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}In\ lambda:\ evaluating\ "{}},\ \mbox{\hyperlink{debug_8h_a94213f6fb2a1a53eebc23649303ba404}{DEBUG\_LAMBDA}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00307}00307\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_ada2d4646201b5827137d0bf053fcac59}{debug\_print\_object}}(\ sexpr,\ \mbox{\hyperlink{debug_8h_a94213f6fb2a1a53eebc23649303ba404}{DEBUG\_LAMBDA}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00308}00308\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_a9d5aa8671cb579261b2049c09aafa773}{debug\_println}}(\ \mbox{\hyperlink{debug_8h_a94213f6fb2a1a53eebc23649303ba404}{DEBUG\_LAMBDA}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00309}00309\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00310}00310\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ if\ a\ result\ is\ not\ the\ terminal\ result\ in\ the\ lambda,\ it's\ a}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00311}00311\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ side\ effect,\ and\ needs\ to\ be\ GCed\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00312}00312\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ !\mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ result\ )\ )}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00313}00313\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ result\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00314}00314\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00315}00315\ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{lispops_8c_a44a5860734b40a3b74b9bcf681422017}{eval\_form}}(\ frame,\ frame\_pointer,\ sexpr,\ new\_env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00316}00316\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00317}00317\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a08d81da027288f19974af4e6bbb1e99e}{exceptionp}}(\ result\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00318}00318\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00319}00319\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00320}00320\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00321}00321\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00322}00322\ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ new\_env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00323}00323\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00324}00324\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}eval\_lambda\ returning:\ \(\backslash\)n"{}},\ \mbox{\hyperlink{debug_8h_a94213f6fb2a1a53eebc23649303ba404}{DEBUG\_LAMBDA}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00325}00325\ \ \ \ \ \mbox{\hyperlink{debug_8c_ada2d4646201b5827137d0bf053fcac59}{debug\_print\_object}}(\ result,\ \mbox{\hyperlink{debug_8h_a94213f6fb2a1a53eebc23649303ba404}{DEBUG\_LAMBDA}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00326}00326\ \ \ \ \ \mbox{\hyperlink{debug_8c_a9d5aa8671cb579261b2049c09aafa773}{debug\_println}}(\ \mbox{\hyperlink{debug_8h_a94213f6fb2a1a53eebc23649303ba404}{DEBUG\_LAMBDA}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00327}00327\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00328}00328\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00329}00329\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00330}00330\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00331}00331\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00332}00332\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00333}00333\ \textcolor{comment}{\ *\ Internal\ guts\ of\ apply.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00334}00334\ \textcolor{comment}{\ *\ @param\ frame\ the\ stack\ frame,\ expected\ to\ have\ only\ one\ argument,\ a\ list}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00335}00335\ \textcolor{comment}{\ *\ comprising\ something\ that\ evaluates\ to\ a\ function\ and\ its\ arguments.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00336}00336\ \textcolor{comment}{\ *\ @param\ env\ The\ evaluation\ environment.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00337}00337\ \textcolor{comment}{\ *\ @return\ the\ result\ of\ evaluating\ the\ function\ with\ its\ arguments.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00338}00338\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00339}00339\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00340}\mbox{\hyperlink{lispops_8c_a06b3929acdfb8079898f493ec4db828b}{00340}}\ \mbox{\hyperlink{lispops_8c_a06b3929acdfb8079898f493ec4db828b}{c\_apply}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00341}00341\ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00342}00342\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}Entering\ c\_apply\(\backslash\)n"{}},\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00343}00343\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00344}00344\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00345}00345\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ fn\_pointer\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00346}00346\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_a44a5860734b40a3b74b9bcf681422017}{eval\_form}}(\ frame,\ frame\_pointer,\ \mbox{\hyperlink{consspaceobject_8h_ac683bad260c334cc2e5fad1f7d0c7b52}{c\_car}}(\ frame-\/>arg[0]\ ),\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00347}00347\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00348}00348\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a08d81da027288f19974af4e6bbb1e99e}{exceptionp}}(\ fn\_pointer\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00349}00349\ \ \ \ \ \ \ \ \ result\ =\ fn\_pointer;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00350}00350\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00351}00351\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ fn\_cell\ =\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ fn\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00352}00352\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ args\ =\ \mbox{\hyperlink{consspaceobject_8h_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}(\ frame-\/>arg[0]\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00353}00353\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00354}00354\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ fn\_cell.\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00355}00355\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_aa66d7497baaa8e7a255c448e8b08e5ee}{EXCEPTIONTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00356}00356\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ just\ pass\ exceptions\ straight\ back\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00357}00357\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ fn\_pointer;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00358}00358\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00359}00359\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00360}00360\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a291e48d2612ab2b3b86fa677d13824b3}{FUNCTIONTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00361}00361\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00362}00362\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ exep\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00363}00363\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ next\_pointer\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00364}00364\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{stack_8c_af448982b321038e7c24a5873b74533a7}{make\_stack\_frame}}(\ frame\_pointer,\ args,\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00365}00365\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ next\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00366}00366\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a08d81da027288f19974af4e6bbb1e99e}{exceptionp}}(\ next\_pointer\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00367}00367\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ next\_pointer;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00368}00368\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00369}00369\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *next\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00370}00370\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{stack_8c_a81653b4495f0fd4e7e49b9bd99e8e8db}{get\_stack\_frame}}(\ next\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00371}00371\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00372}00372\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00373}00373\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ *fn\_cell.\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.function.executable\ )\ (\ next,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00374}00374\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ next\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00375}00375\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00376}00376\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ next\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00377}00377\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00378}00378\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00379}00379\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00380}00380\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00381}00381\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a027cdb41b87676d9d2fb55dd058c0078}{KEYTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00382}00382\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{intern_8c_ac42ecb66595443f6fc62333afb326873}{c\_assoc}}(\ fn\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00383}00383\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_a44a5860734b40a3b74b9bcf681422017}{eval\_form}}(\ frame,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00384}00384\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00385}00385\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_ac683bad260c334cc2e5fad1f7d0c7b52}{c\_car}}(\ \mbox{\hyperlink{consspaceobject_8h_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}(\ frame-\/>arg[0]\ )\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00386}00386\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ env\ )\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00387}00387\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00388}00388\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00389}00389\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_ad4ddcddc7db74650f23a33d0e970db30}{LAMBDATV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00390}00390\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00391}00391\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ exep\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00392}00392\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ next\_pointer\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00393}00393\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{stack_8c_af448982b321038e7c24a5873b74533a7}{make\_stack\_frame}}(\ frame\_pointer,\ args,\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00394}00394\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ next\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00395}00395\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a08d81da027288f19974af4e6bbb1e99e}{exceptionp}}(\ next\_pointer\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00396}00396\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ next\_pointer;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00397}00397\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00398}00398\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *next\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00399}00399\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{stack_8c_a81653b4495f0fd4e7e49b9bd99e8e8db}{get\_stack\_frame}}(\ next\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00400}00400\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00401}00401\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_af998b509301da77fe751a1585aad91e1}{eval\_lambda}}(\ fn\_cell,\ next,\ next\_pointer,\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00402}00402\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ !\mbox{\hyperlink{consspaceobject_8h_a08d81da027288f19974af4e6bbb1e99e}{exceptionp}}(\ result\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00403}00403\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ next\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00404}00404\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00405}00405\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00406}00406\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00407}00407\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00408}00408\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00409}00409\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a0e422043a4797ec1a81f7460486e09da}{VECTORPOINTTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00410}00410\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ \mbox{\hyperlink{vectorspace_8h_a6961330e553c390cec21939135c8c124}{pointer\_to\_vso}}(\ fn\_pointer\ )-\/>header.tag.value\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00411}00411\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{vectorspace_8h_a845017e723bca337605494a0b9be6d5c}{HASHTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00412}00412\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ \(\backslash\)todo:\ if\ arg[0]\ is\ a\ CONS,\ treat\ it\ as\ a\ path\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00413}00413\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{intern_8c_ac42ecb66595443f6fc62333afb326873}{c\_assoc}}(\ \mbox{\hyperlink{lispops_8c_a44a5860734b40a3b74b9bcf681422017}{eval\_form}}(\ frame,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00414}00414\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00415}00415\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_ac683bad260c334cc2e5fad1f7d0c7b52}{c\_car}}(\ \mbox{\hyperlink{consspaceobject_8h_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00416}00416\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ frame-\/>arg}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00417}00417\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [0]\ )\ ),\ env\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00418}00418\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ fn\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00419}00419\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00420}00420\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00421}00421\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00422}00422\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00423}00423\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a7f953a7cdd4f2ce5eab1738da32536b3}{NLAMBDATV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00424}00424\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00425}00425\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ next\_pointer\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00426}00426\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{stack_8c_a494ca1435350714304b05f67a9fe8ba9}{make\_special\_frame}}(\ frame\_pointer,\ args,\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00427}00427\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ next\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00428}00428\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a08d81da027288f19974af4e6bbb1e99e}{exceptionp}}(\ next\_pointer\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00429}00429\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ next\_pointer;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00430}00430\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00431}00431\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *next\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00432}00432\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{stack_8c_a81653b4495f0fd4e7e49b9bd99e8e8db}{get\_stack\_frame}}(\ next\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00433}00433\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00434}00434\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_af998b509301da77fe751a1585aad91e1}{eval\_lambda}}(\ fn\_cell,\ next,\ next\_pointer,\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00435}00435\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ next\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00436}00436\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00437}00437\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00438}00438\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00439}00439\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00440}00440\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a0569cc92977f62ba26b81c00e661b973}{SPECIALTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00441}00441\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00442}00442\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ next\_pointer\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00443}00443\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{stack_8c_a494ca1435350714304b05f67a9fe8ba9}{make\_special\_frame}}(\ frame\_pointer,\ args,\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00444}00444\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ next\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00445}00445\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a08d81da027288f19974af4e6bbb1e99e}{exceptionp}}(\ next\_pointer\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00446}00446\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ next\_pointer;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00447}00447\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00448}00448\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00449}00449\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ *fn\_cell.\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.special.}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00450}00450\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ executable\ )\ (\ \mbox{\hyperlink{stack_8c_a81653b4495f0fd4e7e49b9bd99e8e8db}{get\_stack\_frame}}(\ next\_pointer\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00451}00451\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ next\_pointer,\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00452}00452\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}Special\ form\ returning:\ "{}},\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00453}00453\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_ada2d4646201b5827137d0bf053fcac59}{debug\_print\_object}}(\ result,\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00454}00454\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_a9d5aa8671cb579261b2049c09aafa773}{debug\_println}}(\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00455}00455\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ next\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00456}00456\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00457}00457\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00458}00458\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00459}00459\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00460}00460\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00461}00461\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00462}00462\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ bs\ =\ \textcolor{keyword}{sizeof}(\ wchar\_t\ )\ *\ 1024;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00463}00463\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{wchar\_t}\ *buffer\ =\ malloc(\ bs\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00464}00464\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ memset(\ buffer,\ \textcolor{charliteral}{'\(\backslash\)0'},\ bs\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00465}00465\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ swprintf(\ buffer,\ bs,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00466}00466\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\textcolor{stringliteral}{"{}Unexpected\ cell\ with\ tag\ \%d\ (\%4.4s)\ in\ function\ position"{}},}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00467}00467\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ fn\_cell.\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value,\ \&fn\_cell.\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.bytes[0]\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00468}00468\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ message\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00469}00469\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_a9e4202c8555763ca9a119f0d63a058cd}{c\_string\_to\_lisp\_string}}(\ buffer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00470}00470\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ free(\ buffer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00471}00471\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{lispops_8c_a24b5ba8eb0cb1705e44fdf3cd90d6f75}{throw\_exception}}(\ message,\ frame\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00472}00472\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00473}00473\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00474}00474\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00475}00475\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00476}00476\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}c\_apply:\ returning:\ "{}},\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00477}00477\ \ \ \ \ \mbox{\hyperlink{debug_8c_ada2d4646201b5827137d0bf053fcac59}{debug\_print\_object}}(\ result,\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00478}00478\ \ \ \ \ \mbox{\hyperlink{debug_8c_a9d5aa8671cb579261b2049c09aafa773}{debug\_println}}(\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00479}00479\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00480}00480\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00481}00481\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00482}00482\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00483}00483\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00484}00484\ \textcolor{comment}{\ *\ Function;\ evaluate\ the\ expression\ which\ is\ the\ first\ argument\ in\ the\ frame;}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00485}00485\ \textcolor{comment}{\ *\ further\ arguments\ are\ ignored.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00486}00486\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00487}00487\ \textcolor{comment}{\ *\ *\ (eval\ expression)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00488}00488\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00489}00489\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00490}00490\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00491}00491\ \textcolor{comment}{\ *\ @param\ env\ my\ environment.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00492}00492\ \textcolor{comment}{\ *\ @return}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00493}00493\ \textcolor{comment}{\ *\ *\ If\ \`{}expression`\ is\ a\ number,\ string,\ \`{}nil`,\ or\ \`{}t`,\ returns\ \`{}expression`.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00494}00494\ \textcolor{comment}{\ *\ *\ If\ \`{}expression`\ is\ a\ symbol,\ returns\ the\ value\ that\ expression\ is\ bound}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00495}00495\ \textcolor{comment}{\ *\ to\ in\ the\ evaluation\ environment\ (`env`).}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00496}00496\ \textcolor{comment}{\ *\ *\ If\ \`{}expression`\ is\ a\ list,\ expects\ the\ car\ to\ be\ something\ that\ evaluates\ to\ a}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00497}00497\ \textcolor{comment}{\ *\ function\ or\ special\ form:}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00498}00498\ \textcolor{comment}{\ *\ \ \ *\ If\ a\ function,\ evaluates\ all\ the\ other\ top\ level\ elements\ in\ \`{}expression`\ and}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00499}00499\ \textcolor{comment}{\ *\ passes\ them\ in\ a\ stack\ frame\ as\ arguments\ to\ the\ function;}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00500}00500\ \textcolor{comment}{\ *\ \ \ *\ If\ a\ special\ form,\ passes\ the\ cdr\ of\ expression\ to\ the\ special\ form\ as\ argument.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00501}00501\ \textcolor{comment}{\ *\ @exception\ if\ \`{}expression`\ is\ a\ symbol\ which\ is\ not\ bound\ in\ \`{}env`.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00502}00502\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00503}00503\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00504}\mbox{\hyperlink{lispops_8c_a723a97602491ca6737289d7437f96d40}{00504}}\ \mbox{\hyperlink{lispops_8c_a723a97602491ca6737289d7437f96d40}{lisp\_eval}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00505}00505\ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00506}00506\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}Eval:\ "{}},\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00507}00507\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa0ffa929ddbce890ce4f81264a211233}{debug\_dump\_object}}(\ frame\_pointer,\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00508}00508\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00509}00509\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ frame-\/>arg[0];}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00510}00510\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ cell\ =\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ frame-\/>arg[0]\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00511}00511\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00512}00512\ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ cell.\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00513}00513\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a6a5f5b042aa23509409e0fd00a91ac2e}{CONSTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00514}00514\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{lispops_8c_a06b3929acdfb8079898f493ec4db828b}{c\_apply}}(\ frame,\ frame\_pointer,\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00515}00515\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00516}00516\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00517}00517\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a1cef10aef0e023839dbcfe6d5c305393}{SYMBOLTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00518}00518\ \ \ \ \ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00519}00519\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ canonical\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00520}00520\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{intern_8c_a8b39bfc8df32e0a71870654ab963ba09}{internedp}}(\ frame-\/>arg[0],\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00521}00521\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ canonical\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00522}00522\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ message\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00523}00523\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ \mbox{\hyperlink{consspaceobject_8h_a9e4202c8555763ca9a119f0d63a058cd}{c\_string\_to\_lisp\_string}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00524}00524\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ L\textcolor{stringliteral}{"{}Attempt\ to\ take\ value\ of\ unbound\ symbol."{}}\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00525}00525\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ frame-\/>arg[0]\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00526}00526\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{lispops_8c_a24b5ba8eb0cb1705e44fdf3cd90d6f75}{throw\_exception}}(\ message,\ frame\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00527}00527\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00528}00528\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{intern_8c_ac42ecb66595443f6fc62333afb326873}{c\_assoc}}(\ canonical,\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00529}00529\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ result\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00530}00530\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00531}00531\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00532}00532\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00533}00533\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00534}00534\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ *\ \(\backslash\)todo}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00535}00535\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ *\ the\ Clojure\ practice\ of\ having\ a\ map\ serve\ in\ the\ function\ place\ of}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00536}00536\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ *\ an\ s-\/expression\ is\ a\ good\ one\ and\ I\ should\ adopt\ it;\ }}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00537}00537\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ *\ H'mmm...\ this\ is\ working,\ but\ it\ isn't\ here.\ Where\ is\ it?}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00538}00538\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00539}00539\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00540}00540\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ frame-\/>arg[0];}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00541}00541\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00542}00542\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00543}00543\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00544}00544\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}Eval\ returning\ "{}},\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00545}00545\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa0ffa929ddbce890ce4f81264a211233}{debug\_dump\_object}}(\ result,\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00546}00546\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00547}00547\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00548}00548\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00549}00549\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00550}00550\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00551}00551\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00552}00552\ \textcolor{comment}{\ *\ Function;\ apply\ the\ function\ which\ is\ the\ result\ of\ evaluating\ the}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00553}00553\ \textcolor{comment}{\ *\ first\ argument\ to\ the\ list\ of\ values\ which\ is\ the\ result\ of\ evaluating}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00554}00554\ \textcolor{comment}{\ *\ the\ second\ argument}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00555}00555\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00556}00556\ \textcolor{comment}{\ *\ *\ (apply\ fn\ args)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00557}00557\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00558}00558\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00559}00559\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00560}00560\ \textcolor{comment}{\ *\ @param\ env\ my\ environment.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00561}00561\ \textcolor{comment}{\ *\ @return\ the\ result\ of\ applying\ \`{}fn`\ to\ \`{}args`.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00562}00562\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00563}00563\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00564}\mbox{\hyperlink{lispops_8c_a5f46a92d58e16619fe9f3df406948f7f}{00564}}\ \mbox{\hyperlink{lispops_8c_a5f46a92d58e16619fe9f3df406948f7f}{lisp\_apply}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00565}00565\ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00566}00566\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}Apply:\ "{}},\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00567}00567\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa0ffa929ddbce890ce4f81264a211233}{debug\_dump\_object}}(\ frame\_pointer,\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00568}00568\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00569}00569\ \ \ \ \ \mbox{\hyperlink{stack_8c_a6f06ca39c92c6c67e589086d32d132a8}{set\_reg}}(\ frame,\ 0,\ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ frame-\/>arg[0],\ frame-\/>arg[1]\ )\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00570}00570\ \ \ \ \ \mbox{\hyperlink{stack_8c_a6f06ca39c92c6c67e589086d32d132a8}{set\_reg}}(\ frame,\ 1,\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00571}00571\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00572}00572\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{lispops_8c_a06b3929acdfb8079898f493ec4db828b}{c\_apply}}(\ frame,\ frame\_pointer,\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00573}00573\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00574}00574\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}Apply\ returning\ "{}},\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00575}00575\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa0ffa929ddbce890ce4f81264a211233}{debug\_dump\_object}}(\ result,\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00576}00576\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00577}00577\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00578}00578\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00579}00579\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00580}00580\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00581}00581\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00582}00582\ \textcolor{comment}{\ *\ Special\ form;}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00583}00583\ \textcolor{comment}{\ *\ returns\ its\ argument\ (strictly\ first\ argument\ -\/\ only\ one\ is\ expected\ but}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00584}00584\ \textcolor{comment}{\ *\ this\ isn't\ at\ this\ stage\ checked)\ unevaluated.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00585}00585\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00586}00586\ \textcolor{comment}{\ *\ *\ (quote\ a)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00587}00587\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00588}00588\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00589}00589\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00590}00590\ \textcolor{comment}{\ *\ @param\ env\ my\ environment\ (ignored).}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00591}00591\ \textcolor{comment}{\ *\ @return\ \`{}a`,\ unevaluated,}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00592}00592\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00593}00593\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00594}\mbox{\hyperlink{lispops_8c_ac8551f91422af8672b2b35b097e073d0}{00594}}\ \mbox{\hyperlink{lispops_8c_ac8551f91422af8672b2b35b097e073d0}{lisp\_quote}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00595}00595\ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00596}00596\ \ \ \ \ \textcolor{keywordflow}{return}\ frame-\/>arg[0];}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00597}00597\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00598}00598\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00599}00599\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00600}00600\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00601}00601\ \textcolor{comment}{\ *\ Function;}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00602}00602\ \textcolor{comment}{\ *\ binds\ the\ value\ of\ \`{}name`\ in\ the\ \`{}namespace`\ to\ value\ of\ \`{}value`,\ altering}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00603}00603\ \textcolor{comment}{\ *\ the\ namespace\ in\ so\ doing.\ Retuns\ \`{}value`.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00604}00604\ \textcolor{comment}{\ *\ \`{}namespace`\ defaults\ to\ the\ oblist.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00605}00605\ \textcolor{comment}{\ *\ \(\backslash\)todo\ doesn't\ actually\ work\ yet\ for\ namespaces\ which\ are\ not\ the\ oblist.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00606}00606\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00607}00607\ \textcolor{comment}{\ *\ *\ (set\ name\ value)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00608}00608\ \textcolor{comment}{\ *\ *\ (set\ name\ value\ namespace)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00609}00609\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00610}00610\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00611}00611\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00612}00612\ \textcolor{comment}{\ *\ @param\ env\ my\ environment\ (ignored).}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00613}00613\ \textcolor{comment}{\ *\ @return\ \`{}value`}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00614}00614\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00615}00615\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00616}\mbox{\hyperlink{lispops_8c_acb0b12e6b1e85b766821e6a088d98d43}{00616}}\ \mbox{\hyperlink{lispops_8c_acb0b12e6b1e85b766821e6a088d98d43}{lisp\_set}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00617}00617\ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00618}00618\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00619}00619\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ namespace\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00620}00620\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ frame-\/>arg[2]\ )\ ?\ \mbox{\hyperlink{intern_8c_aca78d8df225fa73eef263164d8427430}{oblist}}\ :\ frame-\/>arg[2];}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00621}00621\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00622}00622\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a868a73028c615e36d3ec378406b725b8}{symbolp}}(\ frame-\/>arg[0]\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00623}00623\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{intern_8c_af42e4cc2712549155503fad3bb010564}{deep\_bind}}(\ frame-\/>arg[0],\ frame-\/>arg[1]\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00624}00624\ \ \ \ \ \ \ \ \ result\ =\ frame-\/>arg[1];}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00625}00625\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00626}00626\ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00627}00627\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_a24b5ba8eb0cb1705e44fdf3cd90d6f75}{throw\_exception}}(\ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00628}00628\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ \mbox{\hyperlink{consspaceobject_8h_a9e4202c8555763ca9a119f0d63a058cd}{c\_string\_to\_lisp\_string}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00629}00629\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ L\textcolor{stringliteral}{"{}The\ first\ argument\ to\ \`{}set`\ is\ not\ a\ symbol:\ "{}}\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00630}00630\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ frame-\/>arg[0],\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}}\ )\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00631}00631\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ frame\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00632}00632\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00633}00633\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00634}00634\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00635}00635\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00636}00636\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00637}00637\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00638}00638\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00639}00639\ \textcolor{comment}{\ *\ Special\ form;}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00640}00640\ \textcolor{comment}{\ *\ binds\ \`{}symbol`\ in\ the\ \`{}namespace`\ to\ value\ of\ \`{}value`,\ altering}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00641}00641\ \textcolor{comment}{\ *\ the\ namespace\ in\ so\ doing,\ and\ returns\ value.\ \`{}namespace`\ defaults\ to}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00642}00642\ \textcolor{comment}{\ *\ the\ value\ of\ \`{}oblist`.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00643}00643\ \textcolor{comment}{\ *\ \(\backslash\)todo\ doesn't\ actually\ work\ yet\ for\ namespaces\ which\ are\ not\ the\ oblist.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00644}00644\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00645}00645\ \textcolor{comment}{\ *\ *\ (set!\ symbol\ value)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00646}00646\ \textcolor{comment}{\ *\ *\ (set!\ symbol\ value\ namespace)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00647}00647\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00648}00648\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00649}00649\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00650}00650\ \textcolor{comment}{\ *\ @param\ env\ my\ environment\ (ignored).}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00651}00651\ \textcolor{comment}{\ *\ @return\ \`{}value`}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00652}00652\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00653}00653\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00654}\mbox{\hyperlink{lispops_8c_abcba0ec3ef4ee8df493af82538e06fd2}{00654}}\ \mbox{\hyperlink{lispops_8c_abcba0ec3ef4ee8df493af82538e06fd2}{lisp\_set\_shriek}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00655}00655\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00656}00656\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00657}00657\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ namespace\ =\ frame-\/>arg[2];}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00658}00658\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00659}00659\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a868a73028c615e36d3ec378406b725b8}{symbolp}}(\ frame-\/>arg[0]\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00660}00660\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ val\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00661}00661\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_a44a5860734b40a3b74b9bcf681422017}{eval\_form}}(\ frame,\ frame\_pointer,\ frame-\/>arg[1],\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00662}00662\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{intern_8c_af42e4cc2712549155503fad3bb010564}{deep\_bind}}(\ frame-\/>arg[0],\ val\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00663}00663\ \ \ \ \ \ \ \ \ result\ =\ val;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00664}00664\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00665}00665\ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00666}00666\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_a24b5ba8eb0cb1705e44fdf3cd90d6f75}{throw\_exception}}(\ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00667}00667\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ \mbox{\hyperlink{consspaceobject_8h_a9e4202c8555763ca9a119f0d63a058cd}{c\_string\_to\_lisp\_string}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00668}00668\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ L\textcolor{stringliteral}{"{}The\ first\ argument\ to\ \`{}set!`\ is\ not\ a\ symbol:\ "{}}\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00669}00669\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ frame-\/>arg[0],\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}}\ )\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00670}00670\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ frame\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00671}00671\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00672}00672\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00673}00673\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00674}00674\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00675}00675\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00676}00676\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00677}00677\ \textcolor{comment}{\ *\ @return\ true\ if\ \`{}arg`\ represents\ an\ end\ of\ string,\ else\ false.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00678}00678\ \textcolor{comment}{\ *\ \(\backslash\)todo\ candidate\ for\ moving\ to\ a\ memory/string.c\ file}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00679}00679\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00680}\mbox{\hyperlink{lispops_8c_a9f1504aecf8fbcd4b77a7207475e46b1}{00680}}\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{lispops_8c_a9f1504aecf8fbcd4b77a7207475e46b1}{end\_of\_stringp}}(\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ arg\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00681}00681\ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ arg\ )\ ||}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00682}00682\ \ \ \ \ \ \ \ \ (\ \mbox{\hyperlink{consspaceobject_8h_ab57f7feed314b0b9efa64d4cb3102759}{stringp}}(\ arg\ )\ \&\&}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00683}00683\ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ arg\ ).payload.string.character\ ==\ (\ wint\_t\ )\ \textcolor{charliteral}{'\(\backslash\)0'}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00684}00684\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00685}00685\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00686}00686\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00687}00687\ \textcolor{comment}{\ *\ Function;}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00688}00688\ \textcolor{comment}{\ *\ returns\ a\ cell\ constructed\ from\ a\ and\ b.\ If\ a\ is\ of\ type\ string\ but\ its}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00689}00689\ \textcolor{comment}{\ *\ cdr\ is\ nill,\ and\ b\ is\ of\ type\ string,\ then\ returns\ a\ new\ string\ cell;}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00690}00690\ \textcolor{comment}{\ *\ otherwise\ returns\ a\ new\ cons\ cell.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00691}00691\ \textcolor{comment}{\ *\ }}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00692}00692\ \textcolor{comment}{\ *\ Thus:\ \`{}(cons\ "{}a"{}\ "{}bcd"{})\ -\/>\ "{}abcd"{}`,\ but\ \`{}(cons\ "{}ab"{}\ "{}cd"{})\ -\/>\ ("{}ab"{}\ .\ "{}cd"{})`}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00693}00693\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00694}00694\ \textcolor{comment}{\ *\ *\ (cons\ a\ b)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00695}00695\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00696}00696\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00697}00697\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00698}00698\ \textcolor{comment}{\ *\ @param\ env\ my\ environment\ (ignored).}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00699}00699\ \textcolor{comment}{\ *\ @return\ a\ new\ cons\ cell\ whose\ \`{}car`\ is\ \`{}a`\ and\ whose\ \`{}cdr`\ is\ \`{}b`.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00700}00700\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00701}00701\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00702}\mbox{\hyperlink{lispops_8c_a17fe7aebbf97744d912402087ae1622b}{00702}}\ \mbox{\hyperlink{lispops_8c_a17fe7aebbf97744d912402087ae1622b}{lisp\_cons}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00703}00703\ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00704}00704\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ car\ =\ frame-\/>arg[0];}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00705}00705\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ cdr\ =\ frame-\/>arg[1];}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00706}00706\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00707}00707\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00708}00708\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ car\ )\ \&\&\ \mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ cdr\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00709}00709\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00710}00710\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_ab57f7feed314b0b9efa64d4cb3102759}{stringp}}(\ car\ )\ \&\&\ \mbox{\hyperlink{consspaceobject_8h_ab57f7feed314b0b9efa64d4cb3102759}{stringp}}(\ cdr\ )\ \&\&}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00711}00711\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_a9f1504aecf8fbcd4b77a7207475e46b1}{end\_of\_stringp}}(\ \mbox{\hyperlink{consspaceobject_8h_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}(\ car\ )\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00712}00712\ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00713}00713\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_a6e09249d678524caf40f18ac273c8157}{make\_string}}(\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ car\ ).payload.string.character,\ cdr\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00714}00714\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00715}00715\ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ car,\ cdr\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00716}00716\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00717}00717\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00718}00718\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00719}00719\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00720}00720\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00721}00721\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00722}00722\ \textcolor{comment}{\ *\ Function;}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00723}00723\ \textcolor{comment}{\ *\ returns\ the\ first\ item\ (head)\ of\ a\ sequence.\ Valid\ for\ cons\ cells,}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00724}00724\ \textcolor{comment}{\ *\ strings,\ read\ streams\ and\ TODO\ other\ things\ which\ can\ be\ considered\ as\ sequences.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00725}00725\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00726}00726\ \textcolor{comment}{\ *\ *\ (car\ expression)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00727}00727\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00728}00728\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00729}00729\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00730}00730\ \textcolor{comment}{\ *\ @param\ env\ my\ environment\ (ignored).}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00731}00731\ \textcolor{comment}{\ *\ @return\ the\ first\ item\ (head)\ of\ \`{}expression`.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00732}00732\ \textcolor{comment}{\ *\ @exception\ if\ \`{}expression`\ is\ not\ a\ sequence.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00733}00733\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00734}00734\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00735}\mbox{\hyperlink{lispops_8c_a3a7c2b4fe66e0c4b62f274443c9add70}{00735}}\ \mbox{\hyperlink{lispops_8c_a3a7c2b4fe66e0c4b62f274443c9add70}{lisp\_car}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00736}00736\ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00737}00737\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00738}00738\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ cell\ =\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ frame-\/>arg[0]\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00739}00739\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00740}00740\ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ cell.\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00741}00741\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a6a5f5b042aa23509409e0fd00a91ac2e}{CONSTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00742}00742\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ cell.\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.cons.car;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00743}00743\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00744}00744\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_aa460b371cdb05b1db5afb10c39af3c47}{NILTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00745}00745\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00746}00746\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_adaf34dffde713283cf269225ee0343a8}{READTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00747}00747\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00748}00748\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_a6e09249d678524caf40f18ac273c8157}{make\_string}}(\ \mbox{\hyperlink{io_8c_a3be41e66bc649c81ff099e4be3e5b1a8}{url\_fgetwc}}(\ cell.\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.stream.stream\ ),\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00749}00749\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00750}00750\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a3a4310cf1909a3b9c167a945ef71d3e1}{STRINGTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00751}00751\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a6e09249d678524caf40f18ac273c8157}{make\_string}}(\ cell.\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.string.character,\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00752}00752\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00753}00753\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00754}00754\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00755}00755\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_a24b5ba8eb0cb1705e44fdf3cd90d6f75}{throw\_exception}}(\ \mbox{\hyperlink{consspaceobject_8h_a9e4202c8555763ca9a119f0d63a058cd}{c\_string\_to\_lisp\_string}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00756}00756\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ L\textcolor{stringliteral}{"{}Attempt\ to\ take\ CAR\ of\ non\ sequence"{}}\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00757}00757\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ frame\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00758}00758\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00759}00759\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00760}00760\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00761}00761\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00762}00762\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00763}00763\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00764}00764\ \textcolor{comment}{\ *\ Function;}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00765}00765\ \textcolor{comment}{\ *\ returns\ the\ remainder\ of\ a\ sequence\ when\ the\ head\ is\ removed.\ Valid\ for\ cons\ cells,}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00766}00766\ \textcolor{comment}{\ *\ strings,\ read\ streams\ and\ TODO\ other\ things\ which\ can\ be\ considered\ as\ sequences.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00767}00767\ \textcolor{comment}{\ *\ *NOTE*\ that\ if\ the\ argument\ is\ an\ input\ stream,\ the\ first\ character\ is\ removed\ AND}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00768}00768\ \textcolor{comment}{\ *\ DISCARDED.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00769}00769\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00770}00770\ \textcolor{comment}{\ *\ *\ (cdr\ expression)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00771}00771\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00772}00772\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00773}00773\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00774}00774\ \textcolor{comment}{\ *\ @param\ env\ my\ environment\ (ignored).}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00775}00775\ \textcolor{comment}{\ *\ @return\ the\ remainder\ of\ \`{}expression`\ when\ the\ head\ is\ removed.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00776}00776\ \textcolor{comment}{\ *\ @exception\ if\ \`{}expression`\ is\ not\ a\ sequence.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00777}00777\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00778}00778\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00779}\mbox{\hyperlink{lispops_8c_ad4fc50e8dfc244fa5881ef577c000d49}{00779}}\ \mbox{\hyperlink{lispops_8c_ad4fc50e8dfc244fa5881ef577c000d49}{lisp\_cdr}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00780}00780\ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00781}00781\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00782}00782\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ cell\ =\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ frame-\/>arg[0]\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00783}00783\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00784}00784\ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ cell.\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00785}00785\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a6a5f5b042aa23509409e0fd00a91ac2e}{CONSTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00786}00786\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ cell.\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.cons.cdr;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00787}00787\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00788}00788\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_aa460b371cdb05b1db5afb10c39af3c47}{NILTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00789}00789\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00790}00790\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_adaf34dffde713283cf269225ee0343a8}{READTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00791}00791\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{io_8c_a3be41e66bc649c81ff099e4be3e5b1a8}{url\_fgetwc}}(\ cell.\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.stream.stream\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00792}00792\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ frame-\/>arg[0];}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00793}00793\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00794}00794\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a3a4310cf1909a3b9c167a945ef71d3e1}{STRINGTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00795}00795\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ cell.\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.string.cdr;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00796}00796\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00797}00797\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00798}00798\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00799}00799\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_a24b5ba8eb0cb1705e44fdf3cd90d6f75}{throw\_exception}}(\ \mbox{\hyperlink{consspaceobject_8h_a9e4202c8555763ca9a119f0d63a058cd}{c\_string\_to\_lisp\_string}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00800}00800\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ L\textcolor{stringliteral}{"{}Attempt\ to\ take\ CDR\ of\ non\ sequence"{}}\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00801}00801\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ frame\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00802}00802\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00803}00803\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00804}00804\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00805}00805\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00806}00806\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00807}00807\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00808}00808\ \textcolor{comment}{\ *\ Function:\ return,\ as\ an\ integer,\ the\ length\ of\ the\ sequence\ indicated\ by}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00809}00809\ \textcolor{comment}{\ *\ the\ first\ argument,\ or\ zero\ if\ it\ is\ not\ a\ sequence.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00810}00810\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00811}00811\ \textcolor{comment}{\ *\ *\ (length\ any)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00812}00812\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00813}00813\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00814}00814\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00815}00815\ \textcolor{comment}{\ *\ @param\ env\ my\ environment\ (ignored).}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00816}00816\ \textcolor{comment}{\ *\ @return\ the\ length\ of\ \`{}any`,\ if\ it\ is\ a\ sequence,\ or\ zero\ otherwise.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00817}00817\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00818}\mbox{\hyperlink{lispops_8c_a5ce5878a7fe40eb09fbae6b6c3111cdd}{00818}}\ \textcolor{keyword}{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}}\ *frame,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00819}00819\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00820}00820\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00821}00821\ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{integer_8c_afff1d31bb49e1be78395b0803b0b2514}{make\_integer}}(\ \mbox{\hyperlink{consspaceobject_8h_a55a8301f814fabe8c01eb92ba4003d3c}{c\_length}}(\ frame-\/>arg[0]\ ),\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00822}00822\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00823}00823\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00824}00824\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00825}00825\ \textcolor{comment}{\ *\ Function;\ look\ up\ the\ value\ of\ a\ \`{}key`\ in\ a\ \`{}store`.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00826}00826\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00827}00827\ \textcolor{comment}{\ *\ *\ (assoc\ key\ store)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00828}00828\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00829}00829\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00830}00830\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00831}00831\ \textcolor{comment}{\ *\ @param\ env\ my\ environment\ (ignored).}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00832}00832\ \textcolor{comment}{\ *\ @return\ the\ value\ associated\ with\ \`{}key`\ in\ \`{}store`,\ or\ \`{}nil`\ if\ not\ found.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00833}00833\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00834}00834\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00835}\mbox{\hyperlink{lispops_8c_a02dbbf32cdf97a3c49d03de2af28b56d}{00835}}\ \mbox{\hyperlink{lispops_8c_a02dbbf32cdf97a3c49d03de2af28b56d}{lisp\_assoc}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00836}00836\ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00837}00837\ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{intern_8c_ac42ecb66595443f6fc62333afb326873}{c\_assoc}}(\ frame-\/>arg[0],\ frame-\/>arg[1]\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00838}00838\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00839}00839\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00840}\mbox{\hyperlink{lispops_8c_a8e1a3da3aea36db9cf736ceb76046810}{00840}}\ \textcolor{keyword}{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\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00841}00841\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00842}00842\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00843}00843\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{vectorspace_8h_a8587c3e6f9520c9f7810ed351b27c831}{hashmapp}}(\ store\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00844}00844\ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{intern_8c_a808e8e6f10a04c33a3fa937fba0e9d56}{hashmap\_keys}}(\ store\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00845}00845\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a69012ee77381bb1d51aafa1002f64430}{consp}}(\ store\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00846}00846\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ c\ =\ store;\ !\mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ c\ );\ c\ =\ \mbox{\hyperlink{consspaceobject_8h_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}(\ c\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00847}00847\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ \mbox{\hyperlink{consspaceobject_8h_ac683bad260c334cc2e5fad1f7d0c7b52}{c\_car}}(\ c\ ),\ result\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00848}00848\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00849}00849\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00850}00850\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00851}00851\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00852}00852\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00853}00853\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00854}\mbox{\hyperlink{lispops_8c_aa555248e9a265261bf7f2b2395b01b54}{00854}}\ \textcolor{keyword}{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}}\ *frame,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00855}00855\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00856}00856\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00857}00857\ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{lispops_8c_a8e1a3da3aea36db9cf736ceb76046810}{c\_keys}}(\ frame-\/>arg[0]\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00858}00858\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00859}00859\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00860}00860\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00861}00861\ \textcolor{comment}{\ *\ Function;\ are\ these\ two\ objects\ the\ same\ object?\ Shallow,\ cheap\ equality.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00862}00862\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00863}00863\ \textcolor{comment}{\ *\ *\ (eq\ a\ b)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00864}00864\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00865}00865\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00866}00866\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00867}00867\ \textcolor{comment}{\ *\ @param\ env\ my\ environment\ (ignored).}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00868}00868\ \textcolor{comment}{\ *\ @return\ \`{}t`\ if\ \`{}a`\ and\ \`{}b`\ are\ pointers\ to\ the\ same\ object,\ else\ \`{}nil`;}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00869}00869\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00870}\mbox{\hyperlink{lispops_8c_a1bcd755166a33b1cc3952ee495bfcffb}{00870}}\ \textcolor{keyword}{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}}\ *frame,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00871}00871\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00872}00872\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00873}00873\ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{equal_8c_ae8c9b7a5b6a556dbb30ae27d4c776d32}{eq}}(\ frame-\/>arg[0],\ frame-\/>arg[1]\ )\ ?\ \mbox{\hyperlink{consspaceobject_8h_aa8cecfc5c5c054d2875c03e77b7be15d}{TRUE}}\ :\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00874}00874\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00875}00875\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00876}00876\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00877}00877\ \textcolor{comment}{\ *\ Function;\ are\ these\ two\ arguments\ identical?\ Deep,\ expensive\ equality.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00878}00878\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00879}00879\ \textcolor{comment}{\ *\ *\ (equal\ a\ b)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00880}00880\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00881}00881\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00882}00882\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00883}00883\ \textcolor{comment}{\ *\ @param\ env\ my\ environment\ (ignored).}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00884}00884\ \textcolor{comment}{\ *\ @return\ \`{}t`\ if\ \`{}a`\ and\ \`{}b`\ are\ recursively\ identical,\ else\ \`{}nil`.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00885}00885\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00886}00886\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00887}\mbox{\hyperlink{lispops_8c_aa5c4d9285dc36c3231cb93af9e9192bf}{00887}}\ \mbox{\hyperlink{lispops_8c_aa5c4d9285dc36c3231cb93af9e9192bf}{lisp\_equal}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00888}00888\ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00889}00889\ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{equal_8c_a8b86c32fe89b8039c060b6bf9f455870}{equal}}(\ frame-\/>arg[0],\ frame-\/>arg[1]\ )\ ?\ \mbox{\hyperlink{consspaceobject_8h_aa8cecfc5c5c054d2875c03e77b7be15d}{TRUE}}\ :\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00890}00890\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00891}00891\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00892}00892\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00893}00893\ \textcolor{comment}{\ *\ Function;\ read\ one\ complete\ lisp\ form\ and\ return\ it.\ If\ read-\/stream\ is\ specified\ and}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00894}00894\ \textcolor{comment}{\ *\ is\ a\ read\ stream,\ then\ read\ from\ that\ stream,\ else\ the\ stream\ which\ is\ the\ value\ of}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00895}00895\ \textcolor{comment}{\ *\ \`{}*in*\`{}\ in\ the\ environment.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00896}00896\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00897}00897\ \textcolor{comment}{\ *\ *\ (read)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00898}00898\ \textcolor{comment}{\ *\ *\ (read\ read-\/stream)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00899}00899\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00900}00900\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00901}00901\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00902}00902\ \textcolor{comment}{\ *\ @param\ env\ my\ environment.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00903}00903\ \textcolor{comment}{\ *\ @return\ the\ expression\ read.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00904}00904\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00905}00905\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00906}\mbox{\hyperlink{lispops_8c_a211a982339c3c992f77a436d3872a958}{00906}}\ \mbox{\hyperlink{lispops_8c_a211a982339c3c992f77a436d3872a958}{lisp\_read}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00907}00907\ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00908}00908\ \textcolor{preprocessor}{\#ifdef\ DEBUG}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00909}00909\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}entering\ lisp\_read\(\backslash\)n"{}},\ \mbox{\hyperlink{debug_8h_aa1b2b9f2886a468441606f89913c0c59}{DEBUG\_IO}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00910}00910\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00911}00911\ \ \ \ \ \mbox{\hyperlink{fopen_8h_structfcurl__data}{URL\_FILE}}\ *input;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00912}00912\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00913}00913\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ in\_stream\ =\ \mbox{\hyperlink{consspaceobject_8h_a529f73078f45d69cf57129856f61c8c2}{readp}}(\ frame-\/>arg[0]\ )\ ?}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00914}00914\ \ \ \ \ \ \ \ \ frame-\/>arg[0]\ :\ \mbox{\hyperlink{io_8c_a9d614d1f21a42692f5dbab12757ec1be}{get\_default\_stream}}(\ \textcolor{keyword}{true},\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00915}00915\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00916}00916\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a529f73078f45d69cf57129856f61c8c2}{readp}}(\ in\_stream\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00917}00917\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}lisp\_read:\ setting\ input\ stream\(\backslash\)n"{}},\ \mbox{\hyperlink{debug_8h_aa1b2b9f2886a468441606f89913c0c59}{DEBUG\_IO}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00918}00918\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_aa0ffa929ddbce890ce4f81264a211233}{debug\_dump\_object}}(\ in\_stream,\ \mbox{\hyperlink{debug_8h_aa1b2b9f2886a468441606f89913c0c59}{DEBUG\_IO}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00919}00919\ \ \ \ \ \ \ \ \ input\ =\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ in\_stream\ ).payload.stream.stream;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00920}00920\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ in\_stream\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00921}00921\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00922}00922\ \ \ \ \ \ \ \ \ input\ =\ \mbox{\hyperlink{io_8c_a94886a863fdd18ea9e5559e4a70a5059}{file\_to\_url\_file}}(\ stdin\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00923}00923\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00924}00924\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00925}00925\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{read_8c_a7d1f65f93a75631a7d63e636dcbfa76f}{read}}(\ frame,\ frame\_pointer,\ env,\ input\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00926}00926\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}lisp\_read\ returning\(\backslash\)n"{}},\ \mbox{\hyperlink{debug_8h_aa1b2b9f2886a468441606f89913c0c59}{DEBUG\_IO}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00927}00927\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa0ffa929ddbce890ce4f81264a211233}{debug\_dump\_object}}(\ result,\ \mbox{\hyperlink{debug_8h_aa1b2b9f2886a468441606f89913c0c59}{DEBUG\_IO}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00928}00928\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00929}00929\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a529f73078f45d69cf57129856f61c8c2}{readp}}(\ in\_stream\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00930}00930\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ in\_stream\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00931}00931\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00932}00932\ \ \ \ \ \ \ \ \ free(\ input\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00933}00933\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00934}00934\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00935}00935\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00936}00936\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00937}00937\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00938}00938\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00939}00939\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00940}00940\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00941}00941\ \textcolor{comment}{\ *\ reverse\ a\ sequence\ (if\ it\ is\ a\ sequence);\ else\ return\ it\ unchanged.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00942}00942\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00943}\mbox{\hyperlink{lispops_8c_a3222877b61c27e3b6f0d18d485fbe143}{00943}}\ \textcolor{keyword}{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\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00944}00944\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00945}00945\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00946}00946\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_aad748a6107986982415dbdb0ddf99b99}{sequencep}}(\ arg\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00947}00947\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ p\ =\ arg;\ \mbox{\hyperlink{consspaceobject_8h_aad748a6107986982415dbdb0ddf99b99}{sequencep}}(\ p\ );\ p\ =\ \mbox{\hyperlink{consspaceobject_8h_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}(\ p\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00948}00948\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ o\ =\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ p\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00949}00949\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ o.\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00950}00950\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a6a5f5b042aa23509409e0fd00a91ac2e}{CONSTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00951}00951\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ o.\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.cons.car,\ result\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00952}00952\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00953}00953\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a3a4310cf1909a3b9c167a945ef71d3e1}{STRINGTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00954}00954\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a6e09249d678524caf40f18ac273c8157}{make\_string}}(\ o.\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.string.character,\ result\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00955}00955\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00956}00956\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a1cef10aef0e023839dbcfe6d5c305393}{SYMBOLTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00957}00957\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00958}00958\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_a32fb0eeebd407b817a2756324d123927}{make\_symbol\_or\_key}}(\ o.\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.string.character,\ result,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00959}00959\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_a1cef10aef0e023839dbcfe6d5c305393}{SYMBOLTV}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00960}00960\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00961}00961\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00962}00962\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00963}00963\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00964}00964\ \ \ \ \ \ \ \ \ result\ =\ arg;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00965}00965\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00966}00966\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00967}00967\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00968}00968\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00969}00969\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00970}00970\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00971}00971\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00972}00972\ \textcolor{comment}{\ *\ Function;\ reverse\ the\ order\ of\ members\ in\ s\ sequence.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00973}00973\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00974}00974\ \textcolor{comment}{\ *\ *\ (reverse\ sequence)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00975}00975\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00976}00976\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00977}00977\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00978}00978\ \textcolor{comment}{\ *\ @param\ env\ my\ environment\ (ignored).}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00979}00979\ \textcolor{comment}{\ *\ @return\ a\ sequence\ like\ this\ \`{}sequence`\ but\ with\ the\ members\ in\ the\ reverse\ order.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00980}00980\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00981}\mbox{\hyperlink{lispops_8c_ae3d8526a48dadb8a2d1042eb1a30599d}{00981}}\ \textcolor{keyword}{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}}\ *frame,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00982}00982\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00983}00983\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00984}00984\ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{lispops_8c_a3222877b61c27e3b6f0d18d485fbe143}{c\_reverse}}(\ frame-\/>arg[0]\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00985}00985\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00986}00986\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00987}00987\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00988}00988\ \textcolor{comment}{\ *\ Function:\ dump/inspect\ one\ complete\ lisp\ expression\ and\ return\ NIL.\ If}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00989}00989\ \textcolor{comment}{\ *\ write-\/stream\ is\ specified\ and\ is\ a\ write\ stream,\ then\ print\ to\ that\ stream,}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00990}00990\ \textcolor{comment}{\ *\ else\ \ the\ stream\ which\ is\ the\ value\ of}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00991}00991\ \textcolor{comment}{\ *\ \`{}*out*\`{}\ in\ the\ environment.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00992}00992\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00993}00993\ \textcolor{comment}{\ *\ *\ (inspect\ expr)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00994}00994\ \textcolor{comment}{\ *\ *\ (inspect\ expr\ write-\/stream)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00995}00995\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00996}00996\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00997}00997\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00998}00998\ \textcolor{comment}{\ *\ @param\ env\ my\ environment\ (from\ which\ the\ stream\ may\ be\ extracted).}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l00999}00999\ \textcolor{comment}{\ *\ @return\ NIL.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01000}01000\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01001}\mbox{\hyperlink{lispops_8c_a53cd12e5e167232513707b89291e6d08}{01001}}\ \textcolor{keyword}{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}}\ *frame,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01002}01002\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01003}01003\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01004}01004\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}Entering\ lisp\_inspect\(\backslash\)n"{}},\ \mbox{\hyperlink{debug_8h_aa1b2b9f2886a468441606f89913c0c59}{DEBUG\_IO}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01005}01005\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01006}01006\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ out\_stream\ =\ \mbox{\hyperlink{consspaceobject_8h_a09a3fce77d86ceec4e6e1f9a73fb8306}{writep}}(\ frame-\/>arg[1]\ )}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01007}01007\ \ \ \ \ \ \ \ \ ?\ frame-\/>arg[1]}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01008}01008\ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{io_8c_a9d614d1f21a42692f5dbab12757ec1be}{get\_default\_stream}}(\ \textcolor{keyword}{false},\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01009}01009\ \ \ \ \ \mbox{\hyperlink{fopen_8h_structfcurl__data}{URL\_FILE}}\ *output;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01010}01010\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01011}01011\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a09a3fce77d86ceec4e6e1f9a73fb8306}{writep}}(\ out\_stream\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01012}01012\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}lisp\_inspect:\ setting\ output\ stream\(\backslash\)n"{}},\ \mbox{\hyperlink{debug_8h_aa1b2b9f2886a468441606f89913c0c59}{DEBUG\_IO}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01013}01013\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_aa0ffa929ddbce890ce4f81264a211233}{debug\_dump\_object}}(\ out\_stream,\ \mbox{\hyperlink{debug_8h_aa1b2b9f2886a468441606f89913c0c59}{DEBUG\_IO}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01014}01014\ \ \ \ \ \ \ \ \ output\ =\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ out\_stream\ ).payload.stream.stream;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01015}01015\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01016}01016\ \ \ \ \ \ \ \ \ output\ =\ \mbox{\hyperlink{io_8c_a94886a863fdd18ea9e5559e4a70a5059}{file\_to\_url\_file}}(\ stderr\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01017}01017\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01018}01018\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01019}01019\ \ \ \ \ \mbox{\hyperlink{dump_8c_a398fe0724ef6a1badc4b353bbdbc1c57}{dump\_object}}(\ output,\ frame-\/>arg[0]\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01020}01020\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01021}01021\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}Leaving\ lisp\_inspect"{}},\ \mbox{\hyperlink{debug_8h_aa1b2b9f2886a468441606f89913c0c59}{DEBUG\_IO}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01022}01022\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01023}01023\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01024}01024\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01025}01025\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01026}01026\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01027}01027\ \textcolor{comment}{\ *\ Function;\ print\ one\ complete\ lisp\ expression\ and\ return\ NIL.\ If\ write-\/stream\ is\ specified\ and}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01028}01028\ \textcolor{comment}{\ *\ is\ a\ write\ stream,\ then\ print\ to\ that\ stream,\ else\ \ the\ stream\ which\ is\ the\ value\ of}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01029}01029\ \textcolor{comment}{\ *\ \`{}*out*\`{}\ in\ the\ environment.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01030}01030\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01031}01031\ \textcolor{comment}{\ *\ *\ (print\ expr)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01032}01032\ \textcolor{comment}{\ *\ *\ (print\ expr\ write-\/stream)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01033}01033\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01034}01034\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01035}01035\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01036}01036\ \textcolor{comment}{\ *\ @param\ env\ my\ environment\ (from\ which\ the\ stream\ may\ be\ extracted).}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01037}01037\ \textcolor{comment}{\ *\ @return\ NIL.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01038}01038\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01039}01039\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01040}\mbox{\hyperlink{lispops_8c_ad10bc08ad7c7e794b180cf27cfed1d0d}{01040}}\ \mbox{\hyperlink{lispops_8c_ad10bc08ad7c7e794b180cf27cfed1d0d}{lisp\_print}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01041}01041\ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01042}01042\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}Entering\ print\(\backslash\)n"{}},\ \mbox{\hyperlink{debug_8h_aa1b2b9f2886a468441606f89913c0c59}{DEBUG\_IO}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01043}01043\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01044}01044\ \ \ \ \ \mbox{\hyperlink{fopen_8h_structfcurl__data}{URL\_FILE}}\ *output;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01045}01045\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ out\_stream\ =\ \mbox{\hyperlink{consspaceobject_8h_a09a3fce77d86ceec4e6e1f9a73fb8306}{writep}}(\ frame-\/>arg[1]\ )\ ?}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01046}01046\ \ \ \ \ \ \ \ \ frame-\/>arg[1]\ :\ \mbox{\hyperlink{io_8c_a9d614d1f21a42692f5dbab12757ec1be}{get\_default\_stream}}(\ \textcolor{keyword}{false},\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01047}01047\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01048}01048\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a09a3fce77d86ceec4e6e1f9a73fb8306}{writep}}(\ out\_stream\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01049}01049\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}lisp\_print:\ setting\ output\ stream\(\backslash\)n"{}},\ \mbox{\hyperlink{debug_8h_aa1b2b9f2886a468441606f89913c0c59}{DEBUG\_IO}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01050}01050\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_aa0ffa929ddbce890ce4f81264a211233}{debug\_dump\_object}}(\ out\_stream,\ \mbox{\hyperlink{debug_8h_aa1b2b9f2886a468441606f89913c0c59}{DEBUG\_IO}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01051}01051\ \ \ \ \ \ \ \ \ output\ =\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ out\_stream\ ).payload.stream.stream;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01052}01052\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ out\_stream\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01053}01053\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01054}01054\ \ \ \ \ \ \ \ \ output\ =\ \mbox{\hyperlink{io_8c_a94886a863fdd18ea9e5559e4a70a5059}{file\_to\_url\_file}}(\ stderr\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01055}01055\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01056}01056\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01057}01057\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}lisp\_print:\ about\ to\ print\(\backslash\)n"{}},\ \mbox{\hyperlink{debug_8h_aa1b2b9f2886a468441606f89913c0c59}{DEBUG\_IO}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01058}01058\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa0ffa929ddbce890ce4f81264a211233}{debug\_dump\_object}}(\ frame-\/>arg[0],\ \mbox{\hyperlink{debug_8h_aa1b2b9f2886a468441606f89913c0c59}{DEBUG\_IO}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01059}01059\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01060}01060\ \ \ \ \ result\ =\ \mbox{\hyperlink{print_8c_ad0e1c7bb094ddb18a30d5141e836991b}{print}}(\ output,\ frame-\/>arg[0]\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01061}01061\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01062}01062\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}lisp\_print\ returning\(\backslash\)n"{}},\ \mbox{\hyperlink{debug_8h_aa1b2b9f2886a468441606f89913c0c59}{DEBUG\_IO}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01063}01063\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa0ffa929ddbce890ce4f81264a211233}{debug\_dump\_object}}(\ result,\ \mbox{\hyperlink{debug_8h_aa1b2b9f2886a468441606f89913c0c59}{DEBUG\_IO}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01064}01064\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01065}01065\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a09a3fce77d86ceec4e6e1f9a73fb8306}{writep}}(\ out\_stream\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01066}01066\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ out\_stream\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01067}01067\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01068}01068\ \ \ \ \ \ \ \ \ free(\ output\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01069}01069\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01070}01070\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01071}01071\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01072}01072\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01073}01073\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01074}01074\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01075}01075\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01076}01076\ \textcolor{comment}{\ *\ Function:\ get\ the\ Lisp\ type\ of\ the\ single\ argument.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01077}01077\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01078}01078\ \textcolor{comment}{\ *\ *\ (type\ expression)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01079}01079\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01080}01080\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\ frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01081}01081\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01082}01082\ \textcolor{comment}{\ *\ @param\ env\ my\ environment\ (ignored).}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01083}01083\ \textcolor{comment}{\ *\ @return\ As\ a\ Lisp\ string,\ the\ tag\ of\ \`{}expression`.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01084}01084\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01085}01085\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01086}\mbox{\hyperlink{lispops_8c_a7647de62289a00570d25be62cc3d3a58}{01086}}\ \mbox{\hyperlink{lispops_8c_a7647de62289a00570d25be62cc3d3a58}{lisp\_type}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01087}01087\ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01088}01088\ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{consspaceobject_8h_ad6da5748c65be5613d86664948ecc5ab}{c\_type}}(\ frame-\/>arg[0]\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01089}01089\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01090}01090\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01091}01091\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01092}01092\ \textcolor{comment}{\ *\ Evaluate\ each\ of\ these\ expressions\ in\ this\ \`{}env`ironment\ over\ this\ \`{}frame`,}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01093}01093\ \textcolor{comment}{\ *\ returning\ only\ the\ value\ of\ the\ last.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01094}01094\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01095}01095\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01096}\mbox{\hyperlink{lispops_8c_a643f4b78bb2f84baae37a6f73085470b}{01096}}\ \mbox{\hyperlink{lispops_8c_a643f4b78bb2f84baae37a6f73085470b}{c\_progn}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01097}01097\ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ expressions,\ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01098}01098\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01099}01099\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01100}01100\ \ \ \ \ \textcolor{keywordflow}{while}\ (\ \mbox{\hyperlink{consspaceobject_8h_a69012ee77381bb1d51aafa1002f64430}{consp}}(\ expressions\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01101}01101\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ r\ =\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01102}01102\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ r\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01103}01103\ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{lispops_8c_a44a5860734b40a3b74b9bcf681422017}{eval\_form}}(\ frame,\ frame\_pointer,\ \mbox{\hyperlink{consspaceobject_8h_ac683bad260c334cc2e5fad1f7d0c7b52}{c\_car}}(\ expressions\ ),\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01104}01104\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ r\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01105}01105\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01106}01106\ \ \ \ \ \ \ \ \ expressions\ =\ \mbox{\hyperlink{consspaceobject_8h_a08d81da027288f19974af4e6bbb1e99e}{exceptionp}}(\ result\ )\ ?\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}}\ :\ \mbox{\hyperlink{consspaceobject_8h_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}(\ expressions\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01107}01107\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01108}01108\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01109}01109\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01110}01110\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01111}01111\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01112}01112\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01113}01113\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01114}01114\ \textcolor{comment}{\ *\ Special\ form;\ evaluate\ the\ expressions\ which\ are\ listed\ in\ my\ arguments}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01115}01115\ \textcolor{comment}{\ *\ sequentially\ and\ return\ the\ value\ of\ the\ last.\ This\ function\ is\ called\ 'do'}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01116}01116\ \textcolor{comment}{\ *\ in\ some\ dialects\ of\ Lisp.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01117}01117\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01118}01118\ \textcolor{comment}{\ *\ *\ (progn\ expressions...)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01119}01119\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01120}01120\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\ frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01121}01121\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01122}01122\ \textcolor{comment}{\ *\ @param\ env\ the\ environment\ in\ which\ expressions\ are\ evaluated.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01123}01123\ \textcolor{comment}{\ *\ @return\ the\ value\ of\ the\ last\ \`{}expression`\ of\ the\ sequence\ which\ is\ my\ single}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01124}01124\ \textcolor{comment}{\ *\ argument.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01125}01125\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01126}01126\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01127}\mbox{\hyperlink{lispops_8c_a9831a05871538397b3bd1f6ee83a6b54}{01127}}\ \mbox{\hyperlink{lispops_8c_a9831a05871538397b3bd1f6ee83a6b54}{lisp\_progn}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01128}01128\ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01129}01129\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01130}01130\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01131}01131\ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ \mbox{\hyperlink{consspaceobject_8h_a214b772c864ac6458405e6a37fb9bf6e}{args\_in\_frame}}\ \&\&\ !\mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ frame-\/>arg[i]\ );\ i++\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01132}01132\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ r\ =\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01133}01133\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ r\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01134}01134\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01135}01135\ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{lispops_8c_a44a5860734b40a3b74b9bcf681422017}{eval\_form}}(\ frame,\ frame\_pointer,\ frame-\/>arg[i],\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01136}01136\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01137}01137\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ r\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01138}01138\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01139}01139\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01140}01140\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a69012ee77381bb1d51aafa1002f64430}{consp}}(\ frame-\/>more\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01141}01141\ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{lispops_8c_a643f4b78bb2f84baae37a6f73085470b}{c\_progn}}(\ frame,\ frame\_pointer,\ frame-\/>more,\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01142}01142\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01143}01143\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01144}01144\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01145}01145\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01146}01146\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01147}01147\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01148}01148\ \textcolor{comment}{\ *\ Special\ form:\ conditional.\ Each\ \`{}clause`\ is\ expected\ to\ be\ a\ list;\ if\ the\ first}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01149}01149\ \textcolor{comment}{\ *\ item\ in\ such\ a\ list\ evaluates\ to\ non-\/NIL,\ the\ remaining\ items\ in\ that\ list}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01150}01150\ \textcolor{comment}{\ *\ are\ evaluated\ in\ turn\ and\ the\ value\ of\ the\ last\ returned.\ If\ no\ arg\ \`{}clause`}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01151}01151\ \textcolor{comment}{\ *\ has\ a\ first\ element\ which\ evaluates\ to\ non\ NIL,\ then\ NIL\ is\ returned.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01152}01152\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01153}01153\ \textcolor{comment}{\ *\ *\ (cond\ clauses...)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01154}01154\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01155}01155\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\ frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01156}01156\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01157}01157\ \textcolor{comment}{\ *\ @param\ env\ the\ environment\ in\ which\ arguments\ will\ be\ evaluated.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01158}01158\ \textcolor{comment}{\ *\ @return\ the\ value\ of\ the\ last\ expression\ of\ the\ first\ successful\ \`{}clause`.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01159}01159\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01160}01160\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01161}\mbox{\hyperlink{lispops_8c_ada539c994fddd1943492b6c0a9abdcb7}{01161}}\ \mbox{\hyperlink{lispops_8c_ada539c994fddd1943492b6c0a9abdcb7}{lisp\_cond}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01162}01162\ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01163}01163\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01164}01164\ \ \ \ \ \textcolor{keywordtype}{bool}\ done\ =\ \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01165}01165\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01166}01166\ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ \mbox{\hyperlink{consspaceobject_8h_a214b772c864ac6458405e6a37fb9bf6e}{args\_in\_frame}}\ \&\&\ !done;\ i++\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01167}01167\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ clause\_pointer\ =\ frame-\/>arg[i];}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01168}01168\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}Cond\ clause:\ "{}},\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01169}01169\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_aa0ffa929ddbce890ce4f81264a211233}{debug\_dump\_object}}(\ clause\_pointer,\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01170}01170\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01171}01171\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a69012ee77381bb1d51aafa1002f64430}{consp}}(\ clause\_pointer\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01172}01172\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ cell\ =\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ clause\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01173}01173\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01174}01174\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_a44a5860734b40a3b74b9bcf681422017}{eval\_form}}(\ frame,\ frame\_pointer,\ \mbox{\hyperlink{consspaceobject_8h_ac683bad260c334cc2e5fad1f7d0c7b52}{c\_car}}(\ clause\_pointer\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01175}01175\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01176}01176\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01177}01177\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ !\mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ result\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01178}01178\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01179}01179\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_a643f4b78bb2f84baae37a6f73085470b}{c\_progn}}(\ frame,\ frame\_pointer,\ \mbox{\hyperlink{consspaceobject_8h_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}(\ clause\_pointer\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01180}01180\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01181}01181\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ done\ =\ \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01182}01182\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01183}01183\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ clause\_pointer\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01184}01184\ \ \ \ \ \ \ \ \ \ \ \ \ done\ =\ \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01185}01185\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01186}01186\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{lispops_8c_a24b5ba8eb0cb1705e44fdf3cd90d6f75}{throw\_exception}}(\ \mbox{\hyperlink{consspaceobject_8h_a9e4202c8555763ca9a119f0d63a058cd}{c\_string\_to\_lisp\_string}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01187}01187\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ L\textcolor{stringliteral}{"{}Arguments\ to\ \`{}cond`\ must\ be\ lists"{}}\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01188}01188\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ frame\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01189}01189\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01190}01190\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01191}01191\ \ \ \ \ \textcolor{comment}{/*\ \(\backslash\)todo\ if\ there\ are\ more\ than\ 8\ clauses\ we\ need\ to\ continue\ into\ the}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01192}01192\ \textcolor{comment}{\ \ \ \ \ *\ remainder\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01193}01193\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01194}01194\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01195}01195\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01196}01196\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01197}01197\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01198}01198\ \textcolor{comment}{\ *\ Throw\ an\ exception.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01199}01199\ \textcolor{comment}{\ *\ \`{}throw\_exception`\ is\ a\ misnomer,\ because\ it\ doesn't\ obey\ the\ calling\ signature\ of\ a}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01200}01200\ \textcolor{comment}{\ *\ lisp\ function;\ but\ it\ is\ nevertheless\ to\ be\ preferred\ to\ make\_exception.\ A}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01201}01201\ \textcolor{comment}{\ *\ real\ \`{}throw\_exception`,\ which\ does,\ will\ be\ needed.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01202}01202\ \textcolor{comment}{\ *\ object\ pointing\ to\ it.\ Then\ this\ should\ become\ a\ normal\ lisp\ function}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01203}01203\ \textcolor{comment}{\ *\ which\ expects\ a\ normally\ bound\ frame\ and\ environment,\ such\ that}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01204}01204\ \textcolor{comment}{\ *\ frame-\/>arg[0]\ is\ the\ message,\ and\ frame-\/>arg[1]\ is\ the\ cons-\/space}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01205}01205\ \textcolor{comment}{\ *\ pointer\ to\ the\ frame\ in\ which\ the\ exception\ occurred.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01206}01206\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01207}01207\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01208}\mbox{\hyperlink{lispops_8c_a24b5ba8eb0cb1705e44fdf3cd90d6f75}{01208}}\ \mbox{\hyperlink{lispops_8c_a24b5ba8eb0cb1705e44fdf3cd90d6f75}{throw\_exception}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ message,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01209}01209\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01210}01210\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}\(\backslash\)nERROR:\ "{}},\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01211}01211\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa0ffa929ddbce890ce4f81264a211233}{debug\_dump\_object}}(\ message,\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01212}01212\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01213}01213\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01214}01214\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ cell\ =\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ message\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01215}01215\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01216}01216\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ cell.\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value\ ==\ \mbox{\hyperlink{consspaceobject_8h_aa66d7497baaa8e7a255c448e8b08e5ee}{EXCEPTIONTV}}\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01217}01217\ \ \ \ \ \ \ \ \ result\ =\ message;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01218}01218\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01219}01219\ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a2a1abab0c80ab1e97f507bc4eab02523}{make\_exception}}(\ message,\ frame\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01220}01220\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01221}01221\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01222}01222\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01223}01223\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01224}01224\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01225}01225\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01226}01226\ \textcolor{comment}{\ *\ Function;\ create\ an\ exception.\ Exceptions\ are\ special\ in\ as\ much\ as\ if\ an}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01227}01227\ \textcolor{comment}{\ *\ exception\ is\ created\ in\ the\ binding\ of\ the\ arguments\ of\ any\ function,\ the}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01228}01228\ \textcolor{comment}{\ *\ function\ will\ return\ the\ exception\ rather\ than\ whatever\ else\ it\ would}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01229}01229\ \textcolor{comment}{\ *\ normally\ return.\ A\ function\ which\ detects\ a\ problem\ it\ cannot\ resolve}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01230}01230\ \textcolor{comment}{\ *\ *should*\ return\ an\ exception.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01231}01231\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01232}01232\ \textcolor{comment}{\ *\ *\ (exception\ message\ frame)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01233}01233\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01234}01234\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\ frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01235}01235\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01236}01236\ \textcolor{comment}{\ *\ @param\ env\ the\ environment\ in\ which\ arguments\ will\ be\ evaluated.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01237}01237\ \textcolor{comment}{\ *\ @return\ areturns\ an\ exception\ whose\ message\ is\ this\ \`{}message`,\ and\ whose}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01238}01238\ \textcolor{comment}{\ *\ stack\ frame\ is\ the\ parent\ stack\ frame\ when\ the\ function\ is\ invoked.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01239}01239\ \textcolor{comment}{\ *\ \`{}message`\ does\ not\ have\ to\ be\ a\ string\ but\ should\ be\ something\ intelligible}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01240}01240\ \textcolor{comment}{\ *\ which\ can\ be\ read.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01241}01241\ \textcolor{comment}{\ *\ If\ \`{}message`\ is\ itself\ an\ exception,\ returns\ that\ instead.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01242}01242\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01243}01243\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01244}\mbox{\hyperlink{lispops_8c_a2a9243d54e3891ae97b25dd314a91a2a}{01244}}\ \mbox{\hyperlink{lispops_8c_a2a9243d54e3891ae97b25dd314a91a2a}{lisp\_exception}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}\ *frame,\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01245}01245\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01246}01246\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ message\ =\ frame-\/>arg[0];}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01247}01247\ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{consspaceobject_8h_a08d81da027288f19974af4e6bbb1e99e}{exceptionp}}(\ message\ )\ ?\ message\ :\ \mbox{\hyperlink{lispops_8c_a24b5ba8eb0cb1705e44fdf3cd90d6f75}{throw\_exception}}(\ message,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01248}01248\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ frame-\/>previous\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01249}01249\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01250}01250\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01251}01251\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01252}01252\ \textcolor{comment}{\ *\ Function:\ the\ read/eval/print\ loop.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01253}01253\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01254}01254\ \textcolor{comment}{\ *\ *\ (repl)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01255}01255\ \textcolor{comment}{\ *\ *\ (repl\ prompt)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01256}01256\ \textcolor{comment}{\ *\ *\ (repl\ prompt\ input\_stream\ output\_stream)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01257}01257\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01258}01258\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\ frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01259}01259\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01260}01260\ \textcolor{comment}{\ *\ @param\ env\ the\ environment\ in\ which\ epressions\ will\ be\ evaluated.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01261}01261\ \textcolor{comment}{\ *\ @return\ the\ value\ of\ the\ last\ expression\ read.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01262}01262\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01263}\mbox{\hyperlink{lispops_8c_ab9755455107909ddd1f0f4eaacebd3e1}{01263}}\ \textcolor{keyword}{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}}\ *frame,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01264}01264\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01265}01265\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01266}01266\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ expr\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01267}01267\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01268}01268\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa335b357cde1ba7eb6e8a71955079aab}{debug\_printf}}(\ \mbox{\hyperlink{debug_8h_a9d33eefe5658ff19d53df47d625cc01b}{DEBUG\_REPL}},\ L\textcolor{stringliteral}{"{}Entering\ new\ inner\ REPL\(\backslash\)n"{}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01269}01269\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01270}01270\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ input\ =\ \mbox{\hyperlink{io_8c_a9d614d1f21a42692f5dbab12757ec1be}{get\_default\_stream}}(\ \textcolor{keyword}{true},\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01271}01271\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ output\ =\ \mbox{\hyperlink{io_8c_a9d614d1f21a42692f5dbab12757ec1be}{get\_default\_stream}}(\ \textcolor{keyword}{false},\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01272}01272\ \textcolor{comment}{//\ \ \ \ struct\ cons\_pointer\ prompt\_name\ =\ c\_string\_to\_lisp\_symbol(\ L"{}*prompt*"{}\ );}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01273}01273\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ old\_oblist\ =\ \mbox{\hyperlink{intern_8c_aca78d8df225fa73eef263164d8427430}{oblist}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01274}01274\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ new\_env\ =\ env;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01275}01275\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01276}01276\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a1c1832c6670baed0272a78d536a88c78}{truep}}(\ frame-\/>arg[0]\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01277}01277\ \ \ \ \ \ \ \ \ new\_env\ =\ \mbox{\hyperlink{intern_8c_af8e370c233928d41c268874a6aa5d9e2}{set}}(\ \mbox{\hyperlink{lispops_8c_ae98f233f522769b02aa734cc43a0fe7b}{prompt\_name}},\ frame-\/>arg[0],\ new\_env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01278}01278\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01279}01279\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a529f73078f45d69cf57129856f61c8c2}{readp}}(\ frame-\/>arg[1]\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01280}01280\ \ \ \ \ \ \ \ \ new\_env\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01281}01281\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{intern_8c_af8e370c233928d41c268874a6aa5d9e2}{set}}(\ \mbox{\hyperlink{consspaceobject_8h_ac18813a5587f81344b2a35977657b09b}{c\_string\_to\_lisp\_symbol}}(\ L\textcolor{stringliteral}{"{}*in*"{}}\ ),\ frame-\/>arg[1],\ new\_env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01282}01282\ \ \ \ \ \ \ \ \ input\ =\ frame-\/>arg[1];}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01283}01283\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01284}01284\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a529f73078f45d69cf57129856f61c8c2}{readp}}(\ frame-\/>arg[2]\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01285}01285\ \ \ \ \ \ \ \ \ new\_env\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01286}01286\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{intern_8c_af8e370c233928d41c268874a6aa5d9e2}{set}}(\ \mbox{\hyperlink{consspaceobject_8h_ac18813a5587f81344b2a35977657b09b}{c\_string\_to\_lisp\_symbol}}(\ L\textcolor{stringliteral}{"{}*out*"{}}\ ),\ frame-\/>arg[2],\ new\_env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01287}01287\ \ \ \ \ \ \ \ \ output\ =\ frame-\/>arg[2];}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01288}01288\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01289}01289\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01290}01290\ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ input\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01291}01291\ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ output\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01292}01292\ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ \mbox{\hyperlink{lispops_8c_ae98f233f522769b02aa734cc43a0fe7b}{prompt\_name}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01293}01293\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01294}01294\ \ \ \ \ \mbox{\hyperlink{fopen_8h_structfcurl__data}{URL\_FILE}}\ *os\ =\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ output\ ).payload.stream.stream;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01295}01295\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01296}01296\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01297}01297\ \ \ \ \ \textcolor{comment}{/*\ \(\backslash\)todo\ this\ is\ subtly\ wrong.\ If\ we\ were\ evaluating}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01298}01298\ \textcolor{comment}{\ \ \ \ \ *\ \ \ (print\ (eval\ (read)))}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01299}01299\ \textcolor{comment}{\ \ \ \ \ *\ then\ the\ stack\ frame\ for\ read\ would\ have\ the\ stack\ frame\ for}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01300}01300\ \textcolor{comment}{\ \ \ \ \ *\ eval\ as\ parent,\ and\ it\ in\ turn\ would\ have\ the\ stack\ frame\ for}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01301}01301\ \textcolor{comment}{\ \ \ \ \ *\ print\ as\ parent.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01302}01302\ \textcolor{comment}{\ \ \ \ \ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01303}01303\ \ \ \ \ \textcolor{keywordflow}{while}\ (\ \mbox{\hyperlink{consspaceobject_8h_a529f73078f45d69cf57129856f61c8c2}{readp}}(\ input\ )\ \&\&\ \mbox{\hyperlink{consspaceobject_8h_a09a3fce77d86ceec4e6e1f9a73fb8306}{writep}}(\ output\ )}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01304}01304\ \ \ \ \ \ \ \ \ \ \ \ \ \&\&\ !\mbox{\hyperlink{fopen_8c_a216d4da618cba31eb9b2badf6d5de2d9}{url\_feof}}(\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ input\ ).payload.stream.stream\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01305}01305\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ OK,\ here's\ a\ really\ subtle\ problem:\ because\ lists\ are\ immutable,\ anything}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01306}01306\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ bound\ in\ the\ oblist\ subsequent\ to\ this\ function\ being\ invoked\ isn't\ in\ the}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01307}01307\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ environment.\ So,\ for\ example,\ changes\ to\ *prompt*\ or\ *log*\ made\ in\ the\ oblist}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01308}01308\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ are\ not\ visible.\ So\ copy\ changes\ made\ in\ the\ oblist\ into\ the\ enviroment.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01309}01309\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ \(\backslash\)todo\ the\ whole\ process\ of\ resolving\ symbol\ values\ needs\ to\ be\ revisited}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01310}01310\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ when\ we\ get\ onto\ namespaces.\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01311}01311\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ OK,\ there's\ something\ even\ more\ subtle\ here\ if\ the\ root\ namespace\ is\ a\ map.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01312}01312\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ H'mmmm...\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01313}01313\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ !\mbox{\hyperlink{equal_8c_ae8c9b7a5b6a556dbb30ae27d4c776d32}{eq}}(\ \mbox{\hyperlink{intern_8c_aca78d8df225fa73eef263164d8427430}{oblist}},\ old\_oblist\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01314}01314\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ cursor\ =\ \mbox{\hyperlink{intern_8c_aca78d8df225fa73eef263164d8427430}{oblist}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01315}01315\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01316}01316\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}\ (\ !\mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ cursor\ )\ \&\&\ !\mbox{\hyperlink{equal_8c_ae8c9b7a5b6a556dbb30ae27d4c776d32}{eq}}(\ cursor,\ old\_oblist\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01317}01317\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ old\_new\_env\ =\ new\_env;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01318}01318\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01319}01319\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ L\textcolor{stringliteral}{"{}lisp\_repl:\ copying\ new\ oblist\ binding\ into\ REPL\ environment:\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01320}01320\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8h_a9d33eefe5658ff19d53df47d625cc01b}{DEBUG\_REPL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01321}01321\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_ada2d4646201b5827137d0bf053fcac59}{debug\_print\_object}}(\ \mbox{\hyperlink{consspaceobject_8h_ac683bad260c334cc2e5fad1f7d0c7b52}{c\_car}}(\ cursor\ ),\ \mbox{\hyperlink{debug_8h_a9d33eefe5658ff19d53df47d625cc01b}{DEBUG\_REPL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01322}01322\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_a9d5aa8671cb579261b2049c09aafa773}{debug\_println}}(\ \mbox{\hyperlink{debug_8h_a9d33eefe5658ff19d53df47d625cc01b}{DEBUG\_REPL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01323}01323\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01324}01324\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ new\_env\ =\ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ \mbox{\hyperlink{consspaceobject_8h_ac683bad260c334cc2e5fad1f7d0c7b52}{c\_car}}(\ cursor\ ),\ new\_env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01325}01325\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ new\_env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01326}01326\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ old\_new\_env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01327}01327\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cursor\ =\ \mbox{\hyperlink{consspaceobject_8h_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}(\ cursor\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01328}01328\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01329}01329\ \ \ \ \ \ \ \ \ \ \ \ \ old\_oblist\ =\ \mbox{\hyperlink{intern_8c_aca78d8df225fa73eef263164d8427430}{oblist}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01330}01330\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01331}01331\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01332}01332\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{print_8c_acbb27ea6b8e7d86018108198489a09b2}{println}}(\ os\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01333}01333\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01334}01334\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ prompt\ =\ \mbox{\hyperlink{intern_8c_ac42ecb66595443f6fc62333afb326873}{c\_assoc}}(\ \mbox{\hyperlink{lispops_8c_ae98f233f522769b02aa734cc43a0fe7b}{prompt\_name}},\ new\_env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01335}01335\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ !\mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ prompt\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01336}01336\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{print_8c_ad0e1c7bb094ddb18a30d5141e836991b}{print}}(\ os,\ prompt\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01337}01337\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01338}01338\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01339}01339\ \ \ \ \ \ \ \ \ expr\ =\ \mbox{\hyperlink{lispops_8c_a211a982339c3c992f77a436d3872a958}{lisp\_read}}(\ \mbox{\hyperlink{stack_8c_a81653b4495f0fd4e7e49b9bd99e8e8db}{get\_stack\_frame}}(\ frame\_pointer\ ),\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01340}01340\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ new\_env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01341}01341\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01342}01342\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a08d81da027288f19974af4e6bbb1e99e}{exceptionp}}(\ expr\ )}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01343}01343\ \ \ \ \ \ \ \ \ \ \ \ \ \ \&\&\ \mbox{\hyperlink{fopen_8c_a216d4da618cba31eb9b2badf6d5de2d9}{url\_feof}}(\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ input\ ).payload.stream.stream\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01344}01344\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ suppress\ printing\ end\ of\ stream\ exception\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01345}01345\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01346}01346\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01347}01347\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01348}01348\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{print_8c_acbb27ea6b8e7d86018108198489a09b2}{println}}(\ os\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01349}01349\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01350}01350\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{print_8c_ad0e1c7bb094ddb18a30d5141e836991b}{print}}(\ os,\ \mbox{\hyperlink{lispops_8c_a44a5860734b40a3b74b9bcf681422017}{eval\_form}}(\ frame,\ frame\_pointer,\ expr,\ new\_env\ )\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01351}01351\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01352}01352\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ expr\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01353}01353\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01354}01354\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01355}01355\ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ input\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01356}01356\ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ output\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01357}01357\ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ \mbox{\hyperlink{lispops_8c_ae98f233f522769b02aa734cc43a0fe7b}{prompt\_name}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01358}01358\ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ new\_env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01359}01359\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01360}01360\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa335b357cde1ba7eb6e8a71955079aab}{debug\_printf}}(\ \mbox{\hyperlink{debug_8h_a9d33eefe5658ff19d53df47d625cc01b}{DEBUG\_REPL}},\ L\textcolor{stringliteral}{"{}Leaving\ inner\ repl\(\backslash\)n"{}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01361}01361\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01362}01362\ \ \ \ \ \textcolor{keywordflow}{return}\ expr;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01363}01363\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01364}01364\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01365}01365\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01366}01366\ \textcolor{comment}{\ *\ Function.\ return\ the\ source\ code\ of\ the\ object\ which\ is\ its\ first\ argument,}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01367}01367\ \textcolor{comment}{\ *\ if\ it\ is\ an\ executable\ and\ has\ source\ code.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01368}01368\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01369}01369\ \textcolor{comment}{\ *\ *\ (source\ object)}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01370}01370\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01371}01371\ \textcolor{comment}{\ *\ @param\ frame\ my\ stack\ frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01372}01372\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ a\ pointer\ to\ my\ stack\_frame.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01373}01373\ \textcolor{comment}{\ *\ @param\ env\ the\ environment\ (ignored).}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01374}01374\ \textcolor{comment}{\ *\ @return\ the\ source\ of\ the\ \`{}object`\ indicated,\ if\ it\ is\ a\ function,\ a\ lambda,}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01375}01375\ \textcolor{comment}{\ *\ an\ nlambda,\ or\ a\ spcial\ form;\ else\ \`{}nil`.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01376}01376\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01377}\mbox{\hyperlink{lispops_8c_a0b72bf4f6e9fb8381c0e6c73da6c26c9}{01377}}\ \textcolor{keyword}{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}}\ *frame,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01378}01378\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01379}01379\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01380}01380\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01381}01381\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ cell\ =\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ frame-\/>arg[0]\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01382}01382\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ source\_key\ =\ \mbox{\hyperlink{consspaceobject_8h_a36a68d265999acf02988326ec4c53fc2}{c\_string\_to\_lisp\_keyword}}(\ L\textcolor{stringliteral}{"{}source"{}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01383}01383\ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ cell.\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01384}01384\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a291e48d2612ab2b3b86fa677d13824b3}{FUNCTIONTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01385}01385\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{intern_8c_ac42ecb66595443f6fc62333afb326873}{c\_assoc}}(\ source\_key,\ cell.\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.function.meta\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01386}01386\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01387}01387\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a0569cc92977f62ba26b81c00e661b973}{SPECIALTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01388}01388\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{intern_8c_ac42ecb66595443f6fc62333afb326873}{c\_assoc}}(\ source\_key,\ cell.\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.special.meta\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01389}01389\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01390}01390\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_ad4ddcddc7db74650f23a33d0e970db30}{LAMBDATV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01391}01391\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ \mbox{\hyperlink{consspaceobject_8h_ac18813a5587f81344b2a35977657b09b}{c\_string\_to\_lisp\_symbol}}(\ L\textcolor{stringliteral}{"{}lambda"{}}\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01392}01392\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ cell.\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.lambda.args,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01393}01393\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell.\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.lambda.body\ )\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01394}01394\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01395}01395\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a7f953a7cdd4f2ce5eab1738da32536b3}{NLAMBDATV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01396}01396\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ \mbox{\hyperlink{consspaceobject_8h_ac18813a5587f81344b2a35977657b09b}{c\_string\_to\_lisp\_symbol}}(\ L\textcolor{stringliteral}{"{}nlambda"{}}\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01397}01397\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ cell.\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.lambda.args,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01398}01398\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell.\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.lambda.body\ )\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01399}01399\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01400}01400\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01401}01401\ \ \ \ \ \textcolor{comment}{//\ \(\backslash\)todo\ suffers\ from\ premature\ GC,\ and\ I\ can't\ see\ why!}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01402}01402\ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ result\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01403}01403\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01404}01404\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01405}01405\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01406}01406\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01407}01407\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01408}01408\ \textcolor{comment}{\ *\ A\ version\ of\ append\ which\ can\ conveniently\ be\ called\ from\ C.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01409}01409\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01410}\mbox{\hyperlink{lispops_8c_ad91d964e274bbb8abf38aaa3522664a2}{01410}}\ \textcolor{keyword}{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\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01411}01411\ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ l1\ ).tag.value\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01412}01412\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a6a5f5b042aa23509409e0fd00a91ac2e}{CONSTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01413}01413\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ l1\ ).tag.value\ ==\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ l2\ ).tag.value\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01414}01414\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ \mbox{\hyperlink{consspaceobject_8h_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}(\ l1\ )\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01415}01415\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ \mbox{\hyperlink{consspaceobject_8h_ac683bad260c334cc2e5fad1f7d0c7b52}{c\_car}}(\ l1\ ),\ l2\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01416}01416\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01417}01417\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ \mbox{\hyperlink{consspaceobject_8h_ac683bad260c334cc2e5fad1f7d0c7b52}{c\_car}}(\ l1\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01418}01418\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_ad91d964e274bbb8abf38aaa3522664a2}{c\_append}}(\ \mbox{\hyperlink{consspaceobject_8h_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}(\ l1\ ),\ l2\ )\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01419}01419\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01420}01420\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01421}01421\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_a24b5ba8eb0cb1705e44fdf3cd90d6f75}{throw\_exception}}(\ \mbox{\hyperlink{consspaceobject_8h_a9e4202c8555763ca9a119f0d63a058cd}{c\_string\_to\_lisp\_string}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01422}01422\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ L\textcolor{stringliteral}{"{}Can't\ append:\ not\ same\ type"{}}\ ),\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01423}01423\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01424}01424\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01425}01425\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a027cdb41b87676d9d2fb55dd058c0078}{KEYTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01426}01426\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a3a4310cf1909a3b9c167a945ef71d3e1}{STRINGTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01427}01427\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a1cef10aef0e023839dbcfe6d5c305393}{SYMBOLTV}}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01428}01428\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ l1\ ).tag.value\ ==\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ l2\ ).tag.value\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01429}01429\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ \mbox{\hyperlink{consspaceobject_8h_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}(\ l1\ )\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01430}01430\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01431}01431\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_a409cc41fa651c2200f7a291fbf65a941}{make\_string\_like\_thing}}(\ (\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ l1\ ).payload.}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01432}01432\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{string}.character\ ),\ l2,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01433}01433\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ l1\ ).tag.value\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01434}01434\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01435}01435\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01436}01436\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_a409cc41fa651c2200f7a291fbf65a941}{make\_string\_like\_thing}}(\ (\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ l1\ ).payload.}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01437}01437\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{string}.character\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01438}01438\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_ad91d964e274bbb8abf38aaa3522664a2}{c\_append}}(\ \mbox{\hyperlink{consspaceobject_8h_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}(\ l1\ ),\ l2\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01439}01439\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ l1\ ).tag.value\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01440}01440\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01441}01441\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01442}01442\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_a24b5ba8eb0cb1705e44fdf3cd90d6f75}{throw\_exception}}(\ \mbox{\hyperlink{consspaceobject_8h_a9e4202c8555763ca9a119f0d63a058cd}{c\_string\_to\_lisp\_string}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01443}01443\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ L\textcolor{stringliteral}{"{}Can't\ append:\ not\ same\ type"{}}\ ),\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01444}01444\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01445}01445\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01446}01446\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01447}01447\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_a24b5ba8eb0cb1705e44fdf3cd90d6f75}{throw\_exception}}(\ \mbox{\hyperlink{consspaceobject_8h_a9e4202c8555763ca9a119f0d63a058cd}{c\_string\_to\_lisp\_string}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01448}01448\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ L\textcolor{stringliteral}{"{}Can't\ append:\ not\ a\ sequence"{}}\ ),\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01449}01449\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01450}01450\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01451}01451\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01452}01452\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01453}01453\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01454}01454\ \textcolor{comment}{\ *\ should\ really\ be\ overwritten\ with\ a\ version\ in\ Lisp,\ since\ this\ is\ much\ easier\ to\ write\ in\ Lisp}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01455}01455\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01456}\mbox{\hyperlink{lispops_8c_abdc42c3fca33f19b155b35ef0a572680}{01456}}\ \textcolor{keyword}{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}}\ *frame,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01457}01457\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01458}01458\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01459}01459\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{stack_8c_a6e989b705aea0873495c7259121e0e33}{fetch\_arg}}(\ frame,\ (\ frame-\/>args\ -\/\ 1\ )\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01460}01460\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01461}01461\ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keywordtype}{int}\ a\ =\ frame-\/>args\ -\/\ 2;\ a\ >=\ 0;\ a-\/-\/\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01462}01462\ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{lispops_8c_ad91d964e274bbb8abf38aaa3522664a2}{c\_append}}(\ \mbox{\hyperlink{stack_8c_a6e989b705aea0873495c7259121e0e33}{fetch\_arg}}(\ frame,\ a\ ),\ result\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01463}01463\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01464}01464\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01465}01465\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01466}01466\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01467}01467\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01468}\mbox{\hyperlink{lispops_8c_a1537dbeaaee54b95ab9ca1c12307bb52}{01468}}\ \textcolor{keyword}{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}}\ *frame,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01469}01469\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01470}01470\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01471}01471\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01472}01472\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}Mapcar:\ "{}},\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01473}01473\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa0ffa929ddbce890ce4f81264a211233}{debug\_dump\_object}}(\ frame\_pointer,\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01474}01474\ \ \ \ \ \textcolor{keywordtype}{int}\ i\ =\ 0;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01475}01475\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01476}01476\ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ c\ =\ frame-\/>arg[1];\ \mbox{\hyperlink{consspaceobject_8h_a1c1832c6670baed0272a78d536a88c78}{truep}}(\ c\ );\ c\ =\ \mbox{\hyperlink{consspaceobject_8h_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}(\ c\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01477}01477\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ expr\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01478}01478\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ frame-\/>arg[0],\ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ \mbox{\hyperlink{consspaceobject_8h_ac683bad260c334cc2e5fad1f7d0c7b52}{c\_car}}(\ c\ ),\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}}\ )\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01479}01479\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ expr\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01480}01480\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01481}01481\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_aa335b357cde1ba7eb6e8a71955079aab}{debug\_printf}}(\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}},\ L\textcolor{stringliteral}{"{}Mapcar\ \%d,\ evaluating\ "{}},\ i\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01482}01482\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_ada2d4646201b5827137d0bf053fcac59}{debug\_print\_object}}(\ expr,\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01483}01483\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_a9d5aa8671cb579261b2049c09aafa773}{debug\_println}}(\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01484}01484\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01485}01485\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ r\ =\ \mbox{\hyperlink{lispops_8c_a44a5860734b40a3b74b9bcf681422017}{eval\_form}}(\ frame,\ frame\_pointer,\ expr,\ env\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01486}01486\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01487}01487\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a08d81da027288f19974af4e6bbb1e99e}{exceptionp}}(\ r\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01488}01488\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ r;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01489}01489\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ expr\ );\ \ \ \ \textcolor{comment}{//\ to\ protect\ exception\ from\ the\ later\ dec\_ref}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01490}01490\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01491}01491\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01492}01492\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ r,\ result\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01493}01493\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01494}01494\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_aa335b357cde1ba7eb6e8a71955079aab}{debug\_printf}}(\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}},\ L\textcolor{stringliteral}{"{}Mapcar\ \%d,\ result\ is\ "{}},\ i++\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01495}01495\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_ada2d4646201b5827137d0bf053fcac59}{debug\_print\_object}}(\ result,\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01496}01496\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_a9d5aa8671cb579261b2049c09aafa773}{debug\_println}}(\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01497}01497\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01498}01498\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ expr\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01499}01499\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01500}01500\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01501}01501\ \ \ \ \ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a69012ee77381bb1d51aafa1002f64430}{consp}}(\ result\ )\ ?\ \mbox{\hyperlink{lispops_8c_a3222877b61c27e3b6f0d18d485fbe143}{c\_reverse}}(\ result\ )\ :\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01502}01502\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01503}01503\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}Mapcar\ returning:\ "{}},\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01504}01504\ \ \ \ \ \mbox{\hyperlink{debug_8c_ada2d4646201b5827137d0bf053fcac59}{debug\_print\_object}}(\ result,\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01505}01505\ \ \ \ \ \mbox{\hyperlink{debug_8c_a9d5aa8671cb579261b2049c09aafa773}{debug\_println}}(\ \mbox{\hyperlink{debug_8h_afac31e745564644b8a5c242dc195844c}{DEBUG\_EVAL}}\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01506}01506\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01507}01507\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01508}01508\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01509}01509\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01510}\mbox{\hyperlink{lispops_8c_ad5ed6a7754f8aac2352165f675549f3c}{01510}}\ \textcolor{keyword}{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}}\ *frame,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01511}01511\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01512}01512\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01513}01513\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ frame-\/>more;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01514}01514\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01515}01515\ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keywordtype}{int}\ a\ =\ \mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ result\ )\ ?\ frame-\/>args\ -\/\ 1\ :\ \mbox{\hyperlink{consspaceobject_8h_a214b772c864ac6458405e6a37fb9bf6e}{args\_in\_frame}}\ -\/\ 1;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01516}01516\ \ \ \ \ \ \ \ \ \ \ a\ >=\ 0;\ a-\/-\/\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01517}01517\ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ \mbox{\hyperlink{stack_8c_a6e989b705aea0873495c7259121e0e33}{fetch\_arg}}(\ frame,\ a\ ),\ result\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01518}01518\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01519}01519\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01520}01520\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01521}01521\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01522}01522\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01523}01523\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01524}01524\ \textcolor{comment}{\ *\ Special\ form:\ evaluate\ a\ series\ of\ forms\ in\ an\ environment\ in\ which}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01525}01525\ \textcolor{comment}{\ *\ these\ bindings\ are\ bound.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01526}01526\ \textcolor{comment}{\ *\ This\ is\ \`{}let*\`{}\ in\ Common\ Lisp\ parlance;\ \`{}let`\ in\ Clojure\ parlance.}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01527}01527\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01528}\mbox{\hyperlink{lispops_8c_a536dcbdd60e4ff3bf74b617e488b0c75}{01528}}\ \textcolor{keyword}{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}}\ *frame,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01529}01529\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01530}01530\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ env\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01531}01531\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ bindings\ =\ env;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01532}01532\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01533}01533\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01534}01534\ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ cursor\ =\ frame-\/>arg[0];}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01535}01535\ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_a1c1832c6670baed0272a78d536a88c78}{truep}}(\ cursor\ );\ cursor\ =\ \mbox{\hyperlink{consspaceobject_8h_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}(\ cursor\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01536}01536\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ pair\ =\ \mbox{\hyperlink{consspaceobject_8h_ac683bad260c334cc2e5fad1f7d0c7b52}{c\_car}}(\ cursor\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01537}01537\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ symbol\ =\ \mbox{\hyperlink{consspaceobject_8h_ac683bad260c334cc2e5fad1f7d0c7b52}{c\_car}}(\ pair\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01538}01538\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01539}01539\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a868a73028c615e36d3ec378406b725b8}{symbolp}}(\ symbol\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01540}01540\ \ \ \ \ \ \ \ \ \ \ \ \ bindings\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01541}01541\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ \mbox{\hyperlink{consspaceobject_8h_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01542}01542\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ symbol,}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01543}01543\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_a44a5860734b40a3b74b9bcf681422017}{eval\_form}}(\ frame,\ frame\_pointer,\ \mbox{\hyperlink{consspaceobject_8h_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}(\ pair\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01544}01544\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bindings\ )\ ),\ bindings\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01545}01545\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01546}01546\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01547}01547\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01548}01548\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_a24b5ba8eb0cb1705e44fdf3cd90d6f75}{throw\_exception}}(\ \mbox{\hyperlink{consspaceobject_8h_a9e4202c8555763ca9a119f0d63a058cd}{c\_string\_to\_lisp\_string}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01549}01549\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ L\textcolor{stringliteral}{"{}Let:\ cannot\ bind,\ not\ a\ symbol"{}}\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01550}01550\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ frame\_pointer\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01551}01551\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01552}01552\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01553}01553\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01554}01554\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01555}01555\ \ \ \ \ \textcolor{comment}{/*\ i.e.,\ no\ exception\ yet\ */}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01556}01556\ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keywordtype}{int}\ form\ =\ 1;\ !\mbox{\hyperlink{consspaceobject_8h_a08d81da027288f19974af4e6bbb1e99e}{exceptionp}}(\ result\ )\ \&\&\ form\ <\ frame-\/>args;\ form++\ )\ \{}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01557}01557\ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01558}01558\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lispops_8c_a44a5860734b40a3b74b9bcf681422017}{eval\_form}}(\ frame,\ frame\_pointer,\ \mbox{\hyperlink{stack_8c_a6e989b705aea0873495c7259121e0e33}{fetch\_arg}}(\ frame,\ form\ ),}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01559}01559\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bindings\ );}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01560}01560\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01561}01561\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01562}01562\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01563}01563\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01564}01564\ \}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01565}01565\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01566}01566\ \textcolor{comment}{//\ struct\ cons\_pointer\ c\_concat(\ struct\ cons\_pointer\ a,\ struct\ cons\_pointer\ b)\ \{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01567}01567\ \textcolor{comment}{//\ \ \ \ \ struct\ cons\_pointer\ result\ =\ b;}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01568}01568\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01569}01569\ \textcolor{comment}{//\ \ \ \ \ if\ (\ nilp(\ b.tag.value))\ \{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01570}01570\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ result\ =\ make\_cons(\ a,\ b);}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01571}01571\ \textcolor{comment}{//\ \ \ \ \ \}\ else\ \{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01572}01572\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ if\ (\ !\ nilp(\ a))\ \{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01573}01573\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ \ \ if\ (a.tag.value\ ==\ b.tag.value)\ \{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01574}01574\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01575}01575\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ cons\_pointer\ tail\ =\ c\_concat(\ c\_cdr(\ a),\ b);}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01576}01576\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01577}01577\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ switch\ (\ a.tag.value)\ \{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01578}01578\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ case\ CONSTV:}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01579}01579\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ make\_cons(\ c\_car(\ a),\ tail);}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01580}01580\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ break;}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01581}01581\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ case\ KEYTV:}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01582}01582\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ case\ STRINGTV:}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01583}01583\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ case\ SYMBOLTV:}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01584}01584\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ make\_string\_like\_thing()}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01585}01585\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01586}01586\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01587}01587\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01588}01588\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ else\ \{}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01589}01589\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ //\ throw\ an\ exception}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01590}01590\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ \ \ \}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01591}01591\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01592}01592\ \textcolor{comment}{//\ \ \ \ \ \}}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01593}01593\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01594}01594\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01595}01595\ }
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01596}01596\ \textcolor{comment}{//\ \ \ \ \ return\ result;}}
\DoxyCodeLine{\Hypertarget{lispops_8c_source_l01597}01597\ \textcolor{comment}{//\ \}}}

\end{DoxyCode}
