And the answer was, eval is a function, not a special form.
This commit is contained in:
parent
7f29c11592
commit
1307c65e94
14
src/init.c
14
src/init.c
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* init.c
|
||||
*
|
||||
* Start up and initialise the environement - just enough to get working
|
||||
* Start up and initialise the environement - just enough to get working
|
||||
* and (ultimately) hand off to the executive.
|
||||
*
|
||||
*
|
||||
|
@ -37,7 +37,7 @@ void bind_special( char *name, struct cons_pointer ( *executable )
|
|||
|
||||
int main( int argc, char *argv[] ) {
|
||||
/*
|
||||
* attempt to set wide character acceptance on all streams
|
||||
* attempt to set wide character acceptance on all streams
|
||||
*/
|
||||
fwide( stdin, 1 );
|
||||
fwide( stdout, 1 );
|
||||
|
@ -69,14 +69,14 @@ int main( int argc, char *argv[] ) {
|
|||
initialise_cons_pages( );
|
||||
|
||||
/*
|
||||
* privileged variables (keywords)
|
||||
* privileged variables (keywords)
|
||||
*/
|
||||
|
||||
deep_bind( c_string_to_lisp_symbol( "nil" ), NIL );
|
||||
deep_bind( c_string_to_lisp_symbol( "t" ), TRUE );
|
||||
|
||||
/*
|
||||
* primitive function operations
|
||||
* primitive function operations
|
||||
*/
|
||||
bind_function( "add", &lisp_add );
|
||||
bind_function( "apply", &lisp_apply );
|
||||
|
@ -98,14 +98,14 @@ int main( int argc, char *argv[] ) {
|
|||
bind_function( "-", &lisp_subtract );
|
||||
|
||||
/*
|
||||
* primitive special forms
|
||||
* primitive special forms
|
||||
*/
|
||||
bind_special( "cond", &lisp_cond );
|
||||
bind_special( "eval", &lisp_eval );
|
||||
bind_function( "eval", &lisp_eval );
|
||||
bind_special( "quote", &lisp_quote );
|
||||
|
||||
|
||||
/* bind the oblist last, at this stage. Something clever needs to be done
|
||||
/* bind the oblist last, at this stage. Something clever needs to be done
|
||||
* here and I'm not sure what it is. */
|
||||
deep_bind( c_string_to_lisp_symbol( "oblist" ), oblist );
|
||||
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
expected='5'
|
||||
actual=`echo "(eval '(add 2 3))" | target/psse 2> /dev/null | head -2 | tail -1`
|
||||
|
||||
if [ "${expected}" = "${actual}" ]
|
||||
then
|
||||
echo "OK"
|
||||
else
|
||||
echo "Fail: expected '${expected}', got '${actual}'"
|
||||
exit 1
|
||||
fi
|
Loading…
Reference in a new issue