rubysl-yaml 1.1.0 → 2.0.0
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.
- checksums.yaml +4 -4
- data/.travis.yml +5 -6
- data/lib/rubysl/yaml/version.rb +1 -1
- data/lib/rubysl/yaml/yaml.rb +53 -417
- data/lib/yaml/dbm.rb +116 -13
- data/lib/yaml/store.rb +45 -2
- data/lib/yaml/syck.rb +44 -35
- data/rubysl-yaml.gemspec +1 -3
- metadata +25 -70
- data/ext/rubysl/syck/bytecode.c +0 -1166
- data/ext/rubysl/syck/emitter.c +0 -1242
- data/ext/rubysl/syck/extconf.rb +0 -5
- data/ext/rubysl/syck/gram.c +0 -1894
- data/ext/rubysl/syck/gram.h +0 -79
- data/ext/rubysl/syck/handler.c +0 -174
- data/ext/rubysl/syck/implicit.c +0 -2990
- data/ext/rubysl/syck/node.c +0 -408
- data/ext/rubysl/syck/rubyext.c +0 -2366
- data/ext/rubysl/syck/st.c +0 -576
- data/ext/rubysl/syck/st.h +0 -72
- data/ext/rubysl/syck/syck.c +0 -504
- data/ext/rubysl/syck/syck.h +0 -458
- data/ext/rubysl/syck/token.c +0 -2725
- data/ext/rubysl/syck/yaml2byte.c +0 -257
- data/ext/rubysl/syck/yamlbyte.h +0 -170
- data/lib/yaml/baseemitter.rb +0 -247
- data/lib/yaml/basenode.rb +0 -216
- data/lib/yaml/constants.rb +0 -45
- data/lib/yaml/encoding.rb +0 -33
- data/lib/yaml/error.rb +0 -34
- data/lib/yaml/loader.rb +0 -14
- data/lib/yaml/rubytypes.rb +0 -409
- data/lib/yaml/stream.rb +0 -40
- data/lib/yaml/stringio.rb +0 -83
- data/lib/yaml/tag.rb +0 -91
- data/lib/yaml/types.rb +0 -192
- data/lib/yaml/yamlnode.rb +0 -54
- data/lib/yaml/ypath.rb +0 -52
data/ext/rubysl/syck/st.h
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
/* This is a public domain general purpose hash table package written by Peter Moore @ UCB. */
|
2
|
-
|
3
|
-
/* @(#) st.h 5.1 89/12/14 */
|
4
|
-
|
5
|
-
#ifndef ST_INCLUDED
|
6
|
-
|
7
|
-
#define ST_INCLUDED
|
8
|
-
|
9
|
-
#if SIZEOF_LONG == SIZEOF_VOIDP
|
10
|
-
typedef unsigned long st_data_t;
|
11
|
-
#elif SIZEOF_LONG_LONG == SIZEOF_VOIDP
|
12
|
-
typedef unsigned LONG_LONG st_data_t;
|
13
|
-
#else
|
14
|
-
# error ---->> st.c requires sizeof(void*) == sizeof(long) to be compiled. <<---
|
15
|
-
-
|
16
|
-
#endif
|
17
|
-
#define ST_DATA_T_DEFINED
|
18
|
-
|
19
|
-
typedef struct st_table st_table;
|
20
|
-
|
21
|
-
struct st_hash_type {
|
22
|
-
int (*compare)();
|
23
|
-
int (*hash)();
|
24
|
-
};
|
25
|
-
|
26
|
-
struct st_table {
|
27
|
-
struct st_hash_type *type;
|
28
|
-
int num_bins;
|
29
|
-
int num_entries;
|
30
|
-
struct st_table_entry **bins;
|
31
|
-
};
|
32
|
-
|
33
|
-
#define st_is_member(table,key) st_lookup(table,key,(st_data_t *)0)
|
34
|
-
|
35
|
-
enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK};
|
36
|
-
|
37
|
-
#ifndef _
|
38
|
-
# define _(args) args
|
39
|
-
#endif
|
40
|
-
#ifndef ANYARGS
|
41
|
-
# ifdef __cplusplus
|
42
|
-
# define ANYARGS ...
|
43
|
-
# else
|
44
|
-
# define ANYARGS
|
45
|
-
# endif
|
46
|
-
#endif
|
47
|
-
|
48
|
-
st_table *st_init_table _((struct st_hash_type *));
|
49
|
-
st_table *st_init_table_with_size _((struct st_hash_type *, int));
|
50
|
-
st_table *st_init_numtable _((void));
|
51
|
-
st_table *st_init_numtable_with_size _((int));
|
52
|
-
st_table *st_init_strtable _((void));
|
53
|
-
st_table *st_init_strtable_with_size _((int));
|
54
|
-
int st_delete _((st_table *, st_data_t *, st_data_t *));
|
55
|
-
int st_delete_safe _((st_table *, st_data_t *, st_data_t *, st_data_t));
|
56
|
-
int st_insert _((st_table *, st_data_t, st_data_t));
|
57
|
-
int st_lookup _((st_table *, st_data_t, st_data_t *));
|
58
|
-
int st_foreach _((st_table *, int (*)(ANYARGS), st_data_t));
|
59
|
-
void st_add_direct _((st_table *, st_data_t, st_data_t));
|
60
|
-
void st_free_table _((st_table *));
|
61
|
-
void st_cleanup_safe _((st_table *, st_data_t));
|
62
|
-
st_table *st_copy _((st_table *));
|
63
|
-
|
64
|
-
#define ST_NUMCMP ((int (*)()) 0)
|
65
|
-
#define ST_NUMHASH ((int (*)()) -2)
|
66
|
-
|
67
|
-
#define st_numcmp ST_NUMCMP
|
68
|
-
#define st_numhash ST_NUMHASH
|
69
|
-
|
70
|
-
int st_strhash();
|
71
|
-
|
72
|
-
#endif /* ST_INCLUDED */
|
data/ext/rubysl/syck/syck.c
DELETED
@@ -1,504 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* syck.c
|
3
|
-
*
|
4
|
-
* $Author: shyouhei $
|
5
|
-
* $Date: 2007-02-12 15:01:19 -0800 (Mon, 12 Feb 2007) $
|
6
|
-
*
|
7
|
-
* Copyright (C) 2003 why the lucky stiff
|
8
|
-
*/
|
9
|
-
#include "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
|
-
(int) (p->cursor - p->lineptr),
|
502
|
-
msg );
|
503
|
-
}
|
504
|
-
|