github.com/keysonZZZ/kmg@v0.0.0-20151121023212-05317bfd7d39/encoding/kmgYaml/yaml_emitter_process.go (about) 1 package kmgYaml 2 3 // Write an achor. 4 func yaml_emitter_process_anchor(emitter *yaml_emitter_t) bool { 5 if emitter.anchor_data.anchor == nil { 6 return true 7 } 8 c := []byte{'&'} 9 if emitter.anchor_data.alias { 10 c[0] = '*' 11 } 12 if !yaml_emitter_write_indicator(emitter, c, true, false, false) { 13 return false 14 } 15 return yaml_emitter_write_anchor(emitter, emitter.anchor_data.anchor) 16 } 17 18 // Write a tag. 19 func yaml_emitter_process_tag(emitter *yaml_emitter_t) bool { 20 if len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 { 21 return true 22 } 23 if len(emitter.tag_data.handle) > 0 { 24 if !yaml_emitter_write_tag_handle(emitter, emitter.tag_data.handle) { 25 return false 26 } 27 if len(emitter.tag_data.suffix) > 0 { 28 if !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) { 29 return false 30 } 31 } 32 } else { 33 // [Go] Allocate these slices elsewhere. 34 if !yaml_emitter_write_indicator(emitter, []byte("!<"), true, false, false) { 35 return false 36 } 37 if !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) { 38 return false 39 } 40 if !yaml_emitter_write_indicator(emitter, []byte{'>'}, false, false, false) { 41 return false 42 } 43 } 44 return true 45 } 46 47 // Write a scalar. 48 func yaml_emitter_process_scalar(emitter *yaml_emitter_t) bool { 49 switch emitter.scalar_data.style { 50 case yaml_PLAIN_SCALAR_STYLE: 51 return yaml_emitter_write_plain_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) 52 53 case yaml_SINGLE_QUOTED_SCALAR_STYLE: 54 return yaml_emitter_write_single_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) 55 56 case yaml_DOUBLE_QUOTED_SCALAR_STYLE: 57 return yaml_emitter_write_double_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) 58 59 case yaml_LITERAL_SCALAR_STYLE: 60 return yaml_emitter_write_literal_scalar(emitter, emitter.scalar_data.value) 61 62 case yaml_FOLDED_SCALAR_STYLE: 63 return yaml_emitter_write_folded_scalar(emitter, emitter.scalar_data.value) 64 } 65 panic("unknown scalar style") 66 }