Changeset 9
- Timestamp:
- 05/15/08 15:45:42 (2 months ago)
- Location:
- trunk/YamlReference
- Files:
-
- 14 added
- 13 modified
-
Text/Yaml/Reference.bnf (modified) (28 diffs)
-
Text/Yaml/Reference.hs (modified) (27 diffs)
-
YamlReference.cabal (modified) (22 diffs)
-
tests/c-flow-indicator.collect-entry.input (added)
-
tests/c-flow-indicator.collect-entry.output (added)
-
tests/c-flow-indicator.invalid.input (added)
-
tests/c-flow-indicator.invalid.output (added)
-
tests/c-flow-indicator.mapping-end.input (added)
-
tests/c-flow-indicator.mapping-end.output (added)
-
tests/c-flow-indicator.mapping-start.input (added)
-
tests/c-flow-indicator.mapping-start.output (added)
-
tests/c-flow-indicator.sequence-end.input (added)
-
tests/c-flow-indicator.sequence-end.output (added)
-
tests/c-flow-indicator.sequence-start.input (added)
-
tests/c-flow-indicator.sequence-start.output (added)
-
tests/c-l-block-seq-entry.n=2.invalid.input (modified) (1 diff)
-
tests/c-l-block-seq-entry.n=2.invalid.output (modified) (1 diff)
-
tests/c-printable.invalid.input (modified) (1 diff)
-
tests/c-printable.invalid.output (modified) (1 diff)
-
tests/l+block-sequence.n=1.output (modified) (2 diffs)
-
tests/nb-ns-plain-in-line.c=flow-out.invalid.input (added)
-
tests/nb-ns-plain-in-line.c=flow-out.invalid.output (added)
-
tests/s-l+block-indented.n=2.c=block-in.in-line-map.output (modified) (2 diffs)
-
tests/s-l+block-indented.n=2.c=block-in.in-line-seq.output (modified) (2 diffs)
-
tests/s-l+block-indented.n=2.c=block-out.in-line-map.output (modified) (2 diffs)
-
tests/s-l+block-indented.n=2.c=block-out.in-line-seq.output (modified) (2 diffs)
-
yeast2html (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/YamlReference/Text/Yaml/Reference.bnf
r6 r9 10 10 / ('\x10000', '\x10FFFF') 11 11 12 c_json {- 2 -} = '\x9' / '\xA' / '\xD' / ('\x20', '\x10ffff') 13 12 14 -- 5.2 Character Encodings 13 15 14 c_byte_order_mark {- 2-} = '\xFEFF' & detect_utf_encoding16 c_byte_order_mark {- 3 -} = '\xFEFF' & detect_utf_encoding 15 17 16 18 -- 5.3 Indicator Characters 17 19 18 c_sequence_entry {- 3-} = indicator '-'19 c_mapping_key {- 4-} = indicator '?'20 c_mapping_value {- 5-} = indicator ':'21 22 c_collect_entry {- 6-} = indicator ','23 c_sequence_start {- 7-} = indicator '['24 c_sequence_end {- 8-} = indicator ']'25 c_mapping_start {- 9-} = indicator '{'26 c_mapping_end {- 1 0-} = indicator '}'27 28 c_comment {- 1 1-} = indicator '#'29 30 c_anchor {- 1 2-} = indicator '&'31 c_alias {- 1 3-} = indicator '*'32 c_tag {- 1 4-} = indicator '!'33 34 c_literal {- 1 5-} = indicator '|'35 c_folded {- 1 6-} = indicator '>'36 37 c_single_quote {- 1 7-} = indicator '\''38 c_double_quote {- 1 8-} = indicator '"'39 40 c_directive {- 19-} = indicator '%'41 42 c_reserved {- 2 0-} = indicator ( '@' / '`' )43 44 c_indicator {- 2 1-} = c_sequence_entry / c_mapping_key / c_mapping_value / c_collect_entry20 c_sequence_entry {- 4 -} = indicator '-' 21 c_mapping_key {- 5 -} = indicator '?' 22 c_mapping_value {- 6 -} = indicator ':' 23 24 c_collect_entry {- 7 -} = indicator ',' 25 c_sequence_start {- 8 -} = indicator '[' 26 c_sequence_end {- 9 -} = indicator ']' 27 c_mapping_start {- 10 -} = indicator '{' 28 c_mapping_end {- 11 -} = indicator '}' 29 30 c_comment {- 12 -} = indicator '#' 31 32 c_anchor {- 13 -} = indicator '&' 33 c_alias {- 14 -} = indicator '*' 34 c_tag {- 15 -} = indicator '!' 35 36 c_literal {- 16 -} = indicator '|' 37 c_folded {- 17 -} = indicator '>' 38 39 c_single_quote {- 18 -} = indicator '\'' 40 c_double_quote {- 19 -} = indicator '"' 41 42 c_directive {- 20 -} = indicator '%' 43 44 c_reserved {- 21 -} = indicator ( '@' / '`' ) 45 46 c_indicator {- 22 -} = c_sequence_entry / c_mapping_key / c_mapping_value / c_collect_entry 45 47 / c_sequence_start / c_sequence_end / c_mapping_start / c_mapping_end 46 48 / c_comment / c_anchor / c_alias / c_tag … … 48 50 / c_directive / c_reserved 49 51 52 c_flow_indicator {- 23 -} = c_collect_entry / c_sequence_start / c_sequence_end / c_mapping_start / c_mapping_end 53 50 54 -- 5.4 Line Break Characters 51 55 52 b_line_feed {- 22 -} = '\xA' 53 b_carriage_return {- 23 -} = '\xD' 54 b_next_line {- 24 -} = '\x85' 55 b_line_separator {- 25 -} = '\x2028' 56 b_paragraph_separator {- 26 -} = '\x2029' 57 58 b_char {- 27 -} = b_line_feed / b_carriage_return / b_next_line 59 / b_line_separator / b_paragraph_separator 60 61 nb_char {- 28 -} = c_printable - b_char 62 63 b_specific {- 29 -} = ( b_line_separator / b_paragraph_separator ) 64 & nextLine 65 66 b_generic {- 30 -} = ( b_carriage_return & b_line_feed 67 / b_carriage_return 68 / b_line_feed 69 / b_next_line ) 70 & nextLine 71 72 b_as_line_feed {- 31 -} = token LineFeed b_generic 73 b_normalized {- 32 -} = b_as_line_feed / token Break b_specific 74 75 b_non_content_generic {- 33 -} = token Continue b_generic 76 77 b_non_content_any {- 34 -} = b_non_content_generic / token Continue b_specific 56 b_line_feed {- 24 -} = '\xA' 57 b_carriage_return {- 25 -} = '\xD' 58 59 b_char {- 26 -} = b_line_feed / b_carriage_return 60 61 nb_char {- 27 -} = c_printable - b_char 62 63 nb_json {- 28 -} = c_json - b_char 64 65 b_break {- 29 -} = ( b_carriage_return & b_line_feed 66 / b_carriage_return 67 / b_line_feed ) 68 & nextLine 69 70 b_as_line_feed {- 30 -} = token LineFeed b_break 71 72 b_non_content {- 31 -} = token Continue b_break 78 73 79 74 -- 5.5 White Space Characters 80 75 81 s_space {- 3 5-} = '\x20'82 s_tab {- 3 6-} = '\x9'83 s_white {- 3 7-} = s_space / s_tab84 85 ns_char {- 3 8-} = nb_char - s_white76 s_space {- 32 -} = '\x20' 77 s_tab {- 33 -} = '\x9' 78 s_white {- 34 -} = s_space / s_tab 79 80 ns_char {- 35 -} = nb_char - s_white 86 81 87 82 -- 5.6 Miscellaneous Characters 88 83 89 ns_dec_digit {- 3 9-} = ('\x30', '\x39')90 91 ns_hex_digit {- 40-} = ns_dec_digit84 ns_dec_digit {- 36 -} = ('\x30', '\x39') 85 86 ns_hex_digit {- 37 -} = ns_dec_digit 92 87 / ('\x41', '\x46') / ('\x61', '\x66') 93 88 94 ns_ascii_letter {- 41-} = ('\x41', '\x5A') / ('\x61', '\x7A')95 96 ns_word_char {- 42-} = ns_dec_digit / ns_ascii_letter / '-'97 98 ns_uri_char {- 4 3-} = "escape"89 ns_ascii_letter {- 38 -} = ('\x41', '\x5A') / ('\x61', '\x7A') 90 91 ns_word_char {- 39 -} = ns_dec_digit / ns_ascii_letter / '-' 92 93 ns_uri_char {- 40 -} = "escape" 99 94 ^ ( ns_word_char 100 95 / '%' ! "escape" & ns_hex_digit & ns_hex_digit … … 102 97 / '_' / '.' / '!' / '~' / '*' / '\'' / '(' / ')' / '[' / ']' ) 103 98 104 ns_tag_char {- 4 4 -} = ns_uri_char - c_tag99 ns_tag_char {- 41 -} = ns_uri_char - c_tag - c_flow_indicator 105 100 106 101 -- 5.7 Escaped Characters 107 102 108 c_escape {- 45 -} = indicator '\\' 109 110 ns_esc_null {- 46 -} = meta '0' 111 ns_esc_bell {- 47 -} = meta 'a' 112 ns_esc_backspace {- 48 -} = meta 'b' 113 ns_esc_horizontal_tab {- 49 -} = meta ( 't' / '\x9' ) 114 ns_esc_line_feed {- 50 -} = meta 'n' 115 ns_esc_vertical_tab {- 51 -} = meta 'v' 116 ns_esc_form_feed {- 52 -} = meta 'f' 117 ns_esc_carriage_return {- 53 -} = meta 'r' 118 ns_esc_escape {- 54 -} = meta 'e' 119 ns_esc_space {- 55 -} = meta '\x20' 120 ns_esc_double_quote {- 56 -} = meta '"' 121 ns_esc_backslash {- 57 -} = meta '\\' 122 ns_esc_next_line {- 58 -} = meta 'N' 123 ns_esc_non_breaking_space {- 59 -} = meta '_' 124 ns_esc_line_separator {- 60 -} = meta 'L' 125 ns_esc_paragraph_separator {- 61 -} = meta 'P' 126 ns_esc_8_bit {- 62 -} = indicator 'x' ! "escaped" & meta ( ns_hex_digit % 2 ) 127 ns_esc_16_bit {- 63 -} = indicator 'u' ! "escaped" & meta ( ns_hex_digit % 4 ) 128 ns_esc_32_bit {- 64 -} = indicator 'U' ! "escaped" & meta ( ns_hex_digit % 8 ) 129 130 c_ns_esc_char {- 65 -} = nest BeginEscape 103 c_escape {- 42 -} = indicator '\\' 104 105 ns_esc_null {- 43 -} = meta '0' 106 ns_esc_bell {- 44 -} = meta 'a' 107 ns_esc_backspace {- 45 -} = meta 'b' 108 ns_esc_horizontal_tab {- 46 -} = meta ( 't' / '\x9' ) 109 ns_esc_line_feed {- 47 -} = meta 'n' 110 ns_esc_vertical_tab {- 48 -} = meta 'v' 111 ns_esc_form_feed {- 49 -} = meta 'f' 112 ns_esc_carriage_return {- 50 -} = meta 'r' 113 ns_esc_escape {- 51 -} = meta 'e' 114 ns_esc_space {- 52 -} = meta '\x20' 115 ns_esc_double_quote {- 53 -} = meta '"' 116 ns_esc_slash {- 54 -} = meta '/' 117 ns_esc_backslash {- 55 -} = meta '\\' 118 ns_esc_next_line {- 56 -} = meta 'N' 119 ns_esc_non_breaking_space {- 57 -} = meta '_' 120 ns_esc_line_separator {- 58 -} = meta 'L' 121 ns_esc_paragraph_separator {- 59 -} = meta 'P' 122 ns_esc_8_bit {- 60 -} = indicator 'x' ! "escaped" & meta ( ns_hex_digit % 2 ) 123 ns_esc_16_bit {- 61 -} = indicator 'u' ! "escaped" & meta ( ns_hex_digit % 4 ) 124 ns_esc_32_bit {- 62 -} = indicator 'U' ! "escaped" & meta ( ns_hex_digit % 8 ) 125 126 c_ns_esc_char {- 63 -} = nest BeginEscape 131 127 & c_escape ! "escape" 132 128 & "escaped" … … 142 138 / ns_esc_space 143 139 / ns_esc_double_quote 140 / ns_esc_slash 144 141 / ns_esc_backslash 145 142 / ns_esc_next_line … … 154 151 -- 6.1 Indentation Spaces 155 152 156 s_indent n {- 6 6-} = token Indent ( s_space % n )157 158 s_indent_lt n {- 6 7-} = token Indent ( s_space <% n )159 s_indent_le n {- 6 8-} = token Indent ( s_space <% (n .+ 1) )153 s_indent n {- 64 -} = token Indent ( s_space % n ) 154 155 s_indent_lt n {- 65 -} = token Indent ( s_space <% n ) 156 s_indent_le n {- 66 -} = token Indent ( s_space <% (n .+ 1) ) 160 157 161 158 -- 6.2 Separation Spaces 162 159 163 s_separate_in_line {- 6 9-} = token White ( s_white +) / sol160 s_separate_in_line {- 67 -} = token White ( s_white +) / sol 164 161 165 162 -- 6.3 Line Prefixes 166 163 167 s_line_prefix n c {- 70-} = case c of164 s_line_prefix n c {- 68 -} = case c of 168 165 BlockOut -> s_block_line_prefix n 169 166 BlockIn -> s_block_line_prefix n … … 171 168 FlowIn -> s_flow_line_prefix n 172 169 173 s_block_line_prefix n {- 71-} = s_indent n174 s_flow_line_prefix n {- 7 2-} = s_indent n & ( s_separate_in_line ?)170 s_block_line_prefix n {- 69 -} = s_indent n 171 s_flow_line_prefix n {- 70 -} = s_indent n & ( s_separate_in_line ?) 175 172 176 173 -- 6.4 Empty Lines 177 174 178 l_empty n c {- 73 -} = ( s_line_prefix n c / s_indent_lt n ) 179 & b_normalized 180 181 -- 6.5 Comments 182 183 c_nb_comment_text {- 74 -} = nest BeginComment 175 l_empty n c {- 71 -} = ( s_line_prefix n c / s_indent_lt n ) 176 & b_as_line_feed 177 178 -- 6.5 Line Folding 179 180 b_l_trimmed n c {- 72 -} = b_non_content & ( l_empty n c +) 181 182 b_as_space {- 73 -} = token LineFold b_break 183 184 b_l_folded n c {- 74 -} = b_l_trimmed n c / b_as_space 185 186 s_s_flow_folded n {- 75 -} = ( s_separate_in_line ?) & b_l_folded n FlowIn 187 & s_line_prefix n FlowIn 188 189 -- 6.6 Comments 190 191 c_nb_comment_text {- 76 -} = nest BeginComment 184 192 & c_comment & meta ( nb_char *) 185 193 & nest EndComment 186 194 187 s_b_comment {- 7 5-} = ( s_separate_in_line & ( c_nb_comment_text ?) ?)188 & b_non_content _any189 190 l_comment {- 7 6 -} = s_separate_in_line & ( c_nb_comment_text ?) & b_non_content_any191 192 s_l_comments {- 7 7-} = ( s_b_comment / sol )195 s_b_comment {- 77 -} = ( s_separate_in_line & ( c_nb_comment_text ?) ?) 196 & b_non_content 197 198 l_comment {- 78 -} = s_separate_in_line & ( c_nb_comment_text ?) & b_non_content 199 200 s_l_comments {- 79 -} = ( s_b_comment / sol ) 193 201 & ( l_comment *) 194 202 195 -- 6. 6Separation Lines196 197 s_separate n c {- 78-} = case c of203 -- 6.7 Separation Lines 204 205 s_separate n c {- 80 -} = case c of 198 206 BlockOut -> s_separate_lines n 199 207 BlockIn -> s_separate_lines n … … 201 209 FlowIn -> s_separate_lines n 202 210 FlowKey -> s_separate_in_line 203 s_separate_lines n {- 79-} = s_l_comments & s_flow_line_prefix n211 s_separate_lines n {- 81 -} = s_l_comments & s_flow_line_prefix n 204 212 / s_separate_in_line 205 213 206 -- 6.7 Line Folding207 208 b_l_folded_specific n c {- 80 -} = token Break b_specific & ( l_empty n c *)209 210 b_l_folded_trimmed n c {- 81 -} = b_non_content_generic & ( l_empty n c +)211 212 b_l_folded_as_space {- 82 -} = token LineFold b_generic213 214 b_l_folded_any n c {- 83 -} = b_l_folded_specific n c215 / b_l_folded_trimmed n c216 / b_l_folded_as_space217 218 s_l_flow_folded n {- 84 -} = ( s_separate_in_line ?) & b_l_folded_any n FlowIn219 220 214 -- 6.8 Directives 221 215 222 l_directive {- 85-} = nest BeginDirective223 & c_directive224 & "directive"225 ^ ( ns_yaml_directive226 / ns_tag_directive227 / ns_reserved_directive )228 & nest EndDirective229 & s_l_comments230 231 ns_reserved_directive {- 86-} = ns_directive_name232 & ( s_separate_in_line & ns_directive_parameter *)233 ns_directive_name {- 87-} = meta ( ns_char +)234 ns_directive_parameter {- 88-} = meta ( ns_char +)216 l_directive {- 82 -} = nest BeginDirective 217 & c_directive 218 & "directive" 219 ^ ( ns_yaml_directive 220 / ns_tag_directive 221 / ns_reserved_directive ) 222 & nest EndDirective 223 & s_l_comments 224 225 ns_reserved_directive {- 83 -} = ns_directive_name 226 & ( s_separate_in_line & ns_directive_parameter *) 227 ns_directive_name {- 84 -} = meta ( ns_char +) 228 ns_directive_parameter {- 85 -} = meta ( ns_char +) 235 229 236 230 -- 6.8.1 Yaml Directives 237 231 238 ns_yaml_directive {- 89-} = meta [ 'Y', 'A', 'M', 'L' ] ! "directive"239 & s_separate_in_line & ns_yaml_version240 ns_yaml_version {- 90-} = meta ( ( ns_dec_digit +) & '.' & ( ns_dec_digit +) )232 ns_yaml_directive {- 86 -} = meta [ 'Y', 'A', 'M', 'L' ] ! "directive" 233 & s_separate_in_line & ns_yaml_version 234 ns_yaml_version {- 87 -} = meta ( ( ns_dec_digit +) & '.' & ( ns_dec_digit +) ) 241 235 242 236 -- 6.8.2 Tag Directives 243 237 244 ns_tag_directive {- 91-} = meta [ 'T', 'A', 'G' ] ! "directive"245 & s_separate_in_line & c_tag_handle238 ns_tag_directive {- 88 -} = meta [ 'T', 'A', 'G' ] ! "directive" 239 & s_separate_in_line & c_tag_handle 246 240 & s_separate_in_line & ns_tag_prefix 247 241 248 242 -- 6.8.2.1 Tag Handles 249 243 250 c_tag_handle {- 92-} = c_named_tag_handle251 / c_secondary_tag_handle252 / c_primary_tag_handle253 254 c_primary_tag_handle {- 93-} = nest BeginHandle255 & c_tag256 & nest EndHandle257 258 c_secondary_tag_handle {- 94-} = nest BeginHandle259 & c_tag & c_tag260 & nest EndHandle261 262 c_named_tag_handle {- 95-} = nest BeginHandle244 c_tag_handle {- 89 -} = c_named_tag_handle 245 / c_secondary_tag_handle 246 / c_primary_tag_handle 247 248 c_primary_tag_handle {- 90 -} = nest BeginHandle 249 & c_tag 250 & nest EndHandle 251 252 c_secondary_tag_handle {- 91 -} = nest BeginHandle 253 & c_tag & c_tag 254 & nest EndHandle 255 256 c_named_tag_handle {- 92 -} = nest BeginHandle 263 257 & c_tag & meta ( ns_word_char +) & c_tag 264 258 & nest EndHandle … … 266 260 -- 6.8.2.2 Tag Prefixes 267 261 268 ns_tag_prefix {- 96-} = nest BeginTag269 & ( c_ns_local_tag_prefix / ns_global_tag_prefix )270 & nest EndTag271 272 c_ns_local_tag_prefix {- 97-} = c_tag & meta ( ns_uri_char *)273 274 ns_global_tag_prefix {- 98-} = meta ( ns_tag_char & ( ns_uri_char *) )262 ns_tag_prefix {- 93 -} = nest BeginTag 263 & ( c_ns_local_tag_prefix / ns_global_tag_prefix ) 264 & nest EndTag 265 266 c_ns_local_tag_prefix {- 94 -} = c_tag & meta ( ns_uri_char *) 267 268 ns_global_tag_prefix {- 95 -} = meta ( ns_tag_char & ( ns_uri_char *) ) 275 269 276 270 -- 6.9 Node Properties 277 271 278 c_ns_properties n c {- 99-} = nest BeginProperties272 c_ns_properties n c {- 96 -} = nest BeginProperties 279 273 & ( ( c_ns_tag_property 280 274 & ( s_separate n c & c_ns_anchor_property ?) ) … … 285 279 -- 6.9.1 Node Tags 286 280 287 c_ns_tag_property {- 100-} = nest BeginTag281 c_ns_tag_property {- 97 -} = nest BeginTag 288 282 & ( c_verbatim_tag 289 283 / c_ns_shorthand_tag … … 291 285 & nest EndTag 292 286 293 c_verbatim_tag {- 101-} = c_tag & indicator '<' & meta ( ns_uri_char +) & indicator '>'294 295 c_ns_shorthand_tag {- 102 -} = c_named_tag_handle & meta ( ns_uri_char +)296 / c_secondary_tag_handle & meta ( ns_ uri_char +)287 c_verbatim_tag {- 98 -} = c_tag & indicator '<' & meta ( ns_uri_char +) & indicator '>' 288 289 c_ns_shorthand_tag {- 99 -} = c_named_tag_handle & meta ( ns_tag_char +) 290 / c_secondary_tag_handle & meta ( ns_tag_char +) 297 291 / c_primary_tag_handle & meta ( ns_tag_char +) 298 292 299 c_non_specific_tag {- 10 3-} = c_tag293 c_non_specific_tag {- 100 -} = c_tag 300 294 301 295 -- 6.9.2 Node Anchors 302 296 303 c_ns_anchor_property {- 10 4-} = nest BeginAnchor297 c_ns_anchor_property {- 101 -} = nest BeginAnchor 304 298 & c_anchor & ns_anchor_name 305 299 & nest EndAnchor 306 300 307 ns_anchor_char {- 10 5 -} = ns_char - ( c_collect_entry / c_sequence_start / c_sequence_end / c_mapping_start / c_mapping_end )308 ns_anchor_name {- 10 6-} = meta ( ns_anchor_char +)301 ns_anchor_char {- 102 -} = ns_char - c_flow_indicator 302 ns_anchor_name {- 103 -} = meta ( ns_anchor_char +) 309 303 310 304 -- 7.1 Alias Nodes 311 305 312 c_ns_alias_node {- 10 7-} = nest BeginAlias306 c_ns_alias_node {- 104 -} = nest BeginAlias 313 307 & c_alias ! "node" & ns_anchor_name 314 308 & nest EndAlias … … 316 310 -- 7.2 Empty Nodes 317 311 318 e_scalar {- 10 8-} = nest BeginScalar & nest EndScalar319 320 e_node {- 10 9-} = nest BeginNode & e_scalar & nest EndNode312 e_scalar {- 105 -} = nest BeginScalar & nest EndScalar 313 314 e_node {- 106 -} = nest BeginNode & e_scalar & nest EndNode 321 315 322 316 -- 7.3.1 Double Quoted Style 323 317 324 nb_double_char {- 1 10 -} = "escape" ^ ( nb_char- c_escape - c_double_quote / c_ns_esc_char )325 ns_double_char {- 1 11-} = nb_double_char - s_white326 327 c_double_quoted n c {- 1 12-} = nest BeginScalar318 nb_double_char {- 107 -} = "escape" ^ ( nb_json - c_escape - c_double_quote / c_ns_esc_char ) 319 ns_double_char {- 108 -} = nb_double_char - s_white 320 321 c_double_quoted n c {- 109 -} = nest BeginScalar 328 322 & c_double_quote ! "node" & text ( nb_double_text n c ) & c_double_quote 329 323 & nest EndScalar 330 nb_double_text n c {- 11 3-} = case c of324 nb_double_text n c {- 110 -} = case c of 331 325 FlowOut -> nb_double_multi_line n 332 326 FlowIn -> nb_double_multi_line n 333 327 FlowKey -> nb_double_one_line 334 nb_double_one_line {- 11 4-} = ( nb_double_char *)335 336 s_ l_double_escaped n {- 115-} = ( s_white *)328 nb_double_one_line {- 111 -} = ( nb_double_char *) 329 330 s_s_double_escaped n {- 112 -} = ( s_white *) 337 331 & nest BeginEscape 338 & c_escape ! "escape" & b_non_content _any332 & c_escape ! "escape" & b_non_content 339 333 & nest EndEscape 340 334 & ( l_empty n FlowIn *) 341 s_l_double_any n {- 116 -} = "escape" ^ ( s_l_double_escaped n / s_l_flow_folded n ) 342 343 nb_ns_double_in_line {- 117 -} = ( ( s_white *) & ns_double_char *) 344 s_ns_double_next_line n {- 118 -} = s_l_double_any n 345 & s_flow_line_prefixn335 & s_line_prefix n FlowIn 336 s_s_double_break n {- 113 -} = "escape" ^ ( s_s_double_escaped n / s_s_flow_folded n ) 337 338 nb_ns_double_in_line {- 114 -} = ( ( s_white *) & ns_double_char *) 339 s_ns_double_next_line n {- 115 -} = s_s_double_break n 346 340 & ns_double_char & nb_ns_double_in_line 347 nb_double_multi_line n {- 11 9-} = nb_ns_double_in_line341 nb_double_multi_line n {- 116 -} = nb_ns_double_in_line 348 342 & ( s_ns_double_next_line n *) 349 343 & ( s_white *) … … 351 345 -- 7.3.2 Single Quoted Style 352 346 353 c_quoted_quote {- 1 20-} = nest BeginEscape347 c_quoted_quote {- 117 -} = nest BeginEscape 354 348 & c_single_quote ! "escape" & meta '\'' 355 349 & nest EndEscape 356 nb_single_char {- 1 21 -} = "escape" ^ ( nb_char- c_single_quote / c_quoted_quote )357 ns_single_char {- 1 22-} = nb_single_char - s_white358 359 c_single_quoted n c {- 12 3-}= nest BeginScalar350 nb_single_char {- 118 -} = "escape" ^ ( nb_json - c_single_quote / c_quoted_quote ) 351 ns_single_char {- 119 -} = nb_single_char - s_white 352 353 c_single_quoted n c {- 120 -}= nest BeginScalar 360 354 & c_single_quote & text ( nb_single_text n c ) & c_single_quote 361 355 & nest EndScalar 362 nb_single_text n c {- 12 4-} = case c of356 nb_single_text n c {- 121 -} = case c of 363 357 FlowOut -> nb_single_multi_line n 364 358 FlowIn -> nb_single_multi_line n 365 359 FlowKey -> nb_single_one_line 366 nb_single_one_line {- 125 -} = ( nb_single_char *) 367 368 nb_ns_single_in_line {- 126 -} = ( ( s_white *) & ns_single_char *) 369 s_ns_single_next_line n {- 127 -} = s_l_flow_folded n 370 & s_flow_line_prefix n 360 nb_single_one_line {- 122 -} = ( nb_single_char *) 361 362 nb_ns_single_in_line {- 123 -} = ( ( s_white *) & ns_single_char *) 363 s_ns_single_next_line n {- 124 -} = s_s_flow_folded n 371 364 & ns_single_char & nb_ns_single_in_line 372 nb_single_multi_line n {- 12 8-} = ( nb_ns_single_in_line *)365 nb_single_multi_line n {- 125 -} = ( nb_ns_single_in_line *) 373 366 & ( s_ns_single_next_line n *) 374 367 & ( s_white *) … … 376 369 -- 7.3.3 Plain Style 377 370 378 ns_plain_first c {- 12 9-} = ns_char - c_indicator371 ns_plain_first c {- 126 -} = ns_char - c_indicator 379 372 / ( ':' / '?' / '-' ) & ( ns_char >?) 380 373 381 ns_plain_safe c {- 1 30-} = case c of374 ns_plain_safe c {- 127 -} = case c of 382 375 FlowOut -> ns_plain_safe_out 383 376 FlowIn -> ns_plain_safe_in 384 377 FlowKey -> ns_plain_safe_in 385 ns_plain_safe_out {- 1 31-} = ns_char - c_mapping_value - c_comment386 ns_plain_safe_in {- 132 -}= ns_plain_safe_out - ( c_collect_entry / c_sequence_start / c_sequence_end / c_mapping_start / c_mapping_end )387 ns_plain_char c {- 13 3-} = ns_plain_safe c378 ns_plain_safe_out {- 128 -} = ns_char - c_mapping_value - c_comment 379 ns_plain_safe_in {- 129 -} = ns_plain_safe_out - c_flow_indicator 380 ns_plain_char c {- 130 -} = ns_plain_safe c 388 381 / ( ns_char <?) & '#' 389 382 / ':' & ( ns_char >?) 390 nb_plain_char c {- 13 4-} = s_white / ns_plain_char c391 392 ns_plain n c {- 13 5-} = nest BeginScalar383 nb_plain_char c {- 131 -} = s_white / ns_plain_char c 384 385 ns_plain n c {- 132 -} = nest BeginScalar 393 386 & text (case c of 394 387 FlowOut -> ns_plain_multi_line n c … … 396 389 FlowKey -> ns_plain_one_line c) 397 390
