Changeset 9 for trunk

Show
Ignore:
Timestamp:
05/15/08 15:45:42 (5 months ago)
Author:
oren
Message:

May 11, 2008 spec

Location:
trunk/YamlReference
Files:
14 added
13 modified

Legend:

Unmodified
Added
Removed
  • trunk/YamlReference/Text/Yaml/Reference.bnf

    r6 r9  
    1010                      / ('\x10000', '\x10FFFF') 
    1111 
     12c_json {- 2 -} = '\x9' / '\xA' / '\xD' / ('\x20', '\x10ffff') 
     13 
    1214-- 5.2 Character Encodings 
    1315 
    14 c_byte_order_mark {- 2 -} = '\xFEFF' & detect_utf_encoding 
     16c_byte_order_mark {- 3 -} = '\xFEFF' & detect_utf_encoding 
    1517 
    1618-- 5.3 Indicator Characters 
    1719 
    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    {- 10 -} = indicator '}' 
    27  
    28 c_comment        {- 11 -} = indicator '#' 
    29  
    30 c_anchor         {- 12 -} = indicator '&' 
    31 c_alias          {- 13 -} = indicator '*' 
    32 c_tag            {- 14 -} = indicator '!' 
    33  
    34 c_literal        {- 15 -} = indicator '|' 
    35 c_folded         {- 16 -} = indicator '>' 
    36  
    37 c_single_quote   {- 17 -} = indicator '\'' 
    38 c_double_quote   {- 18 -} = indicator '"' 
    39  
    40 c_directive      {- 19 -} = indicator '%' 
    41  
    42 c_reserved       {- 20 -} = indicator ( '@' /  '`' ) 
    43  
    44 c_indicator {- 21 -} = c_sequence_entry / c_mapping_key / c_mapping_value / c_collect_entry 
     20c_sequence_entry {-  4 -} = indicator '-' 
     21c_mapping_key    {-  5 -} = indicator '?' 
     22c_mapping_value  {-  6 -} = indicator ':' 
     23 
     24c_collect_entry  {-  7 -} = indicator ',' 
     25c_sequence_start {-  8 -} = indicator '[' 
     26c_sequence_end   {-  9 -} = indicator ']' 
     27c_mapping_start  {- 10 -} = indicator '{' 
     28c_mapping_end    {- 11 -} = indicator '}' 
     29 
     30c_comment        {- 12 -} = indicator '#' 
     31 
     32c_anchor         {- 13 -} = indicator '&' 
     33c_alias          {- 14 -} = indicator '*' 
     34c_tag            {- 15 -} = indicator '!' 
     35 
     36c_literal        {- 16 -} = indicator '|' 
     37c_folded         {- 17 -} = indicator '>' 
     38 
     39c_single_quote   {- 18 -} = indicator '\'' 
     40c_double_quote   {- 19 -} = indicator '"' 
     41 
     42c_directive      {- 20 -} = indicator '%' 
     43 
     44c_reserved       {- 21 -} = indicator ( '@' /  '`' ) 
     45 
     46c_indicator {- 22 -} = c_sequence_entry / c_mapping_key / c_mapping_value / c_collect_entry 
    4547                     / c_sequence_start / c_sequence_end / c_mapping_start / c_mapping_end 
    4648                     / c_comment / c_anchor / c_alias / c_tag 
     
    4850                     / c_directive / c_reserved 
    4951 
     52c_flow_indicator {- 23 -} = c_collect_entry / c_sequence_start / c_sequence_end / c_mapping_start  / c_mapping_end 
     53 
    5054-- 5.4 Line Break Characters 
    5155 
    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 
     56b_line_feed           {- 24 -} = '\xA' 
     57b_carriage_return     {- 25 -} = '\xD' 
     58 
     59b_char {- 26 -} = b_line_feed / b_carriage_return 
     60 
     61nb_char {- 27 -} = c_printable - b_char 
     62 
     63nb_json {- 28 -} = c_json - b_char 
     64 
     65b_break {- 29 -} = ( b_carriage_return & b_line_feed 
     66                   / b_carriage_return 
     67                   / b_line_feed ) 
     68                 & nextLine 
     69 
     70b_as_line_feed {- 30 -} = token LineFeed b_break 
     71 
     72b_non_content {- 31 -} = token Continue b_break 
    7873 
    7974-- 5.5 White Space Characters 
    8075 
    81 s_space {- 35 -} = '\x20' 
    82 s_tab   {- 36 -} = '\x9' 
    83 s_white {- 37 -} = s_space / s_tab 
    84  
    85 ns_char {- 38 -} = nb_char - s_white 
     76s_space {- 32 -} = '\x20' 
     77s_tab   {- 33 -} = '\x9' 
     78s_white {- 34 -} = s_space / s_tab 
     79 
     80ns_char {- 35 -} = nb_char - s_white 
    8681 
    8782-- 5.6 Miscellaneous Characters 
    8883 
    89 ns_dec_digit {- 39 -} = ('\x30', '\x39') 
    90  
    91 ns_hex_digit {- 40 -} = ns_dec_digit 
     84ns_dec_digit {- 36 -} = ('\x30', '\x39') 
     85 
     86ns_hex_digit {- 37 -} = ns_dec_digit 
    9287                      / ('\x41', '\x46') / ('\x61', '\x66') 
    9388 
    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 {- 43 -} = "escape" 
     89ns_ascii_letter {- 38 -} = ('\x41', '\x5A') / ('\x61', '\x7A') 
     90 
     91ns_word_char {- 39 -} = ns_dec_digit / ns_ascii_letter / '-' 
     92 
     93ns_uri_char {- 40 -} = "escape" 
    9994                     ^ ( ns_word_char 
    10095                       / '%' ! "escape" & ns_hex_digit & ns_hex_digit 
     
    10297                       / '_' / '.' / '!' / '~' / '*' / '\'' / '(' / ')' / '[' / ']' ) 
    10398 
    104 ns_tag_char {- 44 -} = ns_uri_char - c_tag 
     99ns_tag_char {- 41 -} = ns_uri_char - c_tag - c_flow_indicator 
    105100 
    106101-- 5.7 Escaped Characters 
    107102 
    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 
     103c_escape {- 42 -} = indicator '\\' 
     104 
     105ns_esc_null                {- 43 -} = meta '0' 
     106ns_esc_bell                {- 44 -} = meta 'a' 
     107ns_esc_backspace           {- 45 -} = meta 'b' 
     108ns_esc_horizontal_tab      {- 46 -} = meta ( 't' / '\x9' ) 
     109ns_esc_line_feed           {- 47 -} = meta 'n' 
     110ns_esc_vertical_tab        {- 48 -} = meta 'v' 
     111ns_esc_form_feed           {- 49 -} = meta 'f' 
     112ns_esc_carriage_return     {- 50 -} = meta 'r' 
     113ns_esc_escape              {- 51 -} = meta 'e' 
     114ns_esc_space               {- 52 -} = meta '\x20' 
     115ns_esc_double_quote        {- 53 -} = meta '"' 
     116ns_esc_slash               {- 54 -} = meta '/' 
     117ns_esc_backslash           {- 55 -} = meta '\\' 
     118ns_esc_next_line           {- 56 -} = meta 'N' 
     119ns_esc_non_breaking_space  {- 57 -} = meta '_' 
     120ns_esc_line_separator      {- 58 -} = meta 'L' 
     121ns_esc_paragraph_separator {- 59 -} = meta 'P' 
     122ns_esc_8_bit               {- 60 -} = indicator 'x' ! "escaped" & meta ( ns_hex_digit % 2 ) 
     123ns_esc_16_bit              {- 61 -} = indicator 'u' ! "escaped" & meta ( ns_hex_digit % 4 ) 
     124ns_esc_32_bit              {- 62 -} = indicator 'U' ! "escaped" & meta ( ns_hex_digit % 8 ) 
     125 
     126c_ns_esc_char {- 63 -} = nest BeginEscape 
    131127              & c_escape ! "escape" 
    132128              & "escaped" 
     
    142138                / ns_esc_space 
    143139                / ns_esc_double_quote 
     140                / ns_esc_slash 
    144141                / ns_esc_backslash 
    145142                / ns_esc_next_line 
     
    154151-- 6.1 Indentation Spaces 
    155152 
    156 s_indent    n {- 66 -} = token Indent ( s_space % n ) 
    157  
    158 s_indent_lt n {- 67 -} = token Indent ( s_space <% n ) 
    159 s_indent_le n {- 68 -} = token Indent ( s_space <% (n .+ 1) ) 
     153s_indent    n {- 64 -} = token Indent ( s_space % n ) 
     154 
     155s_indent_lt n {- 65 -} = token Indent ( s_space <% n ) 
     156s_indent_le n {- 66 -} = token Indent ( s_space <% (n .+ 1) ) 
    160157 
    161158-- 6.2 Separation Spaces 
    162159 
    163 s_separate_in_line {- 69 -} = token White ( s_white +) / sol 
     160s_separate_in_line {- 67 -} = token White ( s_white +) / sol 
    164161 
    165162-- 6.3 Line Prefixes 
    166163 
    167 s_line_prefix n c {- 70 -} = case c of 
     164s_line_prefix n c {- 68 -} = case c of 
    168165                                  BlockOut -> s_block_line_prefix n 
    169166                                  BlockIn  -> s_block_line_prefix n 
     
    171168                                  FlowIn   -> s_flow_line_prefix n 
    172169 
    173 s_block_line_prefix n {- 71 -} = s_indent n 
    174 s_flow_line_prefix  n {- 72 -} = s_indent n & ( s_separate_in_line ?) 
     170s_block_line_prefix n {- 69 -} = s_indent n 
     171s_flow_line_prefix  n {- 70 -} = s_indent n & ( s_separate_in_line ?) 
    175172 
    176173-- 6.4 Empty Lines 
    177174 
    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 
     175l_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 
     180b_l_trimmed  n c {- 72 -} = b_non_content & ( l_empty n c +) 
     181 
     182b_as_space {- 73 -} = token LineFold b_break 
     183 
     184b_l_folded n c  {- 74 -} = b_l_trimmed n c / b_as_space 
     185 
     186s_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 
     191c_nb_comment_text {- 76 -} = nest BeginComment 
    184192                           & c_comment & meta ( nb_char *) 
    185193                           & nest EndComment 
    186194 
    187 s_b_comment {- 75 -} = ( s_separate_in_line & ( c_nb_comment_text ?) ?) 
    188                      & b_non_content_any 
    189  
    190 l_comment {- 76 -} = s_separate_in_line & ( c_nb_comment_text ?) & b_non_content_any 
    191  
    192 s_l_comments {- 77 -} = ( s_b_comment / sol ) 
     195s_b_comment {- 77 -} = ( s_separate_in_line & ( c_nb_comment_text ?) ?) 
     196                     & b_non_content 
     197 
     198l_comment {- 78 -} = s_separate_in_line & ( c_nb_comment_text ?) & b_non_content 
     199 
     200s_l_comments {- 79 -} = ( s_b_comment / sol ) 
    193201                      & ( l_comment *) 
    194202 
    195 -- 6.6 Separation Lines 
    196  
    197 s_separate n c      {- 78 -} = case c of 
     203-- 6.7 Separation Lines 
     204 
     205s_separate n c      {- 80 -} = case c of 
    198206                                    BlockOut -> s_separate_lines n 
    199207                                    BlockIn  -> s_separate_lines n 
     
    201209                                    FlowIn   -> s_separate_lines n 
    202210                                    FlowKey  -> s_separate_in_line 
    203 s_separate_lines n {- 79 -} = s_l_comments & s_flow_line_prefix n 
     211s_separate_lines n {- 81 -} = s_l_comments & s_flow_line_prefix n 
    204212                            / s_separate_in_line 
    205213 
    206 -- 6.7 Line Folding 
    207  
    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_generic 
    213  
    214 b_l_folded_any n c  {-  83 -} = b_l_folded_specific n c 
    215                               / b_l_folded_trimmed n c 
    216                               / b_l_folded_as_space 
    217  
    218 s_l_flow_folded n {-  84 -} = ( s_separate_in_line ?) & b_l_folded_any n FlowIn 
    219  
    220214-- 6.8 Directives 
    221215 
    222 l_directive {-  85 -} = nest BeginDirective 
    223                       & c_directive 
    224                       & "directive" 
    225                       ^ ( ns_yaml_directive 
    226                         / ns_tag_directive 
    227                         / ns_reserved_directive ) 
    228                       & nest EndDirective 
    229                       & s_l_comments 
    230  
    231 ns_reserved_directive  {-  86 -} = ns_directive_name 
    232                                  & ( s_separate_in_line & ns_directive_parameter *) 
    233 ns_directive_name      {-  87 -} = meta ( ns_char +) 
    234 ns_directive_parameter {-  88 -} = meta ( ns_char +) 
     216l_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 
     225ns_reserved_directive  {- 83 -} = ns_directive_name 
     226                                & ( s_separate_in_line & ns_directive_parameter *) 
     227ns_directive_name      {- 84 -} = meta ( ns_char +) 
     228ns_directive_parameter {- 85 -} = meta ( ns_char +) 
    235229 
    236230-- 6.8.1 Yaml Directives 
    237231 
    238 ns_yaml_directive {-  89 -} = meta [ 'Y', 'A', 'M', 'L' ] ! "directive" 
    239                             & s_separate_in_line & ns_yaml_version 
    240 ns_yaml_version   {-  90 -} = meta ( ( ns_dec_digit +) & '.' & ( ns_dec_digit +) ) 
     232ns_yaml_directive {- 86 -} = meta [ 'Y', 'A', 'M', 'L' ] ! "directive" 
     233                           & s_separate_in_line & ns_yaml_version 
     234ns_yaml_version   {- 87 -} = meta ( ( ns_dec_digit +) & '.' & ( ns_dec_digit +) ) 
    241235 
    242236-- 6.8.2 Tag Directives 
    243237 
    244 ns_tag_directive {-  91 -} = meta [ 'T', 'A', 'G' ] ! "directive" 
    245                            & s_separate_in_line & c_tag_handle 
     238ns_tag_directive {- 88 -} = meta [ 'T', 'A', 'G' ] ! "directive" 
     239                          & s_separate_in_line & c_tag_handle 
    246240                           & s_separate_in_line & ns_tag_prefix 
    247241 
    248242-- 6.8.2.1 Tag Handles 
    249243 
    250 c_tag_handle {-  92 -} = c_named_tag_handle 
    251                        / c_secondary_tag_handle 
    252                        / c_primary_tag_handle 
    253  
    254 c_primary_tag_handle   {-  93 -} = nest BeginHandle 
    255                                  & c_tag 
    256                                  & nest EndHandle 
    257  
    258 c_secondary_tag_handle {-  94 -} = nest BeginHandle 
    259                                  & c_tag & c_tag 
    260                                  & nest EndHandle 
    261  
    262 c_named_tag_handle     {-  95 -} = nest BeginHandle 
     244c_tag_handle {- 89 -} = c_named_tag_handle 
     245                      / c_secondary_tag_handle 
     246                      / c_primary_tag_handle 
     247 
     248c_primary_tag_handle   {- 90 -} = nest BeginHandle 
     249                                & c_tag 
     250                                & nest EndHandle 
     251 
     252c_secondary_tag_handle {- 91 -} = nest BeginHandle 
     253                                & c_tag & c_tag 
     254                                & nest EndHandle 
     255 
     256c_named_tag_handle     {- 92 -} = nest BeginHandle 
    263257                                 & c_tag & meta ( ns_word_char +) & c_tag 
    264258                                 & nest EndHandle 
     
    266260-- 6.8.2.2 Tag Prefixes 
    267261 
    268 ns_tag_prefix {-  96 -} = nest BeginTag 
    269                         & ( c_ns_local_tag_prefix / ns_global_tag_prefix ) 
    270                         & nest EndTag 
    271  
    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 *) ) 
     262ns_tag_prefix {- 93 -} = nest BeginTag 
     263                       & ( c_ns_local_tag_prefix / ns_global_tag_prefix ) 
     264                       & nest EndTag 
     265 
     266c_ns_local_tag_prefix {- 94 -} = c_tag & meta ( ns_uri_char *) 
     267 
     268ns_global_tag_prefix  {- 95 -} = meta ( ns_tag_char & ( ns_uri_char *) ) 
    275269 
    276270-- 6.9 Node Properties 
    277271 
    278 c_ns_properties n c {-  99 -} = nest BeginProperties 
     272c_ns_properties n c {- 96 -} = nest BeginProperties 
    279273                              & ( ( c_ns_tag_property 
    280274                                  & ( s_separate n c & c_ns_anchor_property ?) ) 
     
    285279-- 6.9.1 Node Tags 
    286280 
    287 c_ns_tag_property {- 100 -} = nest BeginTag 
     281c_ns_tag_property {- 97 -} = nest BeginTag 
    288282                            & ( c_verbatim_tag 
    289283                              / c_ns_shorthand_tag 
     
    291285                            & nest EndTag 
    292286 
    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 +) 
     287c_verbatim_tag     {- 98 -} = c_tag & indicator '<' & meta ( ns_uri_char +) & indicator '>' 
     288 
     289c_ns_shorthand_tag {- 99 -} = c_named_tag_handle & meta ( ns_tag_char +) 
     290                             / c_secondary_tag_handle & meta ( ns_tag_char +) 
    297291                             / c_primary_tag_handle & meta ( ns_tag_char +) 
    298292 
    299 c_non_specific_tag {- 103 -} = c_tag 
     293c_non_specific_tag {- 100 -} = c_tag 
    300294 
    301295-- 6.9.2 Node Anchors 
    302296 
    303 c_ns_anchor_property {- 104 -} = nest BeginAnchor 
     297c_ns_anchor_property {- 101 -} = nest BeginAnchor 
    304298                               & c_anchor & ns_anchor_name 
    305299                               & nest EndAnchor 
    306300 
    307 ns_anchor_char {- 105 -} = ns_char - ( c_collect_entry / c_sequence_start / c_sequence_end / c_mapping_start  / c_mapping_end ) 
    308 ns_anchor_name {- 106 -} = meta ( ns_anchor_char +) 
     301ns_anchor_char {- 102 -} = ns_char - c_flow_indicator 
     302ns_anchor_name {- 103 -} = meta ( ns_anchor_char +) 
    309303 
    310304-- 7.1 Alias Nodes 
    311305 
    312 c_ns_alias_node {- 107 -} = nest BeginAlias 
     306c_ns_alias_node {- 104 -} = nest BeginAlias 
    313307                          & c_alias ! "node" & ns_anchor_name 
    314308                          & nest EndAlias 
     
    316310-- 7.2 Empty Nodes 
    317311 
    318 e_scalar {- 108 -} = nest BeginScalar & nest EndScalar 
    319  
    320 e_node {- 109 -} = nest BeginNode & e_scalar & nest EndNode 
     312e_scalar {- 105 -} = nest BeginScalar & nest EndScalar 
     313 
     314e_node {- 106 -} = nest BeginNode & e_scalar & nest EndNode 
    321315 
    322316-- 7.3.1 Double Quoted Style 
    323317 
    324 nb_double_char {- 110 -} = "escape" ^ ( nb_char - c_escape - c_double_quote / c_ns_esc_char ) 
    325 ns_double_char {- 111 -} = nb_double_char - s_white 
    326  
    327 c_double_quoted n c {- 112 -} = nest BeginScalar 
     318nb_double_char {- 107 -} = "escape" ^ ( nb_json - c_escape - c_double_quote / c_ns_esc_char ) 
     319ns_double_char {- 108 -} = nb_double_char - s_white 
     320 
     321c_double_quoted n c {- 109 -} = nest BeginScalar 
    328322                              & c_double_quote ! "node" & text ( nb_double_text n c ) & c_double_quote 
    329323                              & nest EndScalar 
    330 nb_double_text n c  {- 113 -} = case c of 
     324nb_double_text n c  {- 110 -} = case c of 
    331325                                     FlowOut -> nb_double_multi_line n 
    332326                                     FlowIn  -> nb_double_multi_line n 
    333327                                     FlowKey -> nb_double_one_line 
    334 nb_double_one_line  {- 114 -} = ( nb_double_char *) 
    335  
    336 s_l_double_escaped n {- 115 -} = ( s_white *) 
     328nb_double_one_line  {- 111 -} = ( nb_double_char *) 
     329 
     330s_s_double_escaped n {- 112 -} = ( s_white *) 
    337331                               & nest BeginEscape 
    338                                & c_escape ! "escape" & b_non_content_any 
     332                               & c_escape ! "escape" & b_non_content 
    339333                               & nest EndEscape 
    340334                               & ( 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_prefix n 
     335                               & s_line_prefix n FlowIn 
     336s_s_double_break n   {- 113 -} = "escape" ^ ( s_s_double_escaped n / s_s_flow_folded n ) 
     337 
     338nb_ns_double_in_line    {- 114 -} = ( ( s_white *) & ns_double_char *) 
     339s_ns_double_next_line n {- 115 -} = s_s_double_break n 
    346340                                  & ns_double_char & nb_ns_double_in_line 
    347 nb_double_multi_line n  {- 119 -} = nb_ns_double_in_line 
     341nb_double_multi_line n  {- 116 -} = nb_ns_double_in_line 
    348342                                  & ( s_ns_double_next_line n *) 
    349343                                  & ( s_white *) 
     
    351345-- 7.3.2 Single Quoted Style 
    352346 
    353 c_quoted_quote {- 120 -} = nest BeginEscape 
     347c_quoted_quote {- 117 -} = nest BeginEscape 
    354348                         & c_single_quote ! "escape" & meta '\'' 
    355349                         & nest EndEscape 
    356 nb_single_char {- 121 -} = "escape" ^ ( nb_char - c_single_quote / c_quoted_quote ) 
    357 ns_single_char {- 122 -} = nb_single_char - s_white 
    358  
    359 c_single_quoted  n c {- 123 -}= nest BeginScalar 
     350nb_single_char {- 118 -} = "escape" ^ ( nb_json - c_single_quote / c_quoted_quote ) 
     351ns_single_char {- 119 -} = nb_single_char - s_white 
     352 
     353c_single_quoted  n c {- 120 -}= nest BeginScalar 
    360354                              & c_single_quote & text ( nb_single_text n c ) & c_single_quote 
    361355                              & nest EndScalar 
    362 nb_single_text n c {- 124 -} = case c of 
     356nb_single_text n c {- 121 -} = case c of 
    363357                                    FlowOut -> nb_single_multi_line n 
    364358                                    FlowIn  -> nb_single_multi_line n 
    365359                                    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 
     360nb_single_one_line {- 122 -} = ( nb_single_char *) 
     361 
     362nb_ns_single_in_line    {- 123 -} = ( ( s_white *) & ns_single_char *) 
     363s_ns_single_next_line n {- 124 -} = s_s_flow_folded n 
    371364                                  & ns_single_char & nb_ns_single_in_line 
    372 nb_single_multi_line n  {- 128 -} = ( nb_ns_single_in_line *) 
     365nb_single_multi_line n  {- 125 -} = ( nb_ns_single_in_line *) 
    373366                                  & ( s_ns_single_next_line n *) 
    374367                                  & ( s_white *) 
     
    376369-- 7.3.3 Plain Style 
    377370 
    378 ns_plain_first c  {- 129 -} = ns_char - c_indicator 
     371ns_plain_first c  {- 126 -} = ns_char - c_indicator 
    379372                            / ( ':' / '?' / '-' ) & ( ns_char >?) 
    380373 
    381 ns_plain_safe c   {- 130 -} = case c of 
     374ns_plain_safe c   {- 127 -} = case c of 
    382375                                   FlowOut -> ns_plain_safe_out 
    383376                                   FlowIn  -> ns_plain_safe_in 
    384377                                   FlowKey -> ns_plain_safe_in 
    385 ns_plain_safe_out {- 131 -} = ns_char - c_mapping_value - c_comment 
    386 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   {- 133 -} = ns_plain_safe c 
     378ns_plain_safe_out {- 128 -} = ns_char - c_mapping_value - c_comment 
     379ns_plain_safe_in  {- 129 -} = ns_plain_safe_out - c_flow_indicator 
     380ns_plain_char c   {- 130 -} = ns_plain_safe c 
    388381                            / ( ns_char <?) & '#' 
    389382                            / ':' & ( ns_char >?) 
    390 nb_plain_char c   {- 134 -} = s_white / ns_plain_char c 
    391  
    392 ns_plain n c          {- 135 -} = nest BeginScalar 
     383nb_plain_char c   {- 131 -} = s_white / ns_plain_char c 
     384 
     385ns_plain n c          {- 132 -} = nest BeginScalar 
    393386                                & text (case c of 
    394387                                              FlowOut -> ns_plain_multi_line n c 
     
    396389