anchor.diff:      _stack.clear();
       _stack.add(new SectionNode('root', 0, 0, _delimiters));    
     
  -    // Handle standalone tag on first line.
  +    // Handle a standalone tag on first line, including special case where the
  +    // first line is empty.
  +    var lineEnd = _readIf(TokenType.lineEnd, eofOk: true);
  +    if (lineEnd != null) _appendTextToken(lineEnd);
       _parseLine();
       
       for (var token = _peek(); token != null; token = _peek()) {
  
positive.code:       
        if (tag != null &&
            (_peek() == null || _peek().type == TokenType.lineEnd) &&
            standaloneTypes.contains(tag.type)) {
                  
          // This is a tag on a "standalone line", so do not create text nodes
          // for whitespace, or the following newline.
              
          _appendTag(tag, tagNode);
         
          // Continue loop parse another line.
          consecutive = true;
          
        } else {
    
          // This is not a standalone line so add the whitespace to the ast.        
          if (precedingWhitespace != null) _appendTextToken(precedingWhitespace);
          if (tag != null) _appendTag(tag, tagNode);
          if (followingWhitespace != null) _appendTextToken(followingWhitespace);
          
          // Done parsing standalone lines. Exit the loop.
          break;
        }
  
negative.code:           break;
            
          case TokenType.lineEnd:
            _appendTextToken(_read());
            _parseLine();
            break;
            
  