12 #define SYCK_YAML_MAJOR 1
13 #define SYCK_YAML_MINOR 0
15 #define YAML_DOMAIN "yaml.org,2002"
22 #if defined(__cplusplus)
29 #if defined(HAVE_ALLOCA_H) && !defined(__GNUC__)
34 void syck_assert(
const char *,
unsigned,
const char * );
36 (( f ) ? (void)0 : syck_assert( __FILE__, __LINE__, #f ))
38 # define ASSERT(f) ((void)0)
42 # define NULL (void *)0
46 #define SYCK_BUFFERSIZE 4096
47 #define S_ALLOC_N(type,n) (type*)malloc(sizeof(type)*(n))
48 #define S_ALLOC(type) (type*)malloc(sizeof(type))
49 #define S_REALLOC_N(var,type,n) (var)=(type*)realloc((char*)(var),sizeof(type)*(n))
50 #define S_FREE(n) if (n) { free(n); n = NULL; }
52 #define S_ALLOCA_N(type,n) (type*)alloca(sizeof(type)*(n))
54 #define S_MEMZERO(p,type,n) memset((p), 0, sizeof(type)*(n))
55 #define S_MEMCPY(p1,p2,type,n) memcpy((p1), (p2), sizeof(type)*(n))
56 #define S_MEMMOVE(p1,p2,type,n) memmove((p1), (p2), sizeof(type)*(n))
57 #define S_MEMCMP(p1,p2,type,n) memcmp((p1), (p2), sizeof(type)*(n))
61 #define BLOCK_PLAIN 30
68 #ifndef ST_DATA_T_DEFINED
72 #define SYMID st_data_t
155 typedef SyckNode * (*SyckBadAnchorHandler)(SyckParser *,
char *);
345 char *
syck_taguri(
const char *,
const char *,
int );
372 void syck_emit( SyckEmitter *, st_data_t );
382 void syck_emit_tag( SyckEmitter *,
const char *,
const char * );
449 #if defined(__cplusplus)
void syck_parser_taguri_expansion(SyckParser *p, int flag)
void syck_assert(const char *file_name, unsigned line_num, const char *expr)
void syck_map_empty(SyckNode *n)
enum syck_io_type io_type
void(* SyckErrorHandler)(SyckParser *, const char *)
SyckNode * syck_alloc_seq(void)
enum syck_level_status status
void syck_emitter_flush(SyckEmitter *e, long check_room)
void syck_parser_error_handler(SyckParser *p, SyckErrorHandler hdlr)
void syck_map_add(SyckNode *map, SYMID key, SYMID value)
struct _syck_node::@19::SyckSeq * list
SyckNode * syck_new_str2(const char *str, long len, enum scalar_style style)
SYMID syck_parse(SyckParser *p)
void syck_replace_str2(SyckNode *n, char *str, long len, enum scalar_style style)
union _syck_node::@19 data
SyckEmitter * syck_new_emitter(void)
void syck_emit_tag(SyckEmitter *e, const char *tag, const char *ignore)
void(* SyckOutputHandler)(SyckEmitter *, char *, long)
char * syck_type_id_to_uri(const char *type_id)
char * syck_xprivate(const char *type_id, int type_len)
union _syck_parser::@20 io
SyckLevel * syck_parser_current_level(SyckParser *p)
void syck_map_update(SyckNode *map1, SyckNode *map2)
void syckerror(const char *)
SYMID syck_emitter_mark_node(SyckEmitter *e, st_data_t n)
void syck_map_assign(SyckNode *map, enum map_part p, long idx, SYMID id)
SyckNode * syck_new_seq(SYMID value)
void syck_emitter_clear(SyckEmitter *e)
void syck_free_parser(SyckParser *p)
SYMID(* SyckNodeHandler)(SyckParser *, SyckNode *)
void syck_emitter_ignore_id(SyckEmitter *, SYMID)
void syck_parser_implicit_typing(SyckParser *p, int flag)
char * syck_base64dec(char *s, long len)
char * syck_strndup(const char *buf, long len)
void syck_emit_scalar(SyckEmitter *e, const char *tag, enum scalar_style force_style, int force_indent, int force_width, char keep_nl, const char *str, long len)
SyckNode *(* SyckBadAnchorHandler)(SyckParser *, char *)
const char * syck_match_implicit(const char *str, size_t len)
void syck_free_emitter(SyckEmitter *e)
long syck_parser_readlen(SyckParser *p, long max_size)
void syck_seq_add(SyckNode *arr, SYMID value)
void syck_emitter_pop_level(SyckEmitter *e)
void syck_emit_seq(SyckEmitter *e, const char *tag, enum seq_style style)
void syck_parser_bad_anchor_handler(SyckParser *p, SyckBadAnchorHandler hdlr)
void syck_add_transfer(char *uri, SyckNode *n, int taguri)
SyckParser * syck_new_parser(void)
int syck_lookup_sym(SyckParser *p, SYMID id, void **datap)
long syck_io_file_read(char *buf, SyckIoFile *file, long max_size, long skip)
long(* SyckIoFileRead)(char *, SyckIoFile *, long, long)
enum syck_parser_input input_type
int syck_tagcmp(const char *tag1, const char *tag2)
void syck_emitter_handler(SyckEmitter *e, SyckEmitterHandler hdlr)
long syck_map_count(SyckNode *map)
void syck_replace_str(SyckNode *n, char *str, enum scalar_style style)
SyckOutputHandler output_handler
SYMID syck_seq_read(SyckNode *seq, long idx)
SyckBadAnchorHandler bad_anchor_handler
SYMID syck_yaml2byte_handler(SyckParser *, SyckNode *)
void syck_parser_handler(SyckParser *p, SyckNodeHandler hdlr)
SyckNode * syck_alloc_map(void)
void syck_seq_assign(SyckNode *seq, long idx, SYMID id)
void syck_hdlr_remove_anchor(SyckParser *p, char *a)
char * syck_yaml2byte(char *)
void syck_emitter_reset_levels(SyckEmitter *e)
void syck_parser_set_root_on_error(SyckParser *p, SYMID roer)
void syck_free_node(SyckNode *n)
long syck_parser_read(SyckParser *p)
void syck_emit_end(SyckEmitter *e)
void syck_seq_empty(SyckNode *n)
void syck_emit(SyckEmitter *e, st_data_t n)
void syck_parser_pop_level(SyckParser *)
void syck_parser_str(SyckParser *p, char *ptr, long len, SyckIoStrRead read)
int syck_add_sym(SyckParser *p, void *data)
void free_any_io(SyckParser *p)
void syck_emit_indent(SyckEmitter *e)
long syck_seq_count(SyckNode *seq)
void syck_default_error_handler(SyckParser *p, const char *msg)
void syck_emit_map(SyckEmitter *e, const char *tag, enum map_style style)
long(* SyckIoStrRead)(char *, SyckIoStr *, long, long)
void syck_free_members(SyckNode *n)
SyckEmitterHandler emitter_handler
void syck_emit_literal(SyckEmitter *e, char keep_nl, const char *str, long len)
void syck_output_handler(SyckEmitter *e, SyckOutputHandler hdlr)
long syck_io_str_read(char *buf, SyckIoStr *str, long max_size, long skip)
void try_tag_implicit(SyckNode *n, int taguri)
int sycklex(union YYSTYPE *, SyckParser *)
int syck_scan_scalar(int req_width, const char *cursor, long len)
char * syck_taguri(const char *domain, const char *type_id, int type_len)
SyckNode * syck_new_map(SYMID key, SYMID value)
SyckLevel * syck_emitter_parent_level(SyckEmitter *e)
void syck_emit_item(SyckEmitter *e, st_data_t n)
SyckNode * syck_hdlr_get_anchor(SyckParser *p, char *a)
SyckNode * syck_alloc_str(void)
struct _syck_node::@19::SyckStr * str
void syck_parser_set_input_type(SyckParser *p, enum syck_parser_input input_type)
void syck_str_blow_away_commas(SyckNode *n)
void syck_emitter_write(SyckEmitter *e, const char *str, long len)
void syck_parser_file(SyckParser *p, FILE *fp, SyckIoFileRead read)
void(* SyckEmitterHandler)(SyckEmitter *, st_data_t)
int syck_try_implicit(SyckNode *n)
void syck_parser_add_level(SyckParser *p, int len, enum syck_level_status status)
SyckErrorHandler error_handler
SyckLevel * syck_emitter_current_level(SyckEmitter *e)
SyckNode * syck_hdlr_add_anchor(SyckParser *p, char *a, SyckNode *n)
void syck_emit_2quoted(SyckEmitter *e, int width, const char *str, long len)
void syck_emitter_escape(SyckEmitter *e, const char *src, long len)
char * syck_base64enc(char *s, long len)
SYMID syck_map_read(SyckNode *map, enum map_part p, long idx)
void syck_emitter_add_level(SyckEmitter *e, int len, enum syck_level_status status)
char * syck_str_read(SyckNode *n)
void syck_emit_1quoted(SyckEmitter *e, int width, const char *str, long len)
struct _syck_node::@19::SyckMap * pairs
SyckNode * syck_new_str(const char *str, enum scalar_style style)
void syck_emit_folded(SyckEmitter *e, int width, char keep_nl, const char *str, long len)
void syck_parser_str_auto(SyckParser *p, char *ptr, SyckIoStrRead read)
SYMID syck_hdlr_add_node(SyckParser *p, SyckNode *n)