@@ -230,7 +230,7 @@ func CreateGroupedTokens(tokens token.Tokens) ([]*Token, error) {
230230 if err != nil {
231231 return nil , err
232232 }
233- tks , err = createDocumentTokens (tks )
233+ tks , err = createDocumentTokens (tks , true )
234234 if err != nil {
235235 return nil , err
236236 }
@@ -614,13 +614,13 @@ func createDirectiveTokenGroups(tokens []*Token) ([]*Token, error) {
614614 return ret , nil
615615}
616616
617- func createDocumentTokens (tokens []* Token ) ([]* Token , error ) {
617+ func createDocumentTokens (tokens []* Token , ignoreHeaderIfAtFirst bool ) ([]* Token , error ) {
618618 var ret []* Token
619619 for i := 0 ; i < len (tokens ); i ++ {
620620 tk := tokens [i ]
621621 switch tk .Type () {
622622 case token .DocumentHeaderType :
623- if i != 0 {
623+ if i != 0 || ! ignoreHeaderIfAtFirst {
624624 ret = append (ret , & Token {
625625 Group : & TokenGroup {Tokens : tokens [:i ]},
626626 })
@@ -634,14 +634,6 @@ func createDocumentTokens(tokens []*Token) ([]*Token, error) {
634634 },
635635 }), nil
636636 }
637- if tokens [i + 1 ].Type () == token .DocumentHeaderType {
638- return append (ret , & Token {
639- Group : & TokenGroup {
640- Type : TokenGroupDocument ,
641- Tokens : []* Token {tk },
642- },
643- }), nil
644- }
645637 if tokens [i ].Line () == tokens [i + 1 ].Line () {
646638 switch tokens [i + 1 ].GroupType () {
647639 case TokenGroupMapKey , TokenGroupMapKeyValue :
@@ -652,7 +644,7 @@ func createDocumentTokens(tokens []*Token) ([]*Token, error) {
652644 return nil , errors .ErrSyntax ("value cannot be placed after document separator" , tokens [i + 1 ].RawToken ())
653645 }
654646 }
655- tks , err := createDocumentTokens (tokens [i + 1 :])
647+ tks , err := createDocumentTokens (tokens [i + 1 :], false )
656648 if err != nil {
657649 return nil , err
658650 }
@@ -683,7 +675,7 @@ func createDocumentTokens(tokens []*Token) ([]*Token, error) {
683675 return nil , errors .ErrSyntax ("unexpected end content" , tokens [i + 1 ].RawToken ())
684676 }
685677
686- tks , err := createDocumentTokens (tokens [i + 1 :])
678+ tks , err := createDocumentTokens (tokens [i + 1 :], true )
687679 if err != nil {
688680 return nil , err
689681 }
0 commit comments