@@ -639,7 +639,9 @@ func yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool {
639639 if simple_key .token_number < parser .tokens_parsed {
640640 break
641641 }
642- if yaml_simple_key_is_valid (parser , simple_key ) && simple_key .token_number == parser .tokens_parsed {
642+ if valid , ok := yaml_simple_key_is_valid (parser , simple_key ); ! ok {
643+ return false
644+ } else if valid && simple_key .token_number == parser .tokens_parsed {
643645 need_more_tokens = true
644646 break
645647 }
@@ -831,9 +833,9 @@ func yaml_parser_fetch_next_token(parser *yaml_parser_t) bool {
831833 "found character that cannot start any token" )
832834}
833835
834- func yaml_simple_key_is_valid (parser * yaml_parser_t , simple_key * yaml_simple_key_t ) bool {
836+ func yaml_simple_key_is_valid (parser * yaml_parser_t , simple_key * yaml_simple_key_t ) ( valid , ok bool ) {
835837 if ! simple_key .possible {
836- return false
838+ return false , true
837839 }
838840
839841 // The 1.2 specification says:
@@ -847,14 +849,14 @@ func yaml_simple_key_is_valid(parser *yaml_parser_t, simple_key *yaml_simple_key
847849 if simple_key .mark .line < parser .mark .line || simple_key .mark .index + 1024 < parser .mark .index {
848850 // Check if the potential simple key to be removed is required.
849851 if simple_key .required {
850- return yaml_parser_set_scanner_error (parser ,
852+ return false , yaml_parser_set_scanner_error (parser ,
851853 "while scanning a simple key" , simple_key .mark ,
852854 "could not find expected ':'" )
853855 }
854856 simple_key .possible = false
855- return false
857+ return false , true
856858 }
857- return true
859+ return true , true
858860}
859861
860862// Check if a simple key may start at the current position and add it if
@@ -1286,7 +1288,10 @@ func yaml_parser_fetch_value(parser *yaml_parser_t) bool {
12861288 simple_key := & parser .simple_keys [len (parser .simple_keys )- 1 ]
12871289
12881290 // Have we found a simple key?
1289- if yaml_simple_key_is_valid (parser , simple_key ) {
1291+ if valid , ok := yaml_simple_key_is_valid (parser , simple_key ); ! ok {
1292+ return false
1293+
1294+ } else if valid {
12901295
12911296 // Create the KEY token and insert it into the queue.
12921297 token := yaml_token_t {
0 commit comments