Many more ops written, and it compiles. Nothing works yet.
This commit is contained in:
parent
f5f8e38b91
commit
c9f50572ab
17 changed files with 290 additions and 71 deletions
|
|
@ -39,13 +39,14 @@ struct pso_pointer reverse( struct pso_pointer sequence ) {
|
|||
struct pso_pointer result = nil;
|
||||
|
||||
for ( struct pso_pointer cursor = sequence; !nilp( sequence );
|
||||
cursor = cdr( cursor ) ) {
|
||||
cursor = c_cdr( cursor ) ) {
|
||||
struct pso2 *object = pointer_to_object( cursor );
|
||||
switch ( get_tag_value( cursor ) ) {
|
||||
case CONSTV:
|
||||
result = cons( car( cursor ), result );
|
||||
result = c_cons( c_car( cursor ), result );
|
||||
break;
|
||||
case KEYTV:
|
||||
// TODO: should you be able to reverse keywords and symbols?
|
||||
result =
|
||||
make_string_like_thing( object->payload.string.character,
|
||||
result, KEYTAG );
|
||||
|
|
@ -56,6 +57,7 @@ struct pso_pointer reverse( struct pso_pointer sequence ) {
|
|||
result, STRINGTAG );
|
||||
break;
|
||||
case SYMBOLTV:
|
||||
// TODO: should you be able to reverse keywords and symbols?
|
||||
result =
|
||||
make_string_like_thing( object->payload.string.character,
|
||||
result, SYMBOLTAG );
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue