Things working much better now. assoc works. Currently printing of
string-like-things does not work, but I suspect that's shallow.
This commit is contained in:
parent
02a4bc3e28
commit
9a0f186f29
13 changed files with 400 additions and 38 deletions
|
|
@ -41,7 +41,7 @@ bool c_eq( struct pso_pointer a, struct pso_pointer b ) {
|
|||
}
|
||||
|
||||
bool c_equal( struct pso_pointer a, struct pso_pointer b ) {
|
||||
bool result = false;
|
||||
bool result = true;
|
||||
|
||||
if ( c_eq( a, b ) ) {
|
||||
result = true;
|
||||
|
|
@ -66,15 +66,19 @@ bool c_equal( struct pso_pointer a, struct pso_pointer b ) {
|
|||
case KEYTV:
|
||||
case STRINGTV:
|
||||
case SYMBOLTV:
|
||||
while ( !nilp( a ) && !nilp( b ) ) {
|
||||
while ( result && !nilp( a ) && !nilp( b ) ) {
|
||||
if ( pointer_to_object( a )->payload.string.character ==
|
||||
pointer_to_object( b )->payload.string.character ) {
|
||||
a = c_cdr( a );
|
||||
b = c_cdr( b );
|
||||
} else {
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
result = nilp( a ) && nilp( b );
|
||||
result = result && nilp( a ) && nilp( b );
|
||||
break;
|
||||
default:
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue