You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
		
		
		
		
		
			
		
			
				
					
					
						
							74 lines
						
					
					
						
							2.0 KiB
						
					
					
				
			
		
		
	
	
							74 lines
						
					
					
						
							2.0 KiB
						
					
					
				| #define STB_C_LEX_C_DECIMAL_INTS    Y   | |
| #define STB_C_LEX_C_HEX_INTS        Y | |
| #define STB_C_LEX_C_OCTAL_INTS      Y | |
| #define STB_C_LEX_C_DECIMAL_FLOATS  Y | |
| #define STB_C_LEX_C99_HEX_FLOATS    Y | |
| #define STB_C_LEX_C_IDENTIFIERS     Y | |
| #define STB_C_LEX_C_DQ_STRINGS      Y | |
| #define STB_C_LEX_C_SQ_STRINGS      Y | |
| #define STB_C_LEX_C_CHARS           Y | |
| #define STB_C_LEX_C_COMMENTS        Y | |
| #define STB_C_LEX_CPP_COMMENTS      Y | |
| #define STB_C_LEX_C_COMPARISONS     Y | |
| #define STB_C_LEX_C_LOGICAL         Y | |
| #define STB_C_LEX_C_SHIFTS          Y  | |
| #define STB_C_LEX_C_INCREMENTS      Y | |
| #define STB_C_LEX_C_ARROW           Y | |
| #define STB_C_LEX_EQUAL_ARROW       Y | |
| #define STB_C_LEX_C_BITWISEEQ       Y | |
| #define STB_C_LEX_C_ARITHEQ         Y | |
|  | |
| #define STB_C_LEX_PARSE_SUFFIXES    Y | |
| #define STB_C_LEX_DECIMAL_SUFFIXES  "uUlL" | |
| #define STB_C_LEX_HEX_SUFFIXES      "lL" | |
| #define STB_C_LEX_OCTAL_SUFFIXES    "lL" | |
| #define STB_C_LEX_FLOAT_SUFFIXES    "uulL" | |
|  | |
| #define STB_C_LEX_0_IS_EOF             N | |
| #define STB_C_LEX_INTEGERS_AS_DOUBLES  N | |
| #define STB_C_LEX_MULTILINE_DSTRINGS   Y | |
| #define STB_C_LEX_MULTILINE_SSTRINGS   Y | |
| #define STB_C_LEX_USE_STDLIB           N | |
| #define STB_C_LEX_DOLLAR_IDENTIFIER    Y | |
| #define STB_C_LEX_FLOAT_NO_DECIMAL     Y   | |
|  | |
| #define STB_C_LEX_DEFINE_ALL_TOKEN_NAMES  Y   | |
| #define STB_C_LEX_DISCARD_PREPROCESSOR    Y   | |
| #define STB_C_LEXER_DEFINITIONS          | |
|  | |
| #define STB_C_LEXER_IMPLEMENTATION | |
| #define STB_C_LEXER_SELF_TEST | |
| #include "../stb_c_lexer.h" | |
| #include <stdint.h> | |
| #include <stdlib.h> | |
| #include <string.h> | |
| #include <stdio.h> | |
|  | |
| 
 | |
| extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) | |
| { | |
| 	if(size<3){ | |
| 		return 0; | |
| 	} | |
| 	char *input_stream = (char *)malloc(size); | |
| 	if (input_stream == NULL){ | |
| 		return 0; | |
| 	} | |
| 	memcpy(input_stream, data, size); | |
| 
 | |
| 	stb_lexer lex; | |
| 	char *input_end = input_stream+size-1; | |
| 	char *store = (char *)malloc(0x10000); | |
| 	int len = 0x10000; | |
| 	 | |
| 	stb_c_lexer_init(&lex, input_stream, input_end, store, len); | |
| 	while (stb_c_lexer_get_token(&lex)) { | |
| 		if (lex.token == CLEX_parse_error) { | |
| 			break; | |
| 		} | |
| 	} | |
| 	 | |
| 	free(input_stream); | |
| 	free(store); | |
| 	return 0; | |
| }
 | |
| 
 |