anchor.diff:  %% End-of-stream reached.
   do_find_next_token([] = Chars, Line, Col, Delta,
     #yaml_parser{raw_eos = true} = Parser) ->
  -    next_state(Chars, Line, Col, Delta, Parser, fun end_stream/5);
  +    end_stream(Chars, Line, Col, Delta, Parser);
   
   %% Wait for more data.
   do_find_next_token([] = Chars, Line, Col, Delta, Parser) ->
  -    return(Chars, Line, Col, Delta, Parser);
  +    suspend_parsing(Chars, Line, Col, Delta, Parser, fun do_find_next_token/5);
   
   %% Next token found!
   do_find_next_token(Chars, Line, Col, Delta, Parser) ->
       Parser1 = warn_if_non_ascii_line_break(Chars, Line, Col, Parser),
       Parser2 = check_for_closed_block_collections(Chars, Line, Col, Delta,
         Parser1, Col),
  -    next_state(Chars, Line, Col, Delta, Parser2, fun determine_token_type/5).
  +    determine_token_type(Chars, Line, Col, Delta, Parser2).
   
   %%
   %% Token type.
  
positive.code:     },
      Parser1 = queue_token(Parser, Token),
      %% In flow context, an implicit key may not follow.
      Parser2 = allow_impl_key(Parser1, false),
      queue_mapping_value_token(Chars, Line, Col, Delta, Parser2).
  
  queue_mapping_value_token(Chars, Line, Col, Delta,
  
negative.code: 
  queue_mapping_key_token([_ | Rest], Line, Col, Delta, Parser) ->
      Parser1 = remove_impl_key_pos(Parser),
      Parser2 = ?ALLOW_IMPL_KEY(Parser1, ?IN_BLOCK_CTX(Parser1)),
      Token   = #yaml_mapping_key{
        line   = Line,
        column = Col
      },
      Parser3 = queue_token(Parser2, Token),
      {Col1, Delta1} = next_col(Col, Delta, 1),
      find_next_token(Rest, Line, Col1, Delta1, Parser3).
  
  %% -------------------------------------------------------------------
  %% Block or flow mapping value.
  