fixed string definition
This commit is contained in:
		
							parent
							
								
									1f381d496d
								
							
						
					
					
						commit
						2b4e461702
					
				
					 3 changed files with 8 additions and 21 deletions
				
			
		
							
								
								
									
										25
									
								
								src/json.hpp
									
										
									
									
									
								
							
							
						
						
									
										25
									
								
								src/json.hpp
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -3630,8 +3630,8 @@ class basic_json
 | 
			
		|||
                unsigned int yyaccept = 0;
 | 
			
		||||
                static const unsigned char yybm[] =
 | 
			
		||||
                {
 | 
			
		||||
                    0,  64,  64,  64,  64,  64,  64,  64,
 | 
			
		||||
                    64,  32,  32,  64,  64,  32,  64,  64,
 | 
			
		||||
                    0,   0,   0,   0,   0,   0,   0,   0,
 | 
			
		||||
                    0,  32,  32,   0,   0,  32,   0,   0,
 | 
			
		||||
                    64,  64,  64,  64,  64,  64,  64,  64,
 | 
			
		||||
                    64,  64,  64,  64,  64,  64,  64,  64,
 | 
			
		||||
                    96,  64,   0,  64,  64,  64,  64,  64,
 | 
			
		||||
| 
						 | 
				
			
			@ -3914,26 +3914,11 @@ basic_json_parser_25:
 | 
			
		|||
basic_json_parser_26:
 | 
			
		||||
                yyaccept = 0;
 | 
			
		||||
                yych = *(m_marker = ++m_cursor);
 | 
			
		||||
                if (yych <= '\n')
 | 
			
		||||
                if (yych <= 0x0F)
 | 
			
		||||
                {
 | 
			
		||||
                    if (yych <= 0x00)
 | 
			
		||||
                    {
 | 
			
		||||
                        goto basic_json_parser_19;
 | 
			
		||||
                    }
 | 
			
		||||
                    if (yych <= 0x08)
 | 
			
		||||
                    {
 | 
			
		||||
                        goto basic_json_parser_31;
 | 
			
		||||
                    }
 | 
			
		||||
                    goto basic_json_parser_19;
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    if (yych == '\r')
 | 
			
		||||
                    {
 | 
			
		||||
                        goto basic_json_parser_19;
 | 
			
		||||
                    }
 | 
			
		||||
                    goto basic_json_parser_31;
 | 
			
		||||
                }
 | 
			
		||||
                goto basic_json_parser_31;
 | 
			
		||||
basic_json_parser_27:
 | 
			
		||||
                ++m_cursor;
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			@ -3954,7 +3939,7 @@ basic_json_parser_31:
 | 
			
		|||
                {
 | 
			
		||||
                    goto basic_json_parser_30;
 | 
			
		||||
                }
 | 
			
		||||
                if (yych <= '\r')
 | 
			
		||||
                if (yych <= 0x0F)
 | 
			
		||||
                {
 | 
			
		||||
                    goto basic_json_parser_32;
 | 
			
		||||
                }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3669,7 +3669,7 @@ class basic_json
 | 
			
		|||
                // string
 | 
			
		||||
                quotation_mark  = [\"];
 | 
			
		||||
                escape          = [\\];
 | 
			
		||||
                unescaped       = [^\"\\\000\t\n\r];
 | 
			
		||||
                unescaped       = [^\"\\\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F];
 | 
			
		||||
                single_escaped  = [\"\\/bfnrt];
 | 
			
		||||
                unicode_escaped = [u][0-9a-fA-F]{4};
 | 
			
		||||
                escaped         = escape (single_escaped | unicode_escaped);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7384,6 +7384,8 @@ TEST_CASE("parser class")
 | 
			
		|||
                // error: newline in string
 | 
			
		||||
                CHECK_THROWS_AS(json::parser("\"\n\"").parse(), std::invalid_argument);
 | 
			
		||||
                CHECK_THROWS_AS(json::parser("\"\r\"").parse(), std::invalid_argument);
 | 
			
		||||
                // error: backspace in string
 | 
			
		||||
                CHECK_THROWS_AS(json::parser("\"\b\"").parse(), std::invalid_argument);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            SECTION("escaped")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue