ray 0.0.1 → 0.1.0.pre1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. data/.gemtest +0 -0
  2. data/.yardopts +4 -0
  3. data/README.md +17 -21
  4. data/Rakefile +18 -139
  5. data/VERSION +1 -1
  6. data/ext/audio.cpp +723 -0
  7. data/ext/{color.c → color.cpp} +25 -13
  8. data/ext/drawable.cpp +91 -0
  9. data/ext/event.cpp +460 -0
  10. data/ext/extconf.rb +5 -104
  11. data/ext/font.cpp +190 -0
  12. data/ext/image.cpp +733 -0
  13. data/ext/input.cpp +74 -0
  14. data/ext/ray.cpp +168 -0
  15. data/ext/ray.hpp +356 -0
  16. data/ext/{rect.c → rect.cpp} +51 -37
  17. data/ext/shader.cpp +169 -0
  18. data/ext/shape.cpp +409 -0
  19. data/ext/sprite.cpp +306 -0
  20. data/ext/text.cpp +181 -0
  21. data/ext/vector.cpp +215 -0
  22. data/guide.md +619 -0
  23. data/lib/ray/audio.rb +0 -41
  24. data/lib/ray/color.rb +32 -10
  25. data/lib/ray/drawable.rb +16 -0
  26. data/lib/ray/dsl/event_listener.rb +25 -2
  27. data/lib/ray/dsl/event_runner.rb +33 -5
  28. data/lib/ray/dsl/event_translator.rb +66 -30
  29. data/lib/ray/dsl/handler.rb +3 -2
  30. data/lib/ray/dsl/matcher.rb +58 -14
  31. data/lib/ray/font.rb +38 -96
  32. data/lib/ray/font_set.rb +8 -8
  33. data/lib/ray/game.rb +87 -66
  34. data/lib/ray/helper.rb +105 -10
  35. data/lib/ray/image.rb +150 -24
  36. data/lib/ray/image_set.rb +3 -1
  37. data/lib/ray/input.rb +10 -0
  38. data/lib/ray/music_set.rb +5 -3
  39. data/lib/ray/ray.rb +21 -9
  40. data/lib/ray/rect.rb +48 -7
  41. data/lib/ray/rmagick.rb +41 -0
  42. data/lib/ray/scene.rb +99 -43
  43. data/lib/ray/scene_list.rb +67 -0
  44. data/lib/ray/shape.rb +132 -0
  45. data/lib/ray/sound_set.rb +4 -2
  46. data/lib/ray/sprite.rb +49 -111
  47. data/lib/ray/text.rb +101 -0
  48. data/lib/ray/text_helper.rb +37 -0
  49. data/lib/ray/turtle.rb +215 -0
  50. data/lib/ray/vector.rb +226 -0
  51. data/samples/audio/spacial.rb +44 -0
  52. data/samples/hello_world/hello.rb +9 -13
  53. data/samples/hello_world/hello_dsl.rb +8 -12
  54. data/samples/hello_world/text.rb +15 -0
  55. data/samples/opengl/binding.rb +38 -0
  56. data/samples/opengl/image.rb +32 -0
  57. data/samples/opengl/opengl.rb +34 -0
  58. data/samples/opengl/shader.rb +42 -0
  59. data/samples/pong/pong.rb +14 -10
  60. data/samples/run_scene.rb +53 -0
  61. data/samples/shaders/scene.rb +40 -0
  62. data/samples/shaders/shaders.rb +42 -0
  63. data/samples/shaders/shape.rb +34 -0
  64. data/samples/sokoban/sokoban.rb +18 -18
  65. data/samples/test/actual_scene.rb +41 -0
  66. data/samples/test/scene_riot.rb +39 -0
  67. data/samples/test/scene_spec.rb +32 -0
  68. data/samples/test/scene_test_unit.rb +25 -0
  69. data/samples/turtle/byzantium.rb +45 -0
  70. data/samples/turtle/hilbert.rb +48 -0
  71. data/samples/turtle/koch.rb +55 -0
  72. data/samples/turtle/mandala.rb +61 -0
  73. data/samples/turtle/tree.rb +57 -0
  74. data/test/audio_test.rb +69 -0
  75. data/test/color_test.rb +77 -0
  76. data/test/drawable_test.rb +19 -0
  77. data/test/dsl_test.rb +93 -0
  78. data/test/font_test.rb +57 -0
  79. data/test/helpers.rb +94 -0
  80. data/test/image_test.rb +82 -0
  81. data/test/ray_test.rb +25 -0
  82. data/test/rect_test.rb +121 -0
  83. data/{spec → test}/res/VeraMono.ttf +0 -0
  84. data/{spec → test}/res/aqua.bmp +0 -0
  85. data/{spec → test}/res/aqua.png +0 -0
  86. data/{spec → test}/res/aqua2.bmp +0 -0
  87. data/{spec → test}/res/not_a_jpeg.jpeg +0 -0
  88. data/{spec → test}/res/pop.wav +0 -0
  89. data/test/resource_set_test.rb +99 -0
  90. data/test/run_all.rb +7 -0
  91. data/test/shape_test.rb +101 -0
  92. data/test/sprite_test.rb +89 -0
  93. data/test/text_test.rb +78 -0
  94. data/test/turtle_test.rb +176 -0
  95. data/test/vector_test.rb +111 -0
  96. data/yard_ext.rb +0 -28
  97. metadata +95 -139
  98. data/.gitignore +0 -23
  99. data/.gitmodules +0 -3
  100. data/.rspec +0 -3
  101. data/ext/audio.c +0 -473
  102. data/ext/event.c +0 -557
  103. data/ext/font.c +0 -287
  104. data/ext/image.c +0 -933
  105. data/ext/joystick.c +0 -145
  106. data/ext/ray.c +0 -489
  107. data/ext/ray.h +0 -245
  108. data/ext/ray_osx.m +0 -161
  109. data/lib/ray/joystick.rb +0 -30
  110. data/psp/SDL_psp_main.c +0 -84
  111. data/psp/bigdecimal/README +0 -60
  112. data/psp/bigdecimal/bigdecimal.c +0 -4697
  113. data/psp/bigdecimal/bigdecimal.h +0 -216
  114. data/psp/bigdecimal/lib/bigdecimal/jacobian.rb +0 -85
  115. data/psp/bigdecimal/lib/bigdecimal/ludcmp.rb +0 -84
  116. data/psp/bigdecimal/lib/bigdecimal/math.rb +0 -235
  117. data/psp/bigdecimal/lib/bigdecimal/newton.rb +0 -77
  118. data/psp/bigdecimal/lib/bigdecimal/util.rb +0 -65
  119. data/psp/digest/bubblebabble/bubblebabble.c +0 -142
  120. data/psp/digest/defs.h +0 -20
  121. data/psp/digest/digest.c +0 -643
  122. data/psp/digest/digest.h +0 -32
  123. data/psp/digest/lib/digest.rb +0 -50
  124. data/psp/digest/lib/md5.rb +0 -27
  125. data/psp/digest/lib/sha1.rb +0 -27
  126. data/psp/digest/md5/md5.c +0 -420
  127. data/psp/digest/md5/md5.h +0 -80
  128. data/psp/digest/md5/md5init.c +0 -40
  129. data/psp/digest/rmd160/rmd160.c +0 -457
  130. data/psp/digest/rmd160/rmd160.h +0 -56
  131. data/psp/digest/rmd160/rmd160init.c +0 -40
  132. data/psp/digest/sha1/sha1.c +0 -269
  133. data/psp/digest/sha1/sha1.h +0 -39
  134. data/psp/digest/sha1/sha1init.c +0 -40
  135. data/psp/digest/sha2/lib/sha2.rb +0 -73
  136. data/psp/digest/sha2/sha2.c +0 -919
  137. data/psp/digest/sha2/sha2.h +0 -109
  138. data/psp/digest/sha2/sha2init.c +0 -52
  139. data/psp/enumerator/enumerator.c +0 -298
  140. data/psp/etc/etc.c +0 -559
  141. data/psp/ext.c +0 -289
  142. data/psp/fcntl/fcntl.c +0 -187
  143. data/psp/lib/rbconfig.rb +0 -178
  144. data/psp/nkf/lib/kconv.rb +0 -367
  145. data/psp/nkf/nkf-utf8/config.h +0 -88
  146. data/psp/nkf/nkf-utf8/nkf.c +0 -6040
  147. data/psp/nkf/nkf-utf8/utf8tbl.c +0 -8500
  148. data/psp/nkf/nkf-utf8/utf8tbl.h +0 -34
  149. data/psp/nkf/nkf.c +0 -654
  150. data/psp/socket/addrinfo.h +0 -173
  151. data/psp/socket/getaddrinfo.c +0 -676
  152. data/psp/socket/getnameinfo.c +0 -270
  153. data/psp/socket/pspsocket.c +0 -71
  154. data/psp/socket/pspsocket.h +0 -28
  155. data/psp/socket/socket.c +0 -4662
  156. data/psp/socket/sockport.h +0 -76
  157. data/psp/stringio/stringio.c +0 -1306
  158. data/psp/strscan/strscan.c +0 -1320
  159. data/psp/syck/bytecode.c +0 -1166
  160. data/psp/syck/emitter.c +0 -1242
  161. data/psp/syck/gram.c +0 -1894
  162. data/psp/syck/gram.h +0 -79
  163. data/psp/syck/handler.c +0 -174
  164. data/psp/syck/implicit.c +0 -2990
  165. data/psp/syck/node.c +0 -408
  166. data/psp/syck/rubyext.c +0 -2367
  167. data/psp/syck/syck.c +0 -504
  168. data/psp/syck/syck.h +0 -456
  169. data/psp/syck/token.c +0 -2725
  170. data/psp/syck/yaml2byte.c +0 -257
  171. data/psp/syck/yamlbyte.h +0 -170
  172. data/psp/thread/thread.c +0 -1175
  173. data/psp/zlib/zlib.c +0 -3547
  174. data/script.rb +0 -10
  175. data/spec/ray/audio_spec.rb +0 -146
  176. data/spec/ray/color_spec.rb +0 -57
  177. data/spec/ray/event_spec.rb +0 -80
  178. data/spec/ray/font_spec.rb +0 -93
  179. data/spec/ray/image_set_spec.rb +0 -48
  180. data/spec/ray/image_spec.rb +0 -162
  181. data/spec/ray/joystick_spec.rb +0 -21
  182. data/spec/ray/matcher_spec.rb +0 -50
  183. data/spec/ray/ray_spec.rb +0 -88
  184. data/spec/ray/rect_spec.rb +0 -154
  185. data/spec/ray/resource_set_spec.rb +0 -105
  186. data/spec/ray/sprite_spec.rb +0 -163
  187. data/spec/spec.opts +0 -4
  188. data/spec/spec_helper.rb +0 -8
@@ -1,504 +0,0 @@
1
- /*
2
- * syck.c
3
- *
4
- * $Author: shyouhei $
5
- * $Date: 2007-02-13 08:01:19 +0900 (Tue, 13 Feb 2007) $
6
- *
7
- * Copyright (C) 2003 why the lucky stiff
8
- */
9
- #include <ruby/ruby.h>
10
-
11
- #include <stdio.h>
12
- #include <string.h>
13
-
14
- #include "syck.h"
15
-
16
- void syck_parser_pop_level( SyckParser * );
17
-
18
- /*
19
- * Custom assert
20
- */
21
- void
22
- syck_assert( char *file_name, unsigned line_num )
23
- {
24
- fflush( NULL );
25
- fprintf( stderr, "\nAssertion failed: %s, line %u\n",
26
- file_name, line_num );
27
- fflush( stderr );
28
- abort();
29
- }
30
-
31
- /*
32
- * Allocates and copies a string
33
- */
34
- char *
35
- syck_strndup( char *buf, long len )
36
- {
37
- char *new = S_ALLOC_N( char, len + 1 );
38
- S_MEMZERO( new, char, len + 1 );
39
- S_MEMCPY( new, buf, char, len );
40
- return new;
41
- }
42
-
43
- /*
44
- * Default FILE IO function
45
- */
46
- long
47
- syck_io_file_read( char *buf, SyckIoFile *file, long max_size, long skip )
48
- {
49
- long len = 0;
50
-
51
- ASSERT( file != NULL );
52
-
53
- max_size -= skip;
54
- len = fread( buf + skip, sizeof( char ), max_size, file->ptr );
55
- len += skip;
56
- buf[len] = '\0';
57
-
58
- return len;
59
- }
60
-
61
- /*
62
- * Default string IO function
63
- */
64
- long
65
- syck_io_str_read( char *buf, SyckIoStr *str, long max_size, long skip )
66
- {
67
- char *beg;
68
- long len = 0;
69
-
70
- ASSERT( str != NULL );
71
- beg = str->ptr;
72
- if ( max_size >= 0 )
73
- {
74
- max_size -= skip;
75
- if ( max_size <= 0 ) max_size = 0;
76
- else str->ptr += max_size;
77
-
78
- if ( str->ptr > str->end )
79
- {
80
- str->ptr = str->end;
81
- }
82
- }
83
- else
84
- {
85
- /* Use exact string length */
86
- while ( str->ptr < str->end ) {
87
- if (*(str->ptr++) == '\n') break;
88
- }
89
- }
90
- if ( beg < str->ptr )
91
- {
92
- len = ( str->ptr - beg );
93
- S_MEMCPY( buf + skip, beg, char, len );
94
- }
95
- len += skip;
96
- buf[len] = '\0';
97
-
98
- return len;
99
- }
100
-
101
- void
102
- syck_parser_reset_levels( SyckParser *p )
103
- {
104
- while ( p->lvl_idx > 1 )
105
- {
106
- syck_parser_pop_level( p );
107
- }
108
-
109
- if ( p->lvl_idx < 1 )
110
- {
111
- p->lvl_idx = 1;
112
- p->levels[0].spaces = -1;
113
- p->levels[0].ncount = 0;
114
- p->levels[0].domain = syck_strndup( "", 0 );
115
- }
116
- p->levels[0].status = syck_lvl_header;
117
- }
118
-
119
- void
120
- syck_parser_reset_cursor( SyckParser *p )
121
- {
122
- if ( p->buffer == NULL )
123
- {
124
- p->buffer = S_ALLOC_N( char, p->bufsize );
125
- S_MEMZERO( p->buffer, char, p->bufsize );
126
- }
127
- p->buffer[0] = '\0';
128
-
129
- p->cursor = NULL;
130
- p->lineptr = NULL;
131
- p->linectptr = NULL;
132
- p->token = NULL;
133
- p->toktmp = NULL;
134
- p->marker = NULL;
135
- p->limit = NULL;
136
-
137
- p->root = 0;
138
- p->root_on_error = 0;
139
- p->linect = 0;
140
- p->eof = 0;
141
- p->last_token = 0;
142
- p->force_token = 0;
143
- }
144
-
145
- /*
146
- * Value to return on a parse error
147
- */
148
- void
149
- syck_parser_set_root_on_error( SyckParser *p, SYMID roer )
150
- {
151
- p->root_on_error = roer;
152
- }
153
-
154
- /*
155
- * Allocate the parser
156
- */
157
- SyckParser *
158
- syck_new_parser()
159
- {
160
- SyckParser *p;
161
- p = S_ALLOC( SyckParser );
162
- S_MEMZERO( p, SyckParser, 1 );
163
- p->lvl_capa = ALLOC_CT;
164
- p->levels = S_ALLOC_N( SyckLevel, p->lvl_capa );
165
- p->input_type = syck_yaml_utf8;
166
- p->io_type = syck_io_str;
167
- p->io.str = NULL;
168
- p->syms = NULL;
169
- p->anchors = NULL;
170
- p->bad_anchors = NULL;
171
- p->implicit_typing = 1;
172
- p->taguri_expansion = 0;
173
- p->bufsize = SYCK_BUFFERSIZE;
174
- p->buffer = NULL;
175
- p->lvl_idx = 0;
176
- syck_parser_reset_levels( p );
177
- return p;
178
- }
179
-
180
- int
181
- syck_add_sym( SyckParser *p, char *data )
182
- {
183
- SYMID id = 0;
184
- if ( p->syms == NULL )
185
- {
186
- p->syms = st_init_numtable();
187
- }
188
- id = p->syms->num_entries + 1;
189
- st_insert( p->syms, id, (st_data_t)data );
190
- return id;
191
- }
192
-
193
- int
194
- syck_lookup_sym( SyckParser *p, SYMID id, char **data )
195
- {
196
- if ( p->syms == NULL ) return 0;
197
- return st_lookup( p->syms, id, (st_data_t *)data );
198
- }
199
-
200
- int
201
- syck_st_free_nodes( char *key, SyckNode *n, char *arg )
202
- {
203
- if ( n != (void *)1 ) syck_free_node( n );
204
- n = NULL;
205
- return ST_CONTINUE;
206
- }
207
-
208
- void
209
- syck_st_free( SyckParser *p )
210
- {
211
- /*
212
- * Free the anchor tables
213
- */
214
- if ( p->anchors != NULL )
215
- {
216
- st_foreach( p->anchors, syck_st_free_nodes, 0 );
217
- st_free_table( p->anchors );
218
- p->anchors = NULL;
219
- }
220
-
221
- if ( p->bad_anchors != NULL )
222
- {
223
- st_foreach( p->bad_anchors, syck_st_free_nodes, 0 );
224
- st_free_table( p->bad_anchors );
225
- p->bad_anchors = NULL;
226
- }
227
- }
228
-
229
- void
230
- syck_free_parser( SyckParser *p )
231
- {
232
- /*
233
- * Free the adhoc symbol table
234
- */
235
- if ( p->syms != NULL )
236
- {
237
- st_free_table( p->syms );
238
- p->syms = NULL;
239
- }
240
-
241
- /*
242
- * Free tables, levels
243
- */
244
- syck_st_free( p );
245
- syck_parser_reset_levels( p );
246
- S_FREE( p->levels[0].domain );
247
- S_FREE( p->levels );
248
-
249
- if ( p->buffer != NULL )
250
- {
251
- S_FREE( p->buffer );
252
- }
253
- free_any_io( p );
254
- S_FREE( p );
255
- }
256
-
257
- void
258
- syck_parser_handler( SyckParser *p, SyckNodeHandler hdlr )
259
- {
260
- ASSERT( p != NULL );
261
- p->handler = hdlr;
262
- }
263
-
264
- void
265
- syck_parser_implicit_typing( SyckParser *p, int flag )
266
- {
267
- p->implicit_typing = ( flag == 0 ? 0 : 1 );
268
- }
269
-
270
- void
271
- syck_parser_taguri_expansion( SyckParser *p, int flag )
272
- {
273
- p->taguri_expansion = ( flag == 0 ? 0 : 1 );
274
- }
275
-
276
- void
277
- syck_parser_error_handler( SyckParser *p, SyckErrorHandler hdlr )
278
- {
279
- ASSERT( p != NULL );
280
- p->error_handler = hdlr;
281
- }
282
-
283
- void
284
- syck_parser_bad_anchor_handler( SyckParser *p, SyckBadAnchorHandler hdlr )
285
- {
286
- ASSERT( p != NULL );
287
- p->bad_anchor_handler = hdlr;
288
- }
289
-
290
- void
291
- syck_parser_set_input_type( SyckParser *p, enum syck_parser_input input_type )
292
- {
293
- ASSERT( p != NULL );
294
- p->input_type = input_type;
295
- }
296
-
297
- void
298
- syck_parser_file( SyckParser *p, FILE *fp, SyckIoFileRead read )
299
- {
300
- ASSERT( p != NULL );
301
- free_any_io( p );
302
- syck_parser_reset_cursor( p );
303
- p->io_type = syck_io_file;
304
- p->io.file = S_ALLOC( SyckIoFile );
305
- p->io.file->ptr = fp;
306
- if ( read != NULL )
307
- {
308
- p->io.file->read = read;
309
- }
310
- else
311
- {
312
- p->io.file->read = syck_io_file_read;
313
- }
314
- }
315
-
316
- void
317
- syck_parser_str( SyckParser *p, char *ptr, long len, SyckIoStrRead read )
318
- {
319
- ASSERT( p != NULL );
320
- free_any_io( p );
321
- syck_parser_reset_cursor( p );
322
- p->io_type = syck_io_str;
323
- p->io.str = S_ALLOC( SyckIoStr );
324
- p->io.str->beg = ptr;
325
- p->io.str->ptr = ptr;
326
- p->io.str->end = ptr + len;
327
- if ( read != NULL )
328
- {
329
- p->io.str->read = read;
330
- }
331
- else
332
- {
333
- p->io.str->read = syck_io_str_read;
334
- }
335
- }
336
-
337
- void
338
- syck_parser_str_auto( SyckParser *p, char *ptr, SyckIoStrRead read )
339
- {
340
- syck_parser_str( p, ptr, strlen( ptr ), read );
341
- }
342
-
343
- SyckLevel *
344
- syck_parser_current_level( SyckParser *p )
345
- {
346
- return &p->levels[p->lvl_idx-1];
347
- }
348
-
349
- void
350
- syck_parser_pop_level( SyckParser *p )
351
- {
352
- ASSERT( p != NULL );
353
-
354
- /* The root level should never be popped */
355
- if ( p->lvl_idx <= 1 ) return;
356
-
357
- p->lvl_idx -= 1;
358
- free( p->levels[p->lvl_idx].domain );
359
- }
360
-
361
- void
362
- syck_parser_add_level( SyckParser *p, int len, enum syck_level_status status )
363
- {
364
- ASSERT( p != NULL );
365
- if ( p->lvl_idx + 1 > p->lvl_capa )
366
- {
367
- p->lvl_capa += ALLOC_CT;
368
- S_REALLOC_N( p->levels, SyckLevel, p->lvl_capa );
369
- }
370
-
371
- ASSERT( len > p->levels[p->lvl_idx-1].spaces );
372
- p->levels[p->lvl_idx].spaces = len;
373
- p->levels[p->lvl_idx].ncount = 0;
374
- p->levels[p->lvl_idx].domain = syck_strndup( p->levels[p->lvl_idx-1].domain, strlen( p->levels[p->lvl_idx-1].domain ) );
375
- p->levels[p->lvl_idx].status = status;
376
- p->lvl_idx += 1;
377
- }
378
-
379
- void
380
- free_any_io( SyckParser *p )
381
- {
382
- ASSERT( p != NULL );
383
- switch ( p->io_type )
384
- {
385
- case syck_io_str:
386
- if ( p->io.str != NULL )
387
- {
388
- S_FREE( p->io.str );
389
- p->io.str = NULL;
390
- }
391
- break;
392
-
393
- case syck_io_file:
394
- if ( p->io.file != NULL )
395
- {
396
- S_FREE( p->io.file );
397
- p->io.file = NULL;
398
- }
399
- break;
400
- }
401
- }
402
-
403
- long
404
- syck_move_tokens( SyckParser *p )
405
- {
406
- long count, skip;
407
- ASSERT( p->buffer != NULL );
408
-
409
- if ( p->token == NULL )
410
- return 0;
411
-
412
- skip = p->limit - p->token;
413
- if ( ( count = p->token - p->buffer ) )
414
- {
415
- if (skip > 0)
416
- S_MEMMOVE( p->buffer, p->token, char, skip );
417
- p->token = p->buffer;
418
- p->marker -= count;
419
- p->cursor -= count;
420
- p->toktmp -= count;
421
- p->limit -= count;
422
- p->lineptr -= count;
423
- p->linectptr -= count;
424
- }
425
- return skip;
426
- }
427
-
428
- void
429
- syck_check_limit( SyckParser *p, long len )
430
- {
431
- if ( p->cursor == NULL )
432
- {
433
- p->cursor = p->buffer;
434
- p->lineptr = p->buffer;
435
- p->linectptr = p->buffer;
436
- p->marker = p->buffer;
437
- }
438
- p->limit = p->buffer + len;
439
- }
440
-
441
- long
442
- syck_parser_read( SyckParser *p )
443
- {
444
- long len = 0;
445
- long skip = 0;
446
- ASSERT( p != NULL );
447
- switch ( p->io_type )
448
- {
449
- case syck_io_str:
450
- skip = syck_move_tokens( p );
451
- len = (p->io.str->read)( p->buffer, p->io.str, SYCK_BUFFERSIZE - 1, skip );
452
- break;
453
-
454
- case syck_io_file:
455
- skip = syck_move_tokens( p );
456
- len = (p->io.file->read)( p->buffer, p->io.file, SYCK_BUFFERSIZE - 1, skip );
457
- break;
458
- }
459
- syck_check_limit( p, len );
460
- return len;
461
- }
462
-
463
- long
464
- syck_parser_readlen( SyckParser *p, long max_size )
465
- {
466
- long len = 0;
467
- long skip = 0;
468
- ASSERT( p != NULL );
469
- switch ( p->io_type )
470
- {
471
- case syck_io_str:
472
- skip = syck_move_tokens( p );
473
- len = (p->io.str->read)( p->buffer, p->io.str, max_size, skip );
474
- break;
475
-
476
- case syck_io_file:
477
- skip = syck_move_tokens( p );
478
- len = (p->io.file->read)( p->buffer, p->io.file, max_size, skip );
479
- break;
480
- }
481
- syck_check_limit( p, len );
482
- return len;
483
- }
484
-
485
- SYMID
486
- syck_parse( SyckParser *p )
487
- {
488
- ASSERT( p != NULL );
489
-
490
- syck_st_free( p );
491
- syck_parser_reset_levels( p );
492
- syckparse( p );
493
- return p->root;
494
- }
495
-
496
- void
497
- syck_default_error_handler( SyckParser *p, char *msg )
498
- {
499
- printf( "Error at [Line %d, Col %d]: %s\n",
500
- p->linect,
501
- p->cursor - p->lineptr,
502
- msg );
503
- }
504
-