Changeset 317 for trunk/ext

Show
Ignore:
Timestamp:
05/22/2008 16:28:58 (6 months ago)
Author:
slact
Message:

updated to latest flavor of Io (2008ish). Dump still badly broken.

Location:
trunk/ext/io/YAML
Files:
1 added
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/ext/io/YAML/build.io

    r238 r317  
    1 Binding clone do( 
     1AddonBuilder clone do( 
    22        dependsOnLib("syck") 
    3         setIsServerBinding(true) 
    43) 
  • trunk/ext/io/YAML/source/IoYAML.c

    r241 r317  
    1414#include "IoMap.h" 
    1515#include "IoSeq.h" 
    16 #include "ByteArray.h" 
     16#include "UArray.h" 
    1717 
    1818#define DATA(self) ((IoYAMLData *)IoObject_dataPointer(self)) 
    1919 
    20 IoTag *IoYAML_tag(void *state) 
     20IoTag *IoYAML_newTag(void *state) 
    2121{ 
    2222        IoTag *tag = IoTag_newWithName_("YAML"); 
    23         tag->state = state; 
    24         tag->cloneFunc = (TagCloneFunc *)IoYAML_rawClone; 
    25         tag->freeFunc = (TagFreeFunc *)IoYAML_free; 
    26         tag->markFunc = (TagMarkFunc *)IoYAML_mark; 
     23        IoTag_state_(tag, state); 
     24        IoTag_cloneFunc_(tag, (IoTagCloneFunc *)IoYAML_rawClone); 
     25        IoTag_freeFunc_(tag, (IoTagFreeFunc *)IoYAML_free); 
     26        IoTag_markFunc_(tag, (IoTagMarkFunc *)IoYAML_mark); 
    2727        return tag; 
    2828} 
     
    3131{ 
    3232        IoObject *self = IoObject_new(state); 
    33         self->tag = IoYAML_tag(state); 
     33        //self->tag = IoYAML_tag(state); 
     34        IoObject_tag_(self, IoYAML_newTag(state)); 
    3435         
    3536        IoObject_setDataPointer_(self, calloc(1, sizeof(IoYAMLData))); 
     
    8182} 
    8283 
    83 SYMID 
    84 IoYAML_parseHandler(SyckParser *p, SyckNode *n) 
     84SYMID IoYAML_parseHandler(SyckParser *p, SyckNode *n) 
    8585{ 
    8686  IoYAML *self = (IoYAML *)p->bonus; 
     
    148148 
    149149                case syck_seq_kind: 
    150       o = IoList_new(self->state); 
     150      o = IoList_new(IOSTATE); 
    151151                        for ( i=0; i < n->data.list->idx; i++ ) 
    152152                        { 
     
    158158 
    159159                case syck_map_kind: 
    160       o = IoMap_new(self->state); 
     160      o = IoMap_new(IOSTATE); 
    161161                        for ( i=0; i < n->data.pairs->idx; i++ ) 
    162162                        { 
     
    208208typedef struct { 
    209209  IoYAML *self; 
    210   ByteArray *buffer; 
     210  UArray *buffer; 
    211211} IoYAMLout; 
    212212 
    213 void 
    214 IoYAML_emitHandler(SyckEmitter *e, st_data_t data) 
     213static void IoYAML_emitHandler(SyckEmitter *e, st_data_t data) 
    215214{ 
    216215        IoYAMLout *out = (IoYAMLout *)e->bonus; 
     
    229228  else if (ISSEQ(obj)) 
    230229  { 
    231     syck_emit_scalar(e, "string", scalar_none, 0, 0, 0, (char *)IOSEQ_BYTES(obj), IOSEQ_LENGTH(obj)); 
     230     if(!obj) {} else syck_emit_scalar(e, "string", scalar_none, 0, 0, 0, (char *)IOSEQ_BYTES(obj), IOSEQ_LENGTH(obj)); 
    232231  } 
    233232  else if (ISNUMBER(obj)) 
     
    265264} 
    266265 
    267 void 
    268 IoYAML_outputHandler(SyckEmitter *e, char *str, long len) 
     266void IoYAML_outputHandler(SyckEmitter *e, char *str, long len) 
    269267{ 
    270268        IoYAMLout *out = (IoYAMLout *)e->bonus; 
    271   ByteArray_appendBytes_size_(out->buffer, str, len); 
     269  UArray_appendBytes_size_(out->buffer, str, len); 
    272270} 
    273271 
    274272IoObject *IoYAML_dump(IoYAML *self, IoObject *locals, IoMessage *m) 
    275273{ 
    276   ByteArray *buffer = ByteArray_new(); 
     274  UArray *buffer = UArray_new(); 
    277275        IoObject *obj = IoMessage_locals_valueArgAt_(m, locals, 0); 
    278276        SyckEmitter *emitter = syck_new_emitter(); 
     
    289287  S_FREE(out); 
    290288 
    291   return IoSeq_newWithByteArray_copy_(self->state, buffer, 0); 
    292 } 
     289  return IoSeq_newWithUArray_copy_(IOSTATE, buffer, 0); 
     290}