Ignore:
Timestamp:
07/23/06 07:57:36 (8 years ago)
Author:
xi
Message:

Add Emitter definitions and implement the Writer.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libyaml/trunk/src/parser.c

    r210 r211  
    4343 
    4444/* 
    45  * Event initializers. 
    46  */ 
    47  
    48 #define EVENT_INIT(event,event_type,event_start_mark,event_end_mark)            \ 
    49     (memset(&(event), 0, sizeof(yaml_event_t)),                                 \ 
    50      (event).type = (event_type),                                               \ 
    51      (event).start_mark = (event_start_mark),                                   \ 
    52      (event).end_mark = (event_end_mark)) 
    53  
    54 #define STREAM_START_EVENT_INIT(event,event_encoding,start_mark,end_mark)       \ 
    55     (EVENT_INIT((event),YAML_STREAM_START_EVENT,(start_mark),(end_mark)),       \ 
    56      (event).data.stream_start.encoding = (event_encoding)) 
    57  
    58 #define STREAM_END_EVENT_INIT(event,start_mark,end_mark)                        \ 
    59     (EVENT_INIT((event),YAML_STREAM_END_EVENT,(start_mark),(end_mark))) 
    60  
    61 #define DOCUMENT_START_EVENT_INIT(event,event_version_directive,                \ 
    62         event_tag_directives_start,event_tag_directives_end,event_implicit,start_mark,end_mark) \ 
    63     (EVENT_INIT((event),YAML_DOCUMENT_START_EVENT,(start_mark),(end_mark)),     \ 
    64      (event).data.document_start.version_directive = (event_version_directive), \ 
    65      (event).data.document_start.tag_directives.start = (event_tag_directives_start),   \ 
    66      (event).data.document_start.tag_directives.end = (event_tag_directives_end),   \ 
    67      (event).data.document_start.implicit = (event_implicit)) 
    68  
    69 #define DOCUMENT_END_EVENT_INIT(event,event_implicit,start_mark,end_mark)       \ 
    70     (EVENT_INIT((event),YAML_DOCUMENT_END_EVENT,(start_mark),(end_mark)),       \ 
    71      (event).data.document_end.implicit = (event_implicit)) 
    72  
    73 #define ALIAS_EVENT_INIT(event,event_anchor,start_mark,end_mark)                \ 
    74     (EVENT_INIT((event),YAML_ALIAS_EVENT,(start_mark),(end_mark)),              \ 
    75      (event).data.alias.anchor = (event_anchor)) 
    76  
    77 #define SCALAR_EVENT_INIT(event,event_anchor,event_tag,event_value,event_length,    \ 
    78         event_plain_implicit, event_quoted_implicit,event_style,start_mark,end_mark)    \ 
    79     (EVENT_INIT((event),YAML_SCALAR_EVENT,(start_mark),(end_mark)),             \ 
    80      (event).data.scalar.anchor = (event_anchor),                               \ 
    81      (event).data.scalar.tag = (event_tag),                                     \ 
    82      (event).data.scalar.value = (event_value),                                 \ 
    83      (event).data.scalar.length = (event_length),                               \ 
    84      (event).data.scalar.plain_implicit = (event_plain_implicit),               \ 
    85      (event).data.scalar.quoted_implicit = (event_quoted_implicit),             \ 
    86      (event).data.scalar.style = (event_style)) 
    87  
    88 #define SEQUENCE_START_EVENT_INIT(event,event_anchor,event_tag,                 \ 
    89         event_implicit,event_style,start_mark,end_mark)                         \ 
    90     (EVENT_INIT((event),YAML_SEQUENCE_START_EVENT,(start_mark),(end_mark)),     \ 
    91      (event).data.sequence_start.anchor = (event_anchor),                       \ 
    92      (event).data.sequence_start.tag = (event_tag),                             \ 
    93      (event).data.sequence_start.implicit = (event_implicit),                   \ 
    94      (event).data.sequence_start.style = (event_style)) 
    95  
    96 #define SEQUENCE_END_EVENT_INIT(event,start_mark,end_mark)                      \ 
    97     (EVENT_INIT((event),YAML_SEQUENCE_END_EVENT,(start_mark),(end_mark))) 
    98  
    99 #define MAPPING_START_EVENT_INIT(event,event_anchor,event_tag,                  \ 
    100         event_implicit,event_style,start_mark,end_mark)                         \ 
    101     (EVENT_INIT((event),YAML_MAPPING_START_EVENT,(start_mark),(end_mark)),      \ 
    102      (event).data.mapping_start.anchor = (event_anchor),                        \ 
    103      (event).data.mapping_start.tag = (event_tag),                              \ 
    104      (event).data.mapping_start.implicit = (event_implicit),                    \ 
    105      (event).data.mapping_start.style = (event_style)) 
    106  
    107 #define MAPPING_END_EVENT_INIT(event,start_mark,end_mark)                       \ 
    108     (EVENT_INIT((event),YAML_MAPPING_END_EVENT,(start_mark),(end_mark))) 
    109  
    110 /* 
    11145 * Peek the next token in the token queue. 
    11246 */ 
Note: See TracChangeset for help on using the changeset viewer.