Changeset 199 for libyaml/trunk/src/api.c
- Timestamp:
- 07/03/06 09:34:57 (7 years ago)
- File:
-
- 1 edited
-
libyaml/trunk/src/api.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libyaml/trunk/src/api.c
r190 r199 277 277 if (!token) return NULL; 278 278 279 token->data. encoding = encoding;279 token->data.stream_start.encoding = encoding; 280 280 281 281 return token; … … 348 348 if (!token) return NULL; 349 349 350 token->data.a nchor= anchor;350 token->data.alias.value = anchor; 351 351 352 352 return token; … … 366 366 if (!token) return NULL; 367 367 368 token->data.anchor = anchor;368 token->data.anchor.value = anchor; 369 369 370 370 return token; … … 428 428 429 429 case YAML_ALIAS_TOKEN: 430 yaml_free(token->data.alias.value); 431 break; 432 430 433 case YAML_ANCHOR_TOKEN: 431 yaml_free(token->data.anchor );434 yaml_free(token->data.anchor.value); 432 435 break; 433 436 … … 447 450 } 448 451 452 /* 453 * Create an event. 454 */ 455 456 static yaml_event_t * 457 yaml_event_new(yaml_event_type_t type, 458 yaml_mark_t start_mark, yaml_mark_t end_mark) 459 { 460 yaml_event_t *event = yaml_malloc(sizeof(yaml_event_t)); 461 462 if (!event) return NULL; 463 464 memset(event, 0, sizeof(yaml_event_t)); 465 466 event->type = type; 467 event->start_mark = start_mark; 468 event->end_mark = end_mark; 469 470 return event; 471 } 472 473 /* 474 * Create a STREAM-START event. 475 */ 476 477 YAML_DECLARE(yaml_event_t *) 478 yaml_stream_start_event_new(yaml_encoding_t encoding, 479 yaml_mark_t start_mark, yaml_mark_t end_mark) 480 { 481 yaml_event_t *event = yaml_event_new(YAML_STREAM_START_EVENT, 482 start_mark, end_mark); 483 484 if (!event) return NULL; 485 486 event->data.stream_start.encoding = encoding; 487 488 return event; 489 } 490 491 /* 492 * Create a STREAM-END event. 493 */ 494 495 YAML_DECLARE(yaml_event_t *) 496 yaml_stream_end_event_new(yaml_mark_t start_mark, yaml_mark_t end_mark) 497 { 498 return yaml_event_new(YAML_STREAM_END_EVENT, start_mark, end_mark); 499 } 500 501 /* 502 * Create a DOCUMENT-START event. 503 */ 504 505 YAML_DECLARE(yaml_event_t *) 506 yaml_document_start_event_new(yaml_version_directive_t *version_directive, 507 yaml_tag_directive_t **tag_directives, int implicit, 508 yaml_mark_t start_mark, yaml_mark_t end_mark) 509 { 510 yaml_event_t *event = yaml_event_new(YAML_DOCUMENT_START_EVENT, 511 start_mark, end_mark); 512 513 if (!event) return NULL; 514 515 event->data.document_start.version_directive = version_directive; 516 event->data.document_start.tag_directives = tag_directives; 517 event->data.document_start.implicit = implicit; 518 519 return event; 520 } 521 522 /* 523 * Create a DOCUMENT-END event. 524 */ 525 526 YAML_DECLARE(yaml_event_t *) 527 yaml_document_end_event_new(int implicit, 528 yaml_mark_t start_mark, yaml_mark_t end_mark) 529 { 530 yaml_event_t *event = yaml_event_new(YAML_DOCUMENT_END_EVENT, 531 start_mark, end_mark); 532 533 if (!event) return NULL; 534 535 event->data.document_end.implicit = implicit; 536 537 return event; 538 } 539 540 /* 541 * Create an ALIAS event. 542 */ 543 544 YAML_DECLARE(yaml_event_t *) 545 yaml_alias_event_new(yaml_char_t *anchor, 546 yaml_mark_t start_mark, yaml_mark_t end_mark) 547 { 548 yaml_event_t *event = yaml_event_new(YAML_ALIAS_EVENT, 549 start_mark, end_mark); 550 551 if (!event) return NULL; 552 553 event->data.alias.anchor = anchor; 554 555 return event; 556 } 557 558 /* 559 * Create a SCALAR event. 560 */ 561 562 YAML_DECLARE(yaml_event_t *) 563 yaml_scalar_event_new(yaml_char_t *anchor, yaml_char_t *tag, 564 yaml_char_t *value, size_t length, 565 int plain_implicit, int quoted_implicit, 566 yaml_scalar_style_t style, 567 yaml_mark_t start_mark, yaml_mark_t end_mark) 568 { 569 yaml_event_t *event = yaml_event_new(YAML_SCALAR_EVENT, 570 start_mark, end_mark); 571 572 if (!event) return NULL; 573 574 event->data.scalar.anchor = anchor; 575 event->data.scalar.tag = tag; 576 event->data.scalar.value = value; 577 event->data.scalar.length = length; 578 event->data.scalar.plain_implicit = plain_implicit; 579 event->data.scalar.quoted_implicit = quoted_implicit; 580 event->data.scalar.style = style; 581 582 return event; 583 } 584 585 /* 586 * Create a SEQUENCE-START event. 587 */ 588 589 YAML_DECLARE(yaml_event_t *) 590 yaml_sequence_start_new(yaml_char_t *anchor, yaml_char_t *tag, 591 int implicit, yaml_sequence_style_t style, 592 yaml_mark_t start_mark, yaml_mark_t end_mark) 593 { 594 yaml_event_t *event = yaml_event_new(YAML_SEQUENCE_START_EVENT, 595 start_mark, end_mark); 596 597 if (!event) return NULL; 598 599 event->data.sequence_start.anchor = anchor; 600 event->data.sequence_start.tag = tag; 601 event->data.sequence_start.implicit = implicit; 602 event->data.sequence_start.style = style; 603 604 return event; 605 } 606 607 /* 608 * Create a SEQUENCE-END event. 609 */ 610 611 YAML_DECLARE(yaml_event_t *) 612 yaml_sequence_end_event_new(yaml_mark_t start_mark, yaml_mark_t end_mark) 613 { 614 return yaml_event_new(YAML_SEQUENCE_END_EVENT, start_mark, end_mark); 615 } 616 617 /* 618 * Create a MAPPING-START event. 619 */ 620 621 YAML_DECLARE(yaml_event_t *) 622 yaml_mapping_start_new(yaml_char_t *anchor, yaml_char_t *tag, 623 int implicit, yaml_mapping_style_t style, 624 yaml_mark_t start_mark, yaml_mark_t end_mark) 625 { 626 yaml_event_t *event = yaml_event_new(YAML_MAPPING_START_EVENT, 627 start_mark, end_mark); 628 629 if (!event) return NULL; 630 631 event->data.mapping_start.anchor = anchor; 632 event->data.mapping_start.tag = tag; 633 event->data.mapping_start.implicit = implicit; 634 event->data.mapping_start.style = style; 635 636 return event; 637 } 638 639 /* 640 * Create a MAPPING-END event. 641 */ 642 643 YAML_DECLARE(yaml_event_t *) 644 yaml_mapping_end_event_new(yaml_mark_t start_mark, yaml_mark_t end_mark) 645 { 646 return yaml_event_new(YAML_MAPPING_END_EVENT, start_mark, end_mark); 647 } 648 649 /* 650 * Destroy an event object. 651 */ 652 653 YAML_DECLARE(void) 654 yaml_event_delete(yaml_event_t *event) 655 { 656 assert(event); /* Non-NULL event object expected. */ 657 658 switch (event->type) 659 { 660 case YAML_DOCUMENT_START_EVENT: 661 yaml_free(event->data.document_start.version_directive); 662 if (event->data.document_start.tag_directives) { 663 yaml_tag_directive_t **tag_directive; 664 for (tag_directive = event->data.document_start.tag_directives; 665 *tag_directive; tag_directive++) { 666 yaml_free((*tag_directive)->handle); 667 yaml_free((*tag_directive)->prefix); 668 yaml_free(*tag_directive); 669 } 670 yaml_free(event->data.document_start.tag_directives); 671 } 672 break; 673 674 case YAML_ALIAS_EVENT: 675 yaml_free(event->data.alias.anchor); 676 break; 677 678 case YAML_SCALAR_EVENT: 679 yaml_free(event->data.scalar.anchor); 680 yaml_free(event->data.scalar.tag); 681 yaml_free(event->data.scalar.value); 682 break; 683 684 case YAML_SEQUENCE_START_EVENT: 685 yaml_free(event->data.sequence_start.anchor); 686 yaml_free(event->data.sequence_start.tag); 687 break; 688 689 case YAML_MAPPING_START_EVENT: 690 yaml_free(event->data.mapping_start.anchor); 691 yaml_free(event->data.mapping_start.tag); 692 break; 693 } 694 695 memset(event, 0, sizeof(yaml_event_t)); 696 697 yaml_free(event); 698 } 699
Note: See TracChangeset
for help on using the changeset viewer.
