parent
f54acd4e13
commit
fdec118312
1 changed files with 74 additions and 0 deletions
@ -0,0 +1,74 @@ |
|||||||
|
#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; |
||||||
|
} |
Loading…
Reference in New Issue