\doxysection{consspaceobject.\+c}
\hypertarget{consspaceobject_8c_source}{}\label{consspaceobject_8c_source}\index{workspace/post-\/scarcity/src/memory/consspaceobject.c@{workspace/post-\/scarcity/src/memory/consspaceobject.c}}
\mbox{\hyperlink{consspaceobject_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00001}00001\ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00002}00002\ \textcolor{comment}{\ *\ \ consspaceobject.c}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00003}00003\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00004}00004\ \textcolor{comment}{\ *\ \ Structures\ common\ to\ all\ cons\ space\ objects.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00005}00005\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00006}00006\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00007}00007\ \textcolor{comment}{\ *\ \ (c)\ 2017\ Simon\ Brooke\ <simon@journeyman.cc>}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00008}00008\ \textcolor{comment}{\ *\ \ Licensed\ under\ GPL\ version\ 2.0,\ or,\ at\ your\ option,\ any\ later\ version.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00009}00009\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00010}00010\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00011}00011\ \textcolor{preprocessor}{\#include\ <stdint.h>}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00012}00012\ \textcolor{preprocessor}{\#include\ <stdio.h>}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00013}00013\ \textcolor{preprocessor}{\#include\ <stdlib.h>}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00014}00014\ \textcolor{preprocessor}{\#include\ <string.h>}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00015}00015\ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00016}00016\ \textcolor{comment}{\ *\ wide\ characters}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00017}00017\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00018}00018\ \textcolor{preprocessor}{\#include\ <wchar.h>}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00019}00019\ \textcolor{preprocessor}{\#include\ <wctype.h>}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00020}00020\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00021}00021\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{authorise_8h}{authorise.h}}"{}}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00022}00022\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{debug_8h}{debug.h}}"{}}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00023}00023\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{print_8h}{io/print.h}}"{}}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00024}00024\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{conspage_8h}{memory/conspage.h}}"{}}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00025}00025\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{consspaceobject_8h}{memory/consspaceobject.h}}"{}}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00026}00026\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{stack_8h}{memory/stack.h}}"{}}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00027}00027\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{vectorspace_8h}{memory/vectorspace.h}}"{}}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00028}00028\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{intern_8h}{ops/intern.h}}"{}}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00029}00029\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00030}00030\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00031}00031\ \textcolor{comment}{\ *\ True\ if\ the\ value\ of\ the\ tag\ on\ the\ cell\ at\ this\ \`{}pointer`\ is\ this\ \`{}value`,}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00032}00032\ \textcolor{comment}{\ *\ or,\ if\ the\ tag\ of\ the\ cell\ is\ \`{}VECP`,\ if\ the\ value\ of\ the\ tag\ of\ the}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00033}00033\ \textcolor{comment}{\ *\ vectorspace\ object\ indicated\ by\ the\ cell\ is\ this\ \`{}value`,\ else\ false.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00034}00034\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00035}\mbox{\hyperlink{consspaceobject_8c_a8670f58dc7ce45ff3f351a6023378e29}{00035}}\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{consspaceobject_8c_a8670f58dc7ce45ff3f351a6023378e29}{check\_tag}}(\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ pointer,\ uint32\_t\ value\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00036}00036\ \ \ \ \ \textcolor{keywordtype}{bool}\ result\ =\ \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00037}00037\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00038}00038\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ cell\ =\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ pointer\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00039}00039\ \ \ \ \ result\ =\ cell.\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value\ ==\ value;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00040}00040\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00041}00041\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ result\ ==\ \textcolor{keyword}{false}\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00042}00042\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ cell.\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value\ ==\ \mbox{\hyperlink{consspaceobject_8h_a0e422043a4797ec1a81f7460486e09da}{VECTORPOINTTV}}\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00043}00043\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{vectorspace_8h_structvector__space__object}{vector\_space\_object}}\ *vec\ =\ \mbox{\hyperlink{vectorspace_8h_a6961330e553c390cec21939135c8c124}{pointer\_to\_vso}}(\ pointer\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00044}00044\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00045}00045\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ vec\ !=\ NULL\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00046}00046\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ vec-\/>\mbox{\hyperlink{vectorspace_8h_ab85f7d1e94d2f1083b6ce5a136c859f2}{header}}.\mbox{\hyperlink{vectorspace_8h_ad427b8802abb07e6d40728768115d127}{tag}}.value\ ==\ value;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00047}00047\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00048}00048\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00049}00049\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00050}00050\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00051}00051\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00052}00052\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00053}00053\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00054}00054\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00055}00055\ \textcolor{comment}{\ *\ increment\ the\ reference\ count\ of\ the\ object\ at\ this\ cons\ pointer.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00056}00056\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00057}00057\ \textcolor{comment}{\ *\ You\ can't\ roll\ over\ the\ reference\ count.\ Once\ it\ hits\ the\ maximum}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00058}00058\ \textcolor{comment}{\ *\ value\ you\ cannot\ increment\ further.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00059}00059\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00060}00060\ \textcolor{comment}{\ *\ Returns\ the\ \`{}pointer`.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00061}00061\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00062}\mbox{\hyperlink{consspaceobject_8c_aa38b760ee4493c5d98400e04db3c8d47}{00062}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{consspaceobject_8c_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ pointer\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00063}00063\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ pointer\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00064}00064\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00065}00065\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a86988a65e0d3ece7990c032c159786d6}{count}}\ <\ \mbox{\hyperlink{consspaceobject_8h_aabf88ef23e0f4e66c392edae710c9469}{MAXREFERENCE}}\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00066}00066\ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a86988a65e0d3ece7990c032c159786d6}{count}}++;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00067}00067\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00068}00068\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00069}00069\ \ \ \ \ \textcolor{keywordflow}{return}\ pointer;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00070}00070\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00071}00071\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00072}00072\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00073}00073\ \textcolor{comment}{\ *\ Decrement\ the\ reference\ count\ of\ the\ object\ at\ this\ cons\ pointer.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00074}00074\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00075}00075\ \textcolor{comment}{\ *\ If\ a\ count\ has\ reached\ MAXREFERENCE\ it\ cannot\ be\ decremented.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00076}00076\ \textcolor{comment}{\ *\ If\ a\ count\ is\ decremented\ to\ zero\ the\ cell\ should\ be\ freed.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00077}00077\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00078}00078\ \textcolor{comment}{\ *\ Returns\ the\ \`{}pointer`,\ or,\ if\ the\ cell\ has\ been\ freed,\ NIL.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00079}00079\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00080}\mbox{\hyperlink{consspaceobject_8c_aecb4a52465163e0377356bcaa85539bf}{00080}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{consspaceobject_8c_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ pointer\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00081}00081\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ pointer\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00082}00082\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00083}00083\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a86988a65e0d3ece7990c032c159786d6}{count}}\ >\ 0\ \&\&\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a86988a65e0d3ece7990c032c159786d6}{count}}\ !=\ UINT32\_MAX\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00084}00084\ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a86988a65e0d3ece7990c032c159786d6}{count}}-\/-\/;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00085}00085\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00086}00086\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a86988a65e0d3ece7990c032c159786d6}{count}}\ ==\ 0\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00087}00087\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{conspage_8c_a7cf88f8487cd8fef12fdd78a2aaa6216}{free\_cell}}(\ pointer\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00088}00088\ \ \ \ \ \ \ \ \ \ \ \ \ pointer\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00089}00089\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00090}00090\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00091}00091\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00092}00092\ \ \ \ \ \textcolor{keywordflow}{return}\ pointer;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00093}00093\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00094}00094\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00095}00095\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00096}00096\ \textcolor{comment}{\ *\ Get\ the\ Lisp\ type\ of\ the\ single\ argument.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00097}00097\ \textcolor{comment}{\ *\ @param\ pointer\ a\ pointer\ to\ the\ object\ whose\ type\ is\ requested.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00098}00098\ \textcolor{comment}{\ *\ @return\ As\ a\ Lisp\ string,\ the\ tag\ of\ the\ object\ which\ is\ at\ that\ pointer.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00099}00099\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00100}\mbox{\hyperlink{consspaceobject_8c_ad6da5748c65be5613d86664948ecc5ab}{00100}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{consspaceobject_8c_ad6da5748c65be5613d86664948ecc5ab}{c\_type}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ pointer\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00101}00101\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00102}00102\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ cell\ =\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ pointer\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00103}00103\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00104}00104\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ strncmp(\ (\ \textcolor{keywordtype}{char}\ *\ )\ \&cell.\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.bytes,\ \mbox{\hyperlink{consspaceobject_8h_a186e5138c18f54c1dac3b2fb2217f3dd}{VECTORPOINTTAG}},\ \mbox{\hyperlink{consspaceobject_8h_a546e2bc33a194d5620b6c255902091ee}{TAGLENGTH}}\ )\ ==}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00105}00105\ \ \ \ \ \ \ \ \ \ 0\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00106}00106\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{vectorspace_8h_structvector__space__object}{vector\_space\_object}}\ *vec\ =\ \mbox{\hyperlink{vectorspace_8h_a6961330e553c390cec21939135c8c124}{pointer\_to\_vso}}(\ pointer\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00107}00107\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00108}00108\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keywordtype}{int}\ i\ =\ \mbox{\hyperlink{consspaceobject_8h_a546e2bc33a194d5620b6c255902091ee}{TAGLENGTH}}\ -\/\ 1;\ i\ >=\ 0;\ i-\/-\/\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00109}00109\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00110}00110\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_a6e09249d678524caf40f18ac273c8157}{make\_string}}(\ (\ \textcolor{keywordtype}{wchar\_t}\ )\ vec-\/>\mbox{\hyperlink{vectorspace_8h_ab85f7d1e94d2f1083b6ce5a136c859f2}{header}}.\mbox{\hyperlink{vectorspace_8h_ad427b8802abb07e6d40728768115d127}{tag}}.bytes[i],\ result\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00111}00111\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00112}00112\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00113}00113\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keywordtype}{int}\ i\ =\ \mbox{\hyperlink{consspaceobject_8h_a546e2bc33a194d5620b6c255902091ee}{TAGLENGTH}}\ -\/\ 1;\ i\ >=\ 0;\ i-\/-\/\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00114}00114\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a6e09249d678524caf40f18ac273c8157}{make\_string}}(\ (\ \textcolor{keywordtype}{wchar\_t}\ )\ cell.\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.bytes[i],\ result\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00115}00115\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00116}00116\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00117}00117\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00118}00118\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00119}00119\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00120}00120\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00121}00121\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00122}00122\ \textcolor{comment}{\ *\ Implementation\ of\ car\ in\ C.\ If\ arg\ is\ not\ a\ cons,\ or\ the\ current\ user\ is\ not}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00123}00123\ \textcolor{comment}{\ *\ authorised\ to\ read\ it,\ does\ not\ error\ but\ returns\ nil.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00124}00124\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00125}\mbox{\hyperlink{consspaceobject_8c_ac683bad260c334cc2e5fad1f7d0c7b52}{00125}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{consspaceobject_8c_ac683bad260c334cc2e5fad1f7d0c7b52}{c\_car}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ arg\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00126}00126\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00127}00127\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00128}00128\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a1c1832c6670baed0272a78d536a88c78}{truep}}(\ \mbox{\hyperlink{authorise_8c_ac7a62632b2812cbcf9a3571875529b9b}{authorised}}(\ arg,\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}}\ )\ )\ \&\&\ \mbox{\hyperlink{consspaceobject_8h_a69012ee77381bb1d51aafa1002f64430}{consp}}(\ arg\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00129}00129\ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ arg\ ).payload.cons.car;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00130}00130\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00131}00131\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00132}00132\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00133}00133\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00134}00134\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00135}00135\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00136}00136\ \textcolor{comment}{\ *\ Implementation\ of\ cdr\ in\ C.\ If\ arg\ is\ not\ a\ sequence,\ or\ the\ current\ user\ is}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00137}00137\ \textcolor{comment}{\ *\ not\ authorised\ to\ read\ it,does\ not\ error\ but\ returns\ nil.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00138}00138\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00139}\mbox{\hyperlink{consspaceobject_8c_a36feb8e8c928ce9ffb6fb80167cc1f04}{00139}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{consspaceobject_8c_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ arg\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00140}00140\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00141}00141\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00142}00142\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a1c1832c6670baed0272a78d536a88c78}{truep}}(\ \mbox{\hyperlink{authorise_8c_ac7a62632b2812cbcf9a3571875529b9b}{authorised}}(\ arg,\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}}\ )\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00143}00143\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ arg\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00144}00144\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00145}00145\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00146}00146\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a6a5f5b042aa23509409e0fd00a91ac2e}{CONSTV}}:}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00147}00147\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.cons.cdr;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00148}00148\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00149}00149\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a027cdb41b87676d9d2fb55dd058c0078}{KEYTV}}:}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00150}00150\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a3a4310cf1909a3b9c167a945ef71d3e1}{STRINGTV}}:}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00151}00151\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a1cef10aef0e023839dbcfe6d5c305393}{SYMBOLTV}}:}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00152}00152\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.string.cdr;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00153}00153\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00154}00154\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00155}00155\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00156}00156\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00157}00157\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00158}00158\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00159}00159\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00160}00160\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00161}00161\ \textcolor{comment}{\ *\ Implementation\ of\ \`{}length`\ in\ C.\ If\ arg\ is\ not\ a\ cons,\ does\ not\ error\ but}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00162}00162\ \textcolor{comment}{\ *\ returns\ 0.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00163}00163\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00164}\mbox{\hyperlink{consspaceobject_8c_a55a8301f814fabe8c01eb92ba4003d3c}{00164}}\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{consspaceobject_8c_a55a8301f814fabe8c01eb92ba4003d3c}{c\_length}}(\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ arg\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00165}00165\ \ \ \ \ \textcolor{keywordtype}{int}\ result\ =\ 0;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00166}00166\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00167}00167\ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ c\ =\ arg;\ !\mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ c\ );\ c\ =\ \mbox{\hyperlink{consspaceobject_8c_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\_cdr}}(\ c\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00168}00168\ \ \ \ \ \ \ \ \ result++;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00169}00169\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00170}00170\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00171}00171\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00172}00172\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00173}00173\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00174}00174\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00175}00175\ \textcolor{comment}{\ *\ Construct\ a\ cons\ cell\ from\ this\ pair\ of\ pointers.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00176}00176\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00177}\mbox{\hyperlink{consspaceobject_8c_afff9c83c8c250837b5737c11e21cc4ca}{00177}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{consspaceobject_8c_afff9c83c8c250837b5737c11e21cc4ca}{make\_cons}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ car,}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00178}00178\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ cdr\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00179}00179\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ pointer\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00180}00180\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00181}00181\ \ \ \ \ pointer\ =\ \mbox{\hyperlink{conspage_8c_a04ba7c874b05e9789d0aca9ee6b106a7}{allocate\_cell}}(\ \mbox{\hyperlink{consspaceobject_8h_a6a5f5b042aa23509409e0fd00a91ac2e}{CONSTV}}\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00182}00182\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00183}00183\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ pointer\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00184}00184\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00185}00185\ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ car\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00186}00186\ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ cdr\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00187}00187\ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.cons.car\ =\ car;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00188}00188\ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.cons.cdr\ =\ cdr;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00189}00189\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00190}00190\ \ \ \ \ \textcolor{keywordflow}{return}\ pointer;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00191}00191\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00192}00192\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00193}00193\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00194}00194\ \textcolor{comment}{\ *\ Construct\ an\ exception\ cell.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00195}00195\ \textcolor{comment}{\ *\ @param\ message\ should\ be\ a\ lisp\ string\ describing\ the\ problem,\ but\ actually}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00196}00196\ \textcolor{comment}{\ *\ any\ cons\ pointer\ will\ do;}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00197}00197\ \textcolor{comment}{\ *\ @param\ frame\_pointer\ should\ be\ the\ pointer\ to\ the\ frame\ in\ which\ the}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00198}00198\ \textcolor{comment}{\ *\ exception\ occurred.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00199}00199\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00200}\mbox{\hyperlink{consspaceobject_8c_a2a1abab0c80ab1e97f507bc4eab02523}{00200}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{consspaceobject_8c_a2a1abab0c80ab1e97f507bc4eab02523}{make\_exception}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ message,}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00201}00201\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ frame\_pointer\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00202}00202\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00203}00203\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ pointer\ =\ \mbox{\hyperlink{conspage_8c_a04ba7c874b05e9789d0aca9ee6b106a7}{allocate\_cell}}(\ \mbox{\hyperlink{consspaceobject_8h_aa66d7497baaa8e7a255c448e8b08e5ee}{EXCEPTIONTV}}\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00204}00204\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ pointer\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00205}00205\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00206}00206\ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ frame\_pointer\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00207}00207\ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.exception.\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}\ =\ message;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00208}00208\ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.exception.frame\ =\ frame\_pointer;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00209}00209\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00210}00210\ \ \ \ \ result\ =\ pointer;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00211}00211\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00212}00212\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00213}00213\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00214}00214\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00215}00215\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00216}00216\ \textcolor{comment}{\ *\ Construct\ a\ cell\ which\ points\ to\ an\ executable\ Lisp\ function.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00217}00217\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00218}\mbox{\hyperlink{consspaceobject_8c_a7a40b760e96bbba53d22c23cea7331be}{00218}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{consspaceobject_8c_a7a40b760e96bbba53d22c23cea7331be}{make\_function}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ meta,}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00219}00219\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ (\ *executable\ )\ (\ \textcolor{keyword}{struct}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00220}00220\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00221}00221\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *,}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00222}00222\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00223}00223\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}},}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00224}00224\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00225}00225\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ )\ )\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00226}00226\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00227}00227\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ pointer\ =\ \mbox{\hyperlink{conspage_8c_a04ba7c874b05e9789d0aca9ee6b106a7}{allocate\_cell}}(\ \mbox{\hyperlink{consspaceobject_8h_a291e48d2612ab2b3b86fa677d13824b3}{FUNCTIONTV}}\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00228}00228\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ pointer\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00229}00229\ \ \ \ \ \mbox{\hyperlink{consspaceobject_8c_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ meta\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00230}00230\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00231}00231\ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.function.meta\ =\ meta;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00232}00232\ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.function.executable\ =\ executable;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00233}00233\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00234}00234\ \ \ \ \ \textcolor{keywordflow}{return}\ pointer;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00235}00235\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00236}00236\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00237}00237\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00238}00238\ \textcolor{comment}{\ *\ Construct\ a\ lambda\ (interpretable\ source)\ cell}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00239}00239\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00240}\mbox{\hyperlink{consspaceobject_8c_a315945df5ea6902613f4a4a6803c72ac}{00240}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{consspaceobject_8c_a315945df5ea6902613f4a4a6803c72ac}{make\_lambda}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ args,}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00241}00241\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ body\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00242}00242\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ pointer\ =\ \mbox{\hyperlink{conspage_8c_a04ba7c874b05e9789d0aca9ee6b106a7}{allocate\_cell}}(\ \mbox{\hyperlink{consspaceobject_8h_ad4ddcddc7db74650f23a33d0e970db30}{LAMBDATV}}\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00243}00243\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ pointer\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00244}00244\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00245}00245\ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ args\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00246}00246\ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ body\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00247}00247\ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.lambda.args\ =\ args;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00248}00248\ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.lambda.body\ =\ body;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00249}00249\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00250}00250\ \ \ \ \ \textcolor{keywordflow}{return}\ pointer;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00251}00251\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00252}00252\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00253}00253\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00254}00254\ \textcolor{comment}{\ *\ Construct\ an\ nlambda\ (interpretable\ source)\ cell;\ to\ a}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00255}00255\ \textcolor{comment}{\ *\ lambda\ as\ a\ special\ form\ is\ to\ a\ function.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00256}00256\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00257}\mbox{\hyperlink{consspaceobject_8c_ad8207dff3baf23366b5110ca4ae46bf7}{00257}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{consspaceobject_8c_ad8207dff3baf23366b5110ca4ae46bf7}{make\_nlambda}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ args,}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00258}00258\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ body\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00259}00259\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ pointer\ =\ \mbox{\hyperlink{conspage_8c_a04ba7c874b05e9789d0aca9ee6b106a7}{allocate\_cell}}(\ \mbox{\hyperlink{consspaceobject_8h_a7f953a7cdd4f2ce5eab1738da32536b3}{NLAMBDATV}}\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00260}00260\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00261}00261\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ pointer\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00262}00262\ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ args\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00263}00263\ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ body\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00264}00264\ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.lambda.args\ =\ args;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00265}00265\ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.lambda.body\ =\ body;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00266}00266\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00267}00267\ \ \ \ \ \textcolor{keywordflow}{return}\ pointer;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00268}00268\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00269}00269\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00270}00270\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00271}00271\ \textcolor{comment}{\ *\ Return\ a\ hash\ value\ for\ this\ string\ like\ thing.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00272}00272\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00273}00273\ \textcolor{comment}{\ *\ What's\ important\ here\ is\ that\ two\ strings\ with\ the\ same\ characters\ in\ the}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00274}00274\ \textcolor{comment}{\ *\ same\ order\ should\ have\ the\ same\ hash\ value,\ even\ if\ one\ was\ created\ using}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00275}00275\ \textcolor{comment}{\ *\ \`{}"{}foobar"{}`\ and\ the\ other\ by\ \`{}(append\ "{}foo"{}\ "{}bar"{})`.\ I\ *think*\ this\ function}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00276}00276\ \textcolor{comment}{\ *\ has\ that\ property.\ I\ doubt\ that\ it's\ the\ most\ efficient\ hash\ function\ to}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00277}00277\ \textcolor{comment}{\ *\ have\ that\ property.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00278}00278\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00279}00279\ \textcolor{comment}{\ *\ returns\ 0\ for\ things\ which\ are\ not\ string\ like.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00280}00280\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00281}\mbox{\hyperlink{consspaceobject_8c_a10cecbd3a3077f601359388153677000}{00281}}\ uint32\_t\ \mbox{\hyperlink{consspaceobject_8c_a10cecbd3a3077f601359388153677000}{calculate\_hash}}(\ wint\_t\ c,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ ptr\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00282}00282\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ ptr\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00283}00283\ \ \ \ \ uint32\_t\ result\ =\ 0;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00284}00284\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00285}00285\ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00286}00286\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a027cdb41b87676d9d2fb55dd058c0078}{KEYTV}}:}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00287}00287\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a3a4310cf1909a3b9c167a945ef71d3e1}{STRINGTV}}:}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00288}00288\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a1cef10aef0e023839dbcfe6d5c305393}{SYMBOLTV}}:}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00289}00289\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.string.cdr\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00290}00290\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ (\ uint32\_t\ )\ c;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00291}00291\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00292}00292\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00293}00293\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ (\ uint32\_t\ )\ c\ *}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00294}00294\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.string.hash\ )\ \&\ 0xffffffff;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00295}00295\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00296}00296\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00297}00297\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00298}00298\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00299}00299\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00300}00300\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00301}00301\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00302}00302\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00303}00303\ \textcolor{comment}{\ *\ Construct\ a\ string\ from\ this\ character\ (which\ later\ will\ be\ UTF)\ and}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00304}00304\ \textcolor{comment}{\ *\ this\ tail.\ A\ string\ is\ implemented\ as\ a\ flat\ list\ of\ cells\ each\ of\ which}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00305}00305\ \textcolor{comment}{\ *\ has\ one\ character\ and\ a\ pointer\ to\ the\ next;\ in\ the\ last\ cell\ the}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00306}00306\ \textcolor{comment}{\ *\ pointer\ to\ next\ is\ NIL.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00307}00307\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00308}\mbox{\hyperlink{consspaceobject_8c_a409cc41fa651c2200f7a291fbf65a941}{00308}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{consspaceobject_8c_a409cc41fa651c2200f7a291fbf65a941}{make\_string\_like\_thing}}(\ wint\_t\ c,\ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ tail,}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00309}00309\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint32\_t\ tag\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00310}00310\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ pointer\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00311}00311\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00312}00312\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a8670f58dc7ce45ff3f351a6023378e29}{check\_tag}}(\ tail,\ tag\ )\ ||\ \mbox{\hyperlink{consspaceobject_8h_a8670f58dc7ce45ff3f351a6023378e29}{check\_tag}}(\ tail,\ \mbox{\hyperlink{consspaceobject_8h_aa460b371cdb05b1db5afb10c39af3c47}{NILTV}}\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00313}00313\ \ \ \ \ \ \ \ \ pointer\ =\ \mbox{\hyperlink{conspage_8c_a04ba7c874b05e9789d0aca9ee6b106a7}{allocate\_cell}}(\ tag\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00314}00314\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ pointer\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00315}00315\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00316}00316\ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.string.character\ =\ c;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00317}00317\ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.string.cdr\ =\ tail;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00318}00318\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00319}00319\ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.string.hash\ =\ \mbox{\hyperlink{consspaceobject_8c_a10cecbd3a3077f601359388153677000}{calculate\_hash}}(\ c,\ tail\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00320}00320\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00321}00321\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ \(\backslash\)todo\ should\ throw\ an\ exception!}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00322}00322\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_aa335b357cde1ba7eb6e8a71955079aab}{debug\_printf}}(\ \mbox{\hyperlink{debug_8h_ab99ea81093661d24ffaaa4e85cb2387a}{DEBUG\_ALLOC}},}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00323}00323\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\textcolor{stringliteral}{"{}Warning:\ only\ NIL\ and\ \%4.4s\ can\ be\ prepended\ to\ \%4.4s\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00324}00324\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ tag,\ tag\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00325}00325\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00326}00326\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00327}00327\ \ \ \ \ \textcolor{keywordflow}{return}\ pointer;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00328}00328\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00329}00329\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00330}00330\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00331}00331\ \textcolor{comment}{\ *\ Construct\ a\ string\ from\ the\ character\ \`{}c`\ and\ this\ \`{}tail`.\ A\ string\ is}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00332}00332\ \textcolor{comment}{\ *\ implemented\ as\ a\ flat\ list\ of\ cells\ each\ of\ which\ has\ one\ character\ and\ a}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00333}00333\ \textcolor{comment}{\ *\ pointer\ to\ the\ next;\ in\ the\ last\ cell\ the\ pointer\ to\ next\ is\ NIL.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00334}00334\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00335}00335\ \textcolor{comment}{\ *\ @param\ c\ the\ character\ to\ add\ (prepend);}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00336}00336\ \textcolor{comment}{\ *\ @param\ tail\ the\ string\ which\ is\ being\ built.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00337}00337\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00338}\mbox{\hyperlink{consspaceobject_8c_a6e09249d678524caf40f18ac273c8157}{00338}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{consspaceobject_8c_a6e09249d678524caf40f18ac273c8157}{make\_string}}(\ wint\_t\ c,\ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ tail\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00339}00339\ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{consspaceobject_8h_a409cc41fa651c2200f7a291fbf65a941}{make\_string\_like\_thing}}(\ c,\ tail,\ \mbox{\hyperlink{consspaceobject_8h_a3a4310cf1909a3b9c167a945ef71d3e1}{STRINGTV}}\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00340}00340\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00341}00341\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00342}00342\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00343}00343\ \textcolor{comment}{\ *\ Construct\ a\ symbol\ or\ keyword\ from\ the\ character\ \`{}c`\ and\ this\ \`{}tail`.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00344}00344\ \textcolor{comment}{\ *\ Each\ is\ internally\ identical\ to\ a\ string\ except\ for\ having\ a\ different\ tag.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00345}00345\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00346}00346\ \textcolor{comment}{\ *\ @param\ c\ the\ character\ to\ add\ (prepend);}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00347}00347\ \textcolor{comment}{\ *\ @param\ tail\ the\ symbol\ which\ is\ being\ built.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00348}00348\ \textcolor{comment}{\ *\ @param\ tag\ the\ tag\ to\ use:\ expected\ to\ be\ "{}SYMB"{}\ or\ "{}KEYW"{}}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00349}00349\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00350}\mbox{\hyperlink{consspaceobject_8c_a32fb0eeebd407b817a2756324d123927}{00350}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{consspaceobject_8c_a32fb0eeebd407b817a2756324d123927}{make\_symbol\_or\_key}}(\ wint\_t\ c,\ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ tail,}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00351}00351\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint32\_t\ tag\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00352}00352\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00353}00353\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00354}00354\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ tag\ ==\ \mbox{\hyperlink{consspaceobject_8h_a1cef10aef0e023839dbcfe6d5c305393}{SYMBOLTV}}\ ||\ tag\ ==\ \mbox{\hyperlink{consspaceobject_8h_a027cdb41b87676d9d2fb55dd058c0078}{KEYTV}}\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00355}00355\ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a409cc41fa651c2200f7a291fbf65a941}{make\_string\_like\_thing}}(\ c,\ tail,\ tag\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00356}00356\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00357}00357\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ tag\ ==\ \mbox{\hyperlink{consspaceobject_8h_a027cdb41b87676d9d2fb55dd058c0078}{KEYTV}}\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00358}00358\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ r\ =\ \mbox{\hyperlink{intern_8c_a8b39bfc8df32e0a71870654ab963ba09}{internedp}}(\ result,\ \mbox{\hyperlink{intern_8c_aca78d8df225fa73eef263164d8427430}{oblist}}\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00359}00359\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00360}00360\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ r\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00361}00361\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{intern_8c_ac9ad50b4f804b350122712c80416bbf9}{intern}}(\ result,\ \mbox{\hyperlink{intern_8c_aca78d8df225fa73eef263164d8427430}{oblist}}\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00362}00362\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00363}00363\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ r;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00364}00364\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00365}00365\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00366}00366\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00367}00367\ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00368}00368\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_a2a1abab0c80ab1e97f507bc4eab02523}{make\_exception}}(\ \mbox{\hyperlink{consspaceobject_8h_a9e4202c8555763ca9a119f0d63a058cd}{c\_string\_to\_lisp\_string}}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00369}00369\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ L\textcolor{stringliteral}{"{}Unexpected\ tag\ when\ making\ symbol\ or\ key."{}}\ ),}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00370}00370\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}}\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00371}00371\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00372}00372\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00373}00373\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00374}00374\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00375}00375\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00376}00376\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00377}00377\ \textcolor{comment}{\ *\ Construct\ a\ cell\ which\ points\ to\ an\ executable\ Lisp\ special\ form.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00378}00378\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00379}\mbox{\hyperlink{consspaceobject_8c_a02cdb935e4af41bebf585e5dc02078ee}{00379}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{consspaceobject_8c_a02cdb935e4af41bebf585e5dc02078ee}{make\_special}}(\ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ meta,}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00380}00380\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ struct\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ (\ *executable\ )\ (\ \textcolor{keyword}{struct}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00381}00381\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\_frame}}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00382}00382\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *frame,}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00383}00383\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00384}00384\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}},}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00385}00385\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00386}00386\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00387}00387\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ env\ )\ )\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00388}00388\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00389}00389\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ pointer\ =\ \mbox{\hyperlink{conspage_8c_a04ba7c874b05e9789d0aca9ee6b106a7}{allocate\_cell}}(\ \mbox{\hyperlink{consspaceobject_8h_a0569cc92977f62ba26b81c00e661b973}{SPECIALTV}}\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00390}00390\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ pointer\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00391}00391\ \ \ \ \ \mbox{\hyperlink{consspaceobject_8c_aa38b760ee4493c5d98400e04db3c8d47}{inc\_ref}}(\ meta\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00392}00392\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00393}00393\ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.special.meta\ =\ meta;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00394}00394\ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.special.executable\ =\ executable;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00395}00395\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00396}00396\ \ \ \ \ \textcolor{keywordflow}{return}\ pointer;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00397}00397\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00398}00398\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00399}00399\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00400}00400\ \textcolor{comment}{\ *\ Construct\ a\ cell\ which\ points\ to\ a\ stream\ open\ for\ reading.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00401}00401\ \textcolor{comment}{\ *\ @param\ input\ the\ C\ stream\ to\ wrap.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00402}00402\ \textcolor{comment}{\ *\ @param\ metadata\ a\ pointer\ to\ an\ associaton\ containing\ metadata\ on\ the\ stream.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00403}00403\ \textcolor{comment}{\ *\ @return\ a\ pointer\ to\ the\ new\ read\ stream.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00404}00404\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00405}\mbox{\hyperlink{consspaceobject_8c_abc8581c0068fa9c1a6691336d88c11e5}{00405}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{consspaceobject_8c_abc8581c0068fa9c1a6691336d88c11e5}{make\_read\_stream}}(\ \mbox{\hyperlink{fopen_8h_structfcurl__data}{URL\_FILE}}\ *input,}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00406}00406\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ metadata\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00407}00407\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ pointer\ =\ \mbox{\hyperlink{conspage_8c_a04ba7c874b05e9789d0aca9ee6b106a7}{allocate\_cell}}(\ \mbox{\hyperlink{consspaceobject_8h_adaf34dffde713283cf269225ee0343a8}{READTV}}\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00408}00408\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ pointer\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00409}00409\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00410}00410\ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.stream.stream\ =\ input;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00411}00411\ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.stream.meta\ =\ metadata;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00412}00412\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00413}00413\ \ \ \ \ \textcolor{keywordflow}{return}\ pointer;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00414}00414\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00415}00415\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00416}00416\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00417}00417\ \textcolor{comment}{\ *\ Construct\ a\ cell\ which\ points\ to\ a\ stream\ open\ for\ writing.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00418}00418\ \textcolor{comment}{\ *\ @param\ output\ the\ C\ stream\ to\ wrap.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00419}00419\ \textcolor{comment}{\ *\ @param\ metadata\ a\ pointer\ to\ an\ associaton\ containing\ metadata\ on\ the\ stream.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00420}00420\ \textcolor{comment}{\ *\ @return\ a\ pointer\ to\ the\ new\ read\ stream.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00421}00421\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00422}\mbox{\hyperlink{consspaceobject_8c_a9d49b726c4a7af147d27492b43751785}{00422}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{consspaceobject_8c_a9d49b726c4a7af147d27492b43751785}{make\_write\_stream}}(\ \mbox{\hyperlink{fopen_8h_structfcurl__data}{URL\_FILE}}\ *output,}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00423}00423\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ metadata\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00424}00424\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ pointer\ =\ \mbox{\hyperlink{conspage_8c_a04ba7c874b05e9789d0aca9ee6b106a7}{allocate\_cell}}(\ \mbox{\hyperlink{consspaceobject_8h_ad677447e4a46d52d256d0fe671e2d663}{WRITETV}}\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00425}00425\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ pointer\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00426}00426\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00427}00427\ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.stream.stream\ =\ output;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00428}00428\ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.stream.meta\ =\ metadata;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00429}00429\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00430}00430\ \ \ \ \ \textcolor{keywordflow}{return}\ pointer;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00431}00431\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00432}00432\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00433}00433\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00434}00434\ \textcolor{comment}{\ *\ Return\ a\ lisp\ keyword\ representation\ of\ this\ wide\ character\ string.\ In}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00435}00435\ \textcolor{comment}{\ *\ keywords,\ I\ am\ accepting\ only\ lower\ case\ characters\ and\ numbers.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00436}00436\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00437}\mbox{\hyperlink{consspaceobject_8c_a36a68d265999acf02988326ec4c53fc2}{00437}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{consspaceobject_8c_a36a68d265999acf02988326ec4c53fc2}{c\_string\_to\_lisp\_keyword}}(\ wchar\_t\ *symbol\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00438}00438\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00439}00439\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00440}00440\ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keywordtype}{int}\ i\ =\ wcslen(\ symbol\ )\ -\/\ 1;\ i\ >=\ 0;\ i-\/-\/\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00441}00441\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{wchar\_t}\ c\ =\ towlower(\ symbol[i]\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00442}00442\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00443}00443\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ iswalnum(\ c\ )\ ||\ c\ ==\ L\textcolor{charliteral}{'-\/'}\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00444}00444\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a98ad709d950bf4f099fff7cba42b7091}{make\_keyword}}(\ c,\ result\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00445}00445\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00446}00446\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00447}00447\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00448}00448\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00449}00449\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00450}00450\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00451}00451\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00452}00452\ \textcolor{comment}{\ *\ Return\ a\ lisp\ string\ representation\ of\ this\ wide\ character\ string.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00453}00453\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00454}\mbox{\hyperlink{consspaceobject_8c_a9e4202c8555763ca9a119f0d63a058cd}{00454}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{consspaceobject_8c_a9e4202c8555763ca9a119f0d63a058cd}{c\_string\_to\_lisp\_string}}(\ wchar\_t\ *string\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00455}00455\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00456}00456\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00457}00457\ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keywordtype}{int}\ i\ =\ wcslen(\ \textcolor{keywordtype}{string}\ )\ -\/\ 1;\ i\ >=\ 0;\ i-\/-\/\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00458}00458\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ iswprint(\ \textcolor{keywordtype}{string}[i]\ )\ \&\&\ \textcolor{keywordtype}{string}[i]\ !=\ \textcolor{charliteral}{'"{}'}\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00459}00459\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{consspaceobject_8c_a6e09249d678524caf40f18ac273c8157}{make\_string}}(\ \textcolor{keywordtype}{string}[i],\ result\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00460}00460\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00461}00461\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00462}00462\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00463}00463\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00464}00464\ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00465}00465\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00466}00466\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00467}00467\ \textcolor{comment}{\ *\ Return\ a\ lisp\ symbol\ representation\ of\ this\ wide\ character\ string.}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00468}00468\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00469}\mbox{\hyperlink{consspaceobject_8c_ac18813a5587f81344b2a35977657b09b}{00469}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{consspaceobject_8c_ac18813a5587f81344b2a35977657b09b}{c\_string\_to\_lisp\_symbol}}(\ wchar\_t\ *symbol\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00470}00470\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00471}00471\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00472}00472\ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keywordtype}{int}\ i\ =\ wcslen(\ symbol\ );\ i\ >\ 0;\ i-\/-\/\ )\ \{}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00473}00473\ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{consspaceobject_8h_aa8264e2033e27c809c4b0dd20a26bf94}{make\_symbol}}(\ symbol[i\ -\/\ 1],\ result\ );}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00474}00474\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00475}00475\ }
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00476}00476\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{consspaceobject_8c_source_l00477}00477\ \}}

\end{DoxyCode}
