ray 0.0.1 → 0.1.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
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
-