- Timestamp:
- 05/22/2008 16:28:58 (6 months ago)
- Location:
- trunk/ext/io/YAML
- Files:
-
- 1 added
- 2 modified
-
build.io (modified) (1 diff)
-
source/IoYAML.c (modified) (9 diffs)
-
source/IoYAMLInit.c (added)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ext/io/YAML/build.io
r238 r317 1 Bindingclone do(1 AddonBuilder clone do( 2 2 dependsOnLib("syck") 3 setIsServerBinding(true)4 3 ) -
trunk/ext/io/YAML/source/IoYAML.c
r241 r317 14 14 #include "IoMap.h" 15 15 #include "IoSeq.h" 16 #include " ByteArray.h"16 #include "UArray.h" 17 17 18 18 #define DATA(self) ((IoYAMLData *)IoObject_dataPointer(self)) 19 19 20 IoTag *IoYAML_ tag(void *state)20 IoTag *IoYAML_newTag(void *state) 21 21 { 22 22 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); 27 27 return tag; 28 28 } … … 31 31 { 32 32 IoObject *self = IoObject_new(state); 33 self->tag = IoYAML_tag(state); 33 //self->tag = IoYAML_tag(state); 34 IoObject_tag_(self, IoYAML_newTag(state)); 34 35 35 36 IoObject_setDataPointer_(self, calloc(1, sizeof(IoYAMLData))); … … 81 82 } 82 83 83 SYMID 84 IoYAML_parseHandler(SyckParser *p, SyckNode *n) 84 SYMID IoYAML_parseHandler(SyckParser *p, SyckNode *n) 85 85 { 86 86 IoYAML *self = (IoYAML *)p->bonus; … … 148 148 149 149 case syck_seq_kind: 150 o = IoList_new( self->state);150 o = IoList_new(IOSTATE); 151 151 for ( i=0; i < n->data.list->idx; i++ ) 152 152 { … … 158 158 159 159 case syck_map_kind: 160 o = IoMap_new( self->state);160 o = IoMap_new(IOSTATE); 161 161 for ( i=0; i < n->data.pairs->idx; i++ ) 162 162 { … … 208 208 typedef struct { 209 209 IoYAML *self; 210 ByteArray *buffer;210 UArray *buffer; 211 211 } IoYAMLout; 212 212 213 void 214 IoYAML_emitHandler(SyckEmitter *e, st_data_t data) 213 static void IoYAML_emitHandler(SyckEmitter *e, st_data_t data) 215 214 { 216 215 IoYAMLout *out = (IoYAMLout *)e->bonus; … … 229 228 else if (ISSEQ(obj)) 230 229 { 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)); 232 231 } 233 232 else if (ISNUMBER(obj)) … … 265 264 } 266 265 267 void 268 IoYAML_outputHandler(SyckEmitter *e, char *str, long len) 266 void IoYAML_outputHandler(SyckEmitter *e, char *str, long len) 269 267 { 270 268 IoYAMLout *out = (IoYAMLout *)e->bonus; 271 ByteArray_appendBytes_size_(out->buffer, str, len);269 UArray_appendBytes_size_(out->buffer, str, len); 272 270 } 273 271 274 272 IoObject *IoYAML_dump(IoYAML *self, IoObject *locals, IoMessage *m) 275 273 { 276 ByteArray *buffer = ByteArray_new();274 UArray *buffer = UArray_new(); 277 275 IoObject *obj = IoMessage_locals_valueArgAt_(m, locals, 0); 278 276 SyckEmitter *emitter = syck_new_emitter(); … … 289 287 S_FREE(out); 290 288 291 return IoSeq_newWith ByteArray_copy_(self->state, buffer, 0);292 } 289 return IoSeq_newWithUArray_copy_(IOSTATE, buffer, 0); 290 }