From 505f803274cb7449116922828d29cdbd96a7eedb Mon Sep 17 00:00:00 2001 From: Allen Webster Date: Sun, 28 Aug 2016 11:42:12 -0400 Subject: [PATCH] improvements to custom build time --- 4coder_custom.dll | Bin 211968 -> 0 bytes 4coder_custom.pdb | Bin 1683456 -> 0 bytes 4coder_string.h | 120 +- 4cpp_lexer.h | 2405 +++++++---------- test/4cpp_lexer_fsms.h => 4cpp_lexer_fsms.h | 0 4cpp_lexer_old.h | 1683 ++++++++++++ ...4cpp_lexer_tables.c => 4cpp_lexer_tables.c | 0 4ed_app_target.cpp | 7 - 4ed_metagen.cpp | 18 +- build.c | 102 +- buildsuper.bat | 6 +- internal_4coder_tests.cpp | 5 +- lexergen/4cpp_lexer_fsms.h | 138 + lexergen/4cpp_lexer_tables.c | 395 +++ {test => lexergen}/4cpp_new_lexer.h | 0 {test => lexergen}/fsm_table_generator.cpp | 0 16 files changed, 3357 insertions(+), 1522 deletions(-) delete mode 100644 4coder_custom.dll delete mode 100644 4coder_custom.pdb rename test/4cpp_lexer_fsms.h => 4cpp_lexer_fsms.h (100%) create mode 100644 4cpp_lexer_old.h rename test/4cpp_lexer_tables.c => 4cpp_lexer_tables.c (100%) create mode 100644 lexergen/4cpp_lexer_fsms.h create mode 100644 lexergen/4cpp_lexer_tables.c rename {test => lexergen}/4cpp_new_lexer.h (100%) rename {test => lexergen}/fsm_table_generator.cpp (100%) diff --git a/4coder_custom.dll b/4coder_custom.dll deleted file mode 100644 index 763668bccaa88c04307dbaaaa743626b9d40a735..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211968 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�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

iq)}DJO4Q+Oz^Z#GIAEfC@{Wd~$uckd z-r()q)!1FGh|pf5wg^=^33(McNQO$YD-|IUB>3ifR6}%-Y?BTFF6ACvq zEq8|2{bG@Xsa83yDVquwz02_cB*#lj)Y+4Rtjg&EI+ z111bpabVG-u}U5G0WjFbIH-J9IRWN+7nj_Q9o#AJ&+WjI;sec{BW=;5yPK+Y7_ET8 z^_rd~Mv^$d3x6WOmt%884i#n|9pCI*_I$LqoTK>$Hv@)y+ReeDFE7Mz^3 z4W?$#g-P2;Q@eU?nh=%}pI-aoq>$U26q1IJP*@M%!U>4vLWUQXM39}P#S=1}uwx>A z;fc{wgwx#muRMhkI@F{W!Ii)6h_F&)oi0XQqthJhO0gIptgU(@C|XC6AkXnqMlm*8 z5pff<8S9Qaisi9-V5CM9s2zDTHa-lXpZ0Jo>(EH6qi;8W$c_;h!u6}w9g4+5@Htz! zDNIgUtMw0gqq9VVedoo=m6)&x&P}pCm^oe#9MCMm^+0;B#N&_Wkf-LpSJUm6c?#AUSG?sGL@KCAZ!3 zNa`YPFDdFy_2NexBybu>0#7ez^S(JB0E?Zfm#Rr~W%p1gRf*W{)Qi0UAR@vUu5;<$ zuXB~SmG8}YUi7?Fck^Z|%0!-O=&0U&s#H391D&e!G8XL1DOlEW^xOxPU`b_sOCH=E z-Rk!JF?W1Q33e-g$_Y`pXi!35halPY6Ah7%`nMj|QjZPS-+ZIC63E3YW5>GHWjNHc z@9MlTx_DFN*2f1GA{qxYXK_FVCOK)YFu4)0lu>A$N|LBk9^Cpu*M32v$suo2&mp(G z9OMp|a9yxzPK_9=^tDC-%yXlyaCh9e+%Y0$Z{D~#$UyX;3=q~OO=|i|{9G%!-g)hh{>>Ki=3&=UG4ruO zbkx*t5F_Cr@wzSW_^`Ig4{hk`)@@~@bcrQfzPv&yp5au)LV=z&miJN2F%W-pOqQ*M z-fOmUWe1$c4oC5EAohRuu=J5U5b2m)iBC9y&VAPHB<{{+MWH;d@8pS>R!`LTQmfj&jx>j6SqY0no`9XRlpN!9+{K14Tsj$GO>P10u-1JqINCFXUEOaptr6r*}Ic#H$0vL9WQnZwAcQStFV)m5=ACE`4_fsFI{b+f8#N#D?zN{Xa&sSHRxIfA6q$5JNZ6Um{cxND+4qxn+QeqGf5!}qm)ivE|%A^jhdGTwjs zd!qI?{p|K`fVBXZ|MMk=M|Ym4p_1wK7YJ48wqJdg$}I8DG;+2@O>^ zc;b^h$N9L;BszvfVTm}JXTt#Q#+A$W@x zF~w!hA$vKMhMupGU3C$y2x5ISFaK+&BAKatT^GP^vXwC;JD=oH2anO$%%B^Fq=98a zk~j$-tIt3Yh{&MyXDa{glB3j+tQC0U_hePl2&OM|9Wm80f}F3dhVEa|P1vvLzh*BL z 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 NZNhj*1^9pa_&-34@E-sG diff --git a/4coder_custom.pdb b/4coder_custom.pdb deleted file mode 100644 index 3017c10477b5a069499f391d04f7c55b28a690ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1683456 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�{Ycnb@n&YOjB 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%0AkLG$H2{sr-#AVN$DuWWj8lr^ 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

*jfKetf9={;J1Zyd$1pp?p3#-#tGt-F<&J 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 s``_M#x$@^IkfT730yzrgD3GH-jsiIf - FCPP_NO_ASSERT - prevent including - FCPP_NO_STRING - prevent including - FCPP_NO_CRT - FCPP_NO_MALLOC & FCPP_NO_ASSERT & FCPP_NO_STRING - - FCPP_FORBID_MALLOC - one step above *NO_MALLOC with this set 4cpp functions that do allocations - are not allowed to be declared or defined at all, forcing the user to handle - allocation themselves - - implies FCPP_NO_MALLOC - - FCPP_GET_MEMORY - defines how to make allocations, interface of malloc, defaults to malloc - FCPP_FREE_MEMORY - defines how to free memory, interface of ree, defaults to free - (The above must be defined if FCPP_NO_MALLOC is set, unless FCPP_FORBID_MALLOC is set) - - FCPP_ASSERT - defines how to make assertions, interface of assert, defaults to assert - - FCPP_MEM_COPY - defines how to copy blocks of memory, interface of memcpy, defaults to memcpy - FCPP_MEM_MOVE - defines how to move blocks of memory, interface of memmove, defaults to memmove - (The above must be defined if FCPP_NO_STRING is set) - - FCPP_LINK - defines linkage of non-inline functions, defaults to static - FCPP_EXTERN - changes FCPP_LINK default to extern, this option is ignored if FCPP_LINK is defined - - include the file "4cpp_clear_config.h" if you want to undefine all options for some reason - - HIDDDEN DEPENDENCIES: - 4cpp is not a single file include library, there are dependencies between the files. - Be sure to include these dependencies before 4cpp_lexer.h: - - 4cpp_types.h - 4cpp_string.h -*/ // TOP -// TODO(allen): -// -// EASE OF USE AND DEPLOYMENT -// - make it easier to locate the list of function declarations -// - more C compatibility -// -// POTENTIAL -// - Experiment with optimizations. Sean's State machine? -// - Reserve 0th token for null? Put a EOF token at the end? -// - Pass Cpp_File and Cpp_Token_Stack by value instead of by pointer? -// -// CURRENT -// - lex in chunks -// -#include "4coder_config.h" - -#ifndef FCPP_LEXER_INC -#define FCPP_LEXER_INC +#ifndef FCPP_NEW_LEXER_INC +#define FCPP_NEW_LEXER_INC #include "4cpp_lexer_types.h" +#include "4cpp_lexer_fsms.h" +#include "4cpp_lexer_tables.c" -struct Cpp_Lex_Data{ - Cpp_Preprocessor_State pp_state; - int pos; - int complete; -}; - -struct Cpp_Read_Result{ - Cpp_Token token; - int pos; - char newline; - char has_result; -}; +#define lexer_link static // TODO(allen): revisit this keyword data declaration system -struct String_And_Flag{ - char *str; - fcpp_u32 flags; -}; - struct String_List{ - String_And_Flag *data; - int count; + String_And_Flag *data; + int count; }; struct Sub_Match_List_Result{ - int index; - fcpp_i32 new_pos; + int index; + fcpp_i32 new_pos; }; -inline fcpp_u16 -cpp_token_set_pp_state(fcpp_u16 bitfield, Cpp_Preprocessor_State state_value){ - return (fcpp_u16)state_value; -} +#define lexer_string_list(x) {x, (sizeof(x)/sizeof(*x))} -inline Cpp_Preprocessor_State -cpp_token_get_pp_state(fcpp_u16 bitfield){ - return (Cpp_Preprocessor_State)(bitfield); -} - -inline String -cpp_get_lexeme(char *str, Cpp_Token *token){ - String result; - result.str = str + token->start; - result.size = token->size; - return result; -} - -inline bool -is_keyword(Cpp_Token_Type type){ - return (type >= CPP_TOKEN_KEY_TYPE && type <= CPP_TOKEN_KEY_OTHER); -} - -FCPP_LINK Sub_Match_List_Result sub_match_list(char *data, int size, int pos, String_List list, int sub_size); - -FCPP_LINK Seek_Result seek_unescaped_eol(char *data, int size, int pos); -FCPP_LINK Seek_Result seek_unescaped_delim(char *data, int size, int pos, char delim); -FCPP_LINK Seek_Result seek_block_comment_end(char *data, int size, int pos); - -FCPP_LINK Cpp_Read_Result cpp_read_whitespace(char *data, int size, int pos); -FCPP_LINK Cpp_Read_Result cpp_read_junk_line(char *data, int size, int pos); -FCPP_LINK Cpp_Read_Result cpp_read_operator(char *data, int size, int pos); -FCPP_LINK Cpp_Read_Result cpp_read_pp_operator(char *data, int size, int pos); -FCPP_LINK Cpp_Read_Result cpp_read_alpha_numeric(char *data, int size, int pos, bool in_if_body); -inline Cpp_Read_Result cpp_read_alpha_numeric(char *data, int size, int pos) { return cpp_read_alpha_numeric(data, size, pos, 0); } -FCPP_LINK Cpp_Read_Result cpp_read_number(char *data, int size, int pos); -FCPP_LINK Cpp_Read_Result cpp_read_string_litteral(char *data, int size, int pos); -FCPP_LINK Cpp_Read_Result cpp_read_character_litteral(char *data, int size, int pos); -FCPP_LINK Cpp_Read_Result cpp_read_line_comment(char *data, int size, int pos); -FCPP_LINK Cpp_Read_Result cpp_read_block_comment(char *data, int size, int pos); -FCPP_LINK Cpp_Read_Result cpp_read_preprocessor(char *data, int size, int pos); -FCPP_LINK Cpp_Read_Result cpp_read_pp_include_file(char *data, int size, int pos); -FCPP_LINK Cpp_Read_Result cpp_read_pp_default_mode(char *data, int size, int pos, bool in_if_body); -inline Cpp_Read_Result cpp_read_pp_default_mode(char *data, int size, int pos) { return cpp_read_pp_default_mode(data, size, pos, 0); } - -FCPP_LINK Cpp_Token_Merge cpp_attempt_token_merge(Cpp_Token prev, Cpp_Token next); - -FCPP_LINK bool cpp_push_token_no_merge(Cpp_Token_Stack *stack, Cpp_Token token); -FCPP_LINK bool cpp_push_token_nonalloc(Cpp_Token_Stack *stack, Cpp_Token token); - -inline Cpp_Lex_Data cpp_lex_data_zero() { Cpp_Lex_Data data = {(Cpp_Preprocessor_State)0}; return(data); } - -FCPP_LINK Cpp_Read_Result cpp_lex_step(char *data, int size, Cpp_Lex_Data *lex); - -FCPP_LINK int cpp_lex_file_token_count(char *data, int size); -FCPP_LINK Cpp_Lex_Data cpp_lex_file_nonalloc(char *data, int size, Cpp_Token_Stack *stack, Cpp_Lex_Data lex_data); -inline Cpp_Lex_Data cpp_lex_file_nonalloc(char *data, int size, Cpp_Token_Stack *stack) { return cpp_lex_file_nonalloc(data, size, stack, cpp_lex_data_zero()); } - -FCPP_LINK Cpp_Get_Token_Result cpp_get_token(Cpp_Token_Stack *stack, int pos); - -FCPP_LINK int cpp_get_end_token(Cpp_Token_Stack *stack, int end); -FCPP_LINK void cpp_shift_token_starts(Cpp_Token_Stack *stack, int from_token, int amount); - -FCPP_LINK Cpp_Relex_State cpp_relex_nonalloc_start(char *data, int size, Cpp_Token_Stack *stack, int start, int end, int amount, int tolerance); -FCPP_LINK bool cpp_relex_nonalloc_main(Cpp_Relex_State state, Cpp_Token_Stack *stack); - -#ifndef FCPP_FORBID_MALLOC -FCPP_LINK Cpp_Token_Stack cpp_make_token_stack(int max); -FCPP_LINK void cpp_free_token_stack(Cpp_Token_Stack stack); -FCPP_LINK void cpp_resize_token_stack(Cpp_Token_Stack *stack, int new_max); - -FCPP_LINK void cpp_push_token(Cpp_Token_Stack *stack, Cpp_Token token); -FCPP_LINK void cpp_lex_file(char *data, int size, Cpp_Token_Stack *stack); -FCPP_LINK bool cpp_relex_file_limited(char *data, int size, Cpp_Token_Stack *stack, int start_i, int end_i, int amount, int extra_tolerance); -inline void cpp_relex_file(char *data, int size, Cpp_Token_Stack *stack, int start_i, int end_i, int amount) -{ cpp_relex_file_limited(data, size, stack, start_i, end_i, amount, -1); } -#endif - -#define FCPP_STRING_LIST(x) {x, FCPP_COUNT(x)} - -// TODO(allen): shift towards storing in a context -FCPP_GLOBAL String_And_Flag int_suf_strings[] = { - {"ull"}, {"ULL"}, - {"llu"}, {"LLU"}, - {"ll"}, {"LL"}, - {"l"}, {"L"}, - {"u"}, {"U"} +static String_And_Flag bool_lit_strings[] = { + {"true"}, {"false"} }; +static String_List bool_lits = lexer_string_list(bool_lit_strings); -FCPP_GLOBAL String_List int_sufs = FCPP_STRING_LIST(int_suf_strings); - -FCPP_GLOBAL String_And_Flag float_suf_strings[] = { - {"f"}, {"F"}, - {"l"}, {"L"} -}; -FCPP_GLOBAL String_List float_sufs = FCPP_STRING_LIST(float_suf_strings); - -FCPP_GLOBAL String_And_Flag bool_lit_strings[] = { - {"true"}, {"false"} -}; -FCPP_GLOBAL String_List bool_lits = FCPP_STRING_LIST(bool_lit_strings); - -FCPP_GLOBAL String_And_Flag keyword_strings[] = { +static String_And_Flag keyword_strings[] = { {"and", CPP_TOKEN_AND}, {"and_eq", CPP_TOKEN_ANDEQ}, {"bitand", CPP_TOKEN_BIT_AND}, @@ -215,21 +47,21 @@ FCPP_GLOBAL String_And_Flag keyword_strings[] = { {"not_eq", CPP_TOKEN_NOTEQ}, {"typeid", CPP_TOKEN_TYPEID}, {"compl", CPP_TOKEN_BIT_NOT}, - + {"void", CPP_TOKEN_KEY_TYPE}, {"bool", CPP_TOKEN_KEY_TYPE}, {"char", CPP_TOKEN_KEY_TYPE}, {"int", CPP_TOKEN_KEY_TYPE}, {"float", CPP_TOKEN_KEY_TYPE}, {"double", CPP_TOKEN_KEY_TYPE}, - + {"long", CPP_TOKEN_KEY_MODIFIER}, {"short", CPP_TOKEN_KEY_MODIFIER}, {"unsigned", CPP_TOKEN_KEY_MODIFIER}, - + {"const", CPP_TOKEN_KEY_QUALIFIER}, {"volatile", CPP_TOKEN_KEY_QUALIFIER}, - + {"asm", CPP_TOKEN_KEY_CONTROL_FLOW}, {"break", CPP_TOKEN_KEY_CONTROL_FLOW}, {"case", CPP_TOKEN_KEY_CONTROL_FLOW}, @@ -246,12 +78,12 @@ FCPP_GLOBAL String_And_Flag keyword_strings[] = { {"try", CPP_TOKEN_KEY_CONTROL_FLOW}, {"while", CPP_TOKEN_KEY_CONTROL_FLOW}, {"static_assert", CPP_TOKEN_KEY_CONTROL_FLOW}, - + {"const_cast", CPP_TOKEN_KEY_CAST}, {"dynamic_cast", CPP_TOKEN_KEY_CAST}, {"reinterpret_cast", CPP_TOKEN_KEY_CAST}, {"static_cast", CPP_TOKEN_KEY_CAST}, - + {"class", CPP_TOKEN_KEY_TYPE_DECLARATION}, {"enum", CPP_TOKEN_KEY_TYPE_DECLARATION}, {"struct", CPP_TOKEN_KEY_TYPE_DECLARATION}, @@ -259,20 +91,20 @@ FCPP_GLOBAL String_And_Flag keyword_strings[] = { {"union", CPP_TOKEN_KEY_TYPE_DECLARATION}, {"template", CPP_TOKEN_KEY_TYPE_DECLARATION}, {"typename", CPP_TOKEN_KEY_TYPE_DECLARATION}, - + {"friend", CPP_TOKEN_KEY_ACCESS}, {"namespace", CPP_TOKEN_KEY_ACCESS}, {"private", CPP_TOKEN_KEY_ACCESS}, {"protected", CPP_TOKEN_KEY_ACCESS}, {"public", CPP_TOKEN_KEY_ACCESS}, {"using", CPP_TOKEN_KEY_ACCESS}, - + {"extern", CPP_TOKEN_KEY_LINKAGE}, {"export", CPP_TOKEN_KEY_LINKAGE}, {"inline", CPP_TOKEN_KEY_LINKAGE}, {"static", CPP_TOKEN_KEY_LINKAGE}, {"virtual", CPP_TOKEN_KEY_LINKAGE}, - + {"alignas", CPP_TOKEN_KEY_OTHER}, {"explicit", CPP_TOKEN_KEY_OTHER}, {"noexcept", CPP_TOKEN_KEY_OTHER}, @@ -282,118 +114,18 @@ FCPP_GLOBAL String_And_Flag keyword_strings[] = { {"this", CPP_TOKEN_KEY_OTHER}, {"thread_local", CPP_TOKEN_KEY_OTHER}, }; -FCPP_GLOBAL String_List keywords = FCPP_STRING_LIST(keyword_strings); +static String_List keywords = lexer_string_list(keyword_strings); -FCPP_GLOBAL String_And_Flag op_strings[] = { - {"...", CPP_TOKEN_ELLIPSIS}, - {"<<=", CPP_TOKEN_LSHIFTEQ}, - {">>=", CPP_TOKEN_RSHIFTEQ}, - {"->*", CPP_TOKEN_PTRARROW}, - {"<<", CPP_TOKEN_LSHIFT}, - {">>", CPP_TOKEN_RSHIFT}, - {"&&", CPP_TOKEN_AND}, - {"||", CPP_TOKEN_OR}, - {"->", CPP_TOKEN_ARROW}, - {"++", CPP_TOKEN_INCREMENT}, - {"--", CPP_TOKEN_DECREMENT}, - {"::", CPP_TOKEN_SCOPE}, - {"+=", CPP_TOKEN_ADDEQ}, - {"-=", CPP_TOKEN_SUBEQ}, - {"*=", CPP_TOKEN_MULEQ}, - {"/=", CPP_TOKEN_DIVEQ}, - {"%=", CPP_TOKEN_MODEQ}, - {"&=", CPP_TOKEN_ANDEQ}, - {"|=", CPP_TOKEN_OREQ}, - {"^=", CPP_TOKEN_XOREQ}, - {"==", CPP_TOKEN_EQEQ}, - {">=", CPP_TOKEN_GRTREQ}, - {"<=", CPP_TOKEN_LESSEQ}, - {"!=", CPP_TOKEN_NOTEQ}, - {".*", CPP_TOKEN_PTRDOT}, - {"{", CPP_TOKEN_BRACE_OPEN}, - {"}", CPP_TOKEN_BRACE_CLOSE}, - {"[", CPP_TOKEN_BRACKET_OPEN}, - {"]", CPP_TOKEN_BRACKET_CLOSE}, - {"(", CPP_TOKEN_PARENTHESE_OPEN}, - {")", CPP_TOKEN_PARENTHESE_CLOSE}, - {"<", CPP_TOKEN_LESS}, - {">", CPP_TOKEN_GRTR}, - {"+", CPP_TOKEN_PLUS}, - {"-", CPP_TOKEN_MINUS}, - {"!", CPP_TOKEN_NOT}, - {"~", CPP_TOKEN_TILDE}, - {"*", CPP_TOKEN_STAR}, - {"&", CPP_TOKEN_AMPERSAND}, - {"|", CPP_TOKEN_BIT_OR}, - {"^", CPP_TOKEN_BIT_XOR}, - {"=", CPP_TOKEN_EQ}, - {",", CPP_TOKEN_COMMA}, - {":", CPP_TOKEN_COLON}, - {";", CPP_TOKEN_SEMICOLON}, - {"/", CPP_TOKEN_DIV}, - {"?", CPP_TOKEN_TERNARY_QMARK}, - {"%", CPP_TOKEN_MOD}, - {".", CPP_TOKEN_DOT}, -}; -FCPP_GLOBAL String_List ops = FCPP_STRING_LIST(op_strings); - -FCPP_GLOBAL String_And_Flag pp_op_strings[] = { - {"##", CPP_PP_CONCAT}, - {"#", CPP_PP_STRINGIFY}, -}; -FCPP_GLOBAL String_List pp_ops = FCPP_STRING_LIST(pp_op_strings); - -FCPP_GLOBAL String_And_Flag preprop_strings[] = { - {"include", CPP_PP_INCLUDE}, - {"INCLUDE", CPP_PP_INCLUDE}, - {"ifndef", CPP_PP_IFNDEF}, - {"IFNDEF", CPP_PP_IFNDEF}, - {"define", CPP_PP_DEFINE}, - {"DEFINE", CPP_PP_DEFINE}, - {"import", CPP_PP_IMPORT}, - {"IMPORT", CPP_PP_IMPORT}, - {"pragma", CPP_PP_PRAGMA}, - {"PRAGMA", CPP_PP_PRAGMA}, - {"undef", CPP_PP_UNDEF}, - {"UNDEF", CPP_PP_UNDEF}, - {"endif", CPP_PP_ENDIF}, - {"ENDIF", CPP_PP_ENDIF}, - {"error", CPP_PP_ERROR}, - {"ERROR", CPP_PP_ERROR}, - {"ifdef", CPP_PP_IFDEF}, - {"IFDEF", CPP_PP_IFDEF}, - {"using", CPP_PP_USING}, - {"USING", CPP_PP_USING}, - {"else", CPP_PP_ELSE}, - {"ELSE", CPP_PP_ELSE}, - {"elif", CPP_PP_ELIF}, - {"ELIF", CPP_PP_ELIF}, - {"line", CPP_PP_LINE}, - {"LINE", CPP_PP_LINE}, - {"if", CPP_PP_IF}, - {"IF", CPP_PP_IF}, -}; -FCPP_GLOBAL String_List preprops = FCPP_STRING_LIST(preprop_strings); - -#undef FCPP_STRING_LIST - -#endif // #ifndef FCPP_CPP_LEXER - -#ifdef FCPP_LEXER_IMPLEMENTATION - -#define _Assert FCPP_ASSERT -#define _TentativeAssert FCPP_ASSERT - -FCPP_LINK Sub_Match_List_Result -sub_match_list(char *data, int size, int pos, String_List list, int sub_size){ - Sub_Match_List_Result result; +lexer_link Sub_Match_List_Result +sub_match_list(char *chunk, int size, int pos, String_List list, int sub_size){ + Sub_Match_List_Result result; String str_main; char *str_check; int i,l; - + result.index = -1; result.new_pos = pos; - str_main = make_string(data + pos, size - pos); + str_main = make_string(chunk + pos, size - pos); if (sub_size > 0){ str_main = substr(str_main, 0, sub_size); for (i = 0; i < list.count; ++i){ @@ -415,930 +147,32 @@ sub_match_list(char *data, int size, int pos, String_List list, int sub_size){ } } } - return result; + return result; } -FCPP_LINK Seek_Result -seek_unescaped_eol(char *data, int size, int pos){ - Seek_Result result = {}; - ++pos; - while (pos < size){ - if (data[pos] == '\\'){ - if (pos + 1 < size && - data[pos+1] == '\n'){ - result.new_line = 1; - ++pos; - } - else if (pos + 1 < size && - data[pos+1] == '\r' && - pos + 2 < size && - data[pos+2] == '\n'){ - result.new_line = 1; - pos += 2; - } - } - else if (data[pos] == '\n'){ - break; - } - ++pos; - } - ++pos; - result.pos = pos; - return result; -} - -FCPP_LINK Seek_Result -seek_unescaped_delim(char *data, int size, int pos, char delim){ - Seek_Result result = {}; - bool escape = 0; - ++pos; - while (pos < size){ - if (data[pos] == '\n'){ - result.new_line = 1; - } - if (escape){ - escape = 0; - } - else{ - if (data[pos] == '\\'){ - escape = 1; - } - else if (data[pos] == delim){ - break; - } - } - ++pos; - } - ++pos; - - result.pos = pos; - return result; -} - -FCPP_LINK Seek_Result -seek_block_comment_end(char *data, int size, int pos){ - Seek_Result result = {}; - pos += 2; - while (pos < size){ - if (data[pos] == '*' && - pos + 1 < size && - data[pos+1] == '/'){ - break; - } - if (data[pos] == '\n'){ - result.new_line = 1; - } - ++pos; - } - pos += 2; - result.pos = pos; - return result; -} - -FCPP_LINK Cpp_Read_Result -cpp_read_whitespace(char *data, int size, int pos){ - Cpp_Read_Result result = {}; - - while (pos < size && char_is_whitespace(data[pos])){ - if (data[pos] == '\n'){ - result.newline = 1; - } - ++pos; - } - - result.pos = pos; - - return result; -} - -FCPP_LINK Cpp_Read_Result -cpp_read_junk_line(char *data, int size, int pos){ - Cpp_Read_Result result = {}; - result.token.start = pos; - result.token.type = CPP_TOKEN_JUNK; - - bool comment_end = 0; - while (pos < size && data[pos] != '\n'){ - if (data[pos] == '/' && pos + 1 < size){ - if (data[pos + 1] == '/' || - data[pos + 1] == '*'){ - comment_end = 1; - break; - } - } - ++pos; - } - - if (comment_end){ - result.pos = pos; - result.token.size = pos - result.token.start; - } - else{ - while (pos > 0 && data[pos - 1] == '\r'){ - --pos; - } - if (pos > 0 && data[pos - 1] == '\\'){ - --pos; - } - result.pos = pos; - result.token.size = pos - result.token.start; - } - - return result; -} - -FCPP_LINK Cpp_Read_Result -cpp_read_operator(char *data, int size, int pos){ - Cpp_Read_Result result = {}; - result.pos = pos; - result.token.start = pos; - - Sub_Match_List_Result match; - match = sub_match_list(data, size, result.token.start, ops, -1); - - if (match.index != -1){ - result.pos = match.new_pos; - result.token.size = result.pos - result.token.start; - result.token.type = (Cpp_Token_Type)ops.data[match.index].flags; - result.token.flags |= CPP_TFLAG_IS_OPERATOR; - } - else{ - result.token.size = 1; - result.token.type = CPP_TOKEN_JUNK; - result.pos = pos + 1; - } - - return result; -} - -FCPP_LINK Cpp_Read_Result -cpp_read_pp_operator(char *data, int size, int pos){ - Cpp_Read_Result result = {}; - result.pos = pos; - result.token.start = pos; - - Sub_Match_List_Result match; - match = sub_match_list(data, size, result.token.start, pp_ops, -1); - - _Assert(match.index != -1); - result.pos = match.new_pos; - result.token.size = result.pos - result.token.start; - result.token.type = (Cpp_Token_Type)pp_ops.data[match.index].flags; - - return result; -} - -FCPP_LINK Cpp_Read_Result -cpp_read_alpha_numeric(char *data, int size, int pos, bool in_if_body){ - Cpp_Read_Result result = {}; - result.pos = pos; - result.token.start = pos; - - while (result.pos < size && - char_is_alpha_numeric(data[result.pos])){ - ++result.pos; - } - - result.token.size = result.pos - result.token.start; - - // TODO(allen): do better - if (in_if_body){ - String word; - word.size = result.token.size; - word.str = data + result.token.start; - if (match_ss(word, make_lit_string("defined"))){ - result.token.type = CPP_TOKEN_DEFINED; - result.token.flags |= CPP_TFLAG_IS_OPERATOR; - result.token.flags |= CPP_TFLAG_IS_KEYWORD; - } - } - - if (result.token.type == CPP_TOKEN_JUNK){ - Sub_Match_List_Result match; - match = sub_match_list(data, size, result.token.start, bool_lits, result.token.size); - - if (match.index != -1){ - result.token.type = CPP_TOKEN_BOOLEAN_CONSTANT; - result.token.flags |= CPP_TFLAG_IS_KEYWORD; - } - else{ - match = sub_match_list(data, size, result.token.start, keywords, result.token.size); - - if (match.index != -1){ - String_And_Flag data = keywords.data[match.index]; - result.token.type = (Cpp_Token_Type)data.flags; - result.token.flags |= CPP_TFLAG_IS_KEYWORD; - } - else{ - result.token.type = CPP_TOKEN_IDENTIFIER; - } - } - } - - return result; -} - -FCPP_LINK Cpp_Read_Result -cpp_read_number(char *data, int size, int pos){ - Cpp_Read_Result result = {}; - result.pos = pos; - result.token.start = pos; - - bool is_float = 0; - bool is_integer = 0; - bool is_oct = 0; - bool is_hex = 0; - bool is_zero = 0; - - if (data[pos] == '0'){ - if (pos+1 < size){ - char next = data[pos+1]; - if (next == 'x'){ - is_hex = 1; - is_integer = 1; - } - else if (next == '.'){ - is_float = 1; - ++result.pos; - } - else if (next >= '0' && next <= '9'){ - is_oct = 1; - is_integer = 1; - } - else{ - is_zero = 1; - is_integer = 1; - } - } - else{ - is_zero = 1; - is_integer = 1; - } - } - else if (data[pos] == '.'){ - is_float = 1; - } - - if (is_zero){ - ++result.pos; - } - else if (is_hex){ - ++result.pos; - char character; - do{ - ++result.pos; - if (result.pos >= size){ - break; - } - character = data[result.pos]; - } while(char_is_hex(character)); - } - else if (is_oct){ - char character; - do{ - ++result.pos; - if (result.pos >= size){ - break; - } - character = data[result.pos]; - }while(char_is_numeric(character)); - } - else{ - if (!is_float){ - is_integer = 1; - while (1){ - ++result.pos; - - if (result.pos >= size){ - break; - } - bool is_good = 0; - char character = data[result.pos]; - if (character >= '0' && character <= '9'){ - is_good = 1; - } - else if (character == '.'){ - is_integer = 0; - is_float = 1; - } - if (!is_good){ - break; - } - } - } - - if (is_float){ - bool e_mode = 0; - bool e_minus = 0; - bool is_good = 0; - char character; - - while (1){ - ++result.pos; - if (result.pos >= size){ - break; - } - is_good = 0; - character = data[result.pos]; - if (character >= '0' && character <= '9'){ - is_good = 1; - } - else{ - if (character == 'e' && !e_mode){ - e_mode = 1; - is_good = 1; - } - else if (character == '-' && e_mode && !e_minus){ - e_minus = 1; - is_good = 1; - } - } - if (!is_good){ - break; - } - } - } - } - - if (is_integer){ - Sub_Match_List_Result match = - sub_match_list(data, size, result.pos, int_sufs, -1); - if (match.index != -1){ - result.pos = match.new_pos; - } - result.token.type = CPP_TOKEN_INTEGER_CONSTANT; - result.token.size = result.pos - result.token.start; - } - else if (is_float){ - Sub_Match_List_Result match = - sub_match_list(data, size, result.pos, float_sufs, -1); - if (match.index != -1){ - result.pos = match.new_pos; - } - result.token.type = CPP_TOKEN_FLOATING_CONSTANT; - result.token.size = result.pos - result.token.start; - } - else{ - _Assert(!"This shouldn't happen!"); - } - - return result; -} - -FCPP_LINK Cpp_Read_Result -cpp_read_string_litteral(char *data, int size, int pos){ - Cpp_Read_Result result = {}; - result.token.start = pos; - - _Assert(data[pos] == '"'); - Seek_Result seek = seek_unescaped_delim(data, size, pos, '"'); - pos = seek.pos; - if (seek.new_line){ - result.token.flags |= CPP_TFLAG_MULTILINE; - } - - result.token.size = pos - result.token.start; - result.token.type = CPP_TOKEN_STRING_CONSTANT; - result.pos = pos; - - return result; -} - -FCPP_LINK Cpp_Read_Result -cpp_read_character_litteral(char *data, int size, int pos){ - Cpp_Read_Result result = {}; - result.token.start = pos; - - _Assert(data[pos] == '\''); - Seek_Result seek = seek_unescaped_delim(data, size, pos, '\''); - pos = seek.pos; - if (seek.new_line){ - result.token.flags |= CPP_TFLAG_MULTILINE; - } - - result.token.size = pos - result.token.start; - result.token.type = CPP_TOKEN_CHARACTER_CONSTANT; - result.pos = pos; - - return result; -} - -FCPP_LINK Cpp_Read_Result -cpp_read_line_comment(char *data, int size, int pos){ - Cpp_Read_Result result = {}; - result.token.start = pos; - - _Assert(data[pos] == '/' && data[pos + 1] == '/'); - - pos += 2; - while (pos < size){ - if (data[pos] == '\n'){ - break; - } - if (data[pos] == '\\'){ - if (pos + 1 < size && - data[pos + 1] == '\n'){ - ++pos; - } - else if (pos + 2 < size && - data[pos + 1] == '\r' && - data[pos + 2] == '\n'){ - pos += 2; - } - } - ++pos; - } - if (pos > 0 && data[pos-1] == '\r'){ - --pos; - } - result.token.size = pos - result.token.start; - result.token.type = CPP_TOKEN_COMMENT; - result.pos = pos; - return result; -} - -FCPP_LINK Cpp_Read_Result -cpp_read_block_comment(char *data, int size, int pos){ - Cpp_Read_Result result = {}; - result.token.start = pos; - - _Assert(data[pos] == '/' && data[pos + 1] == '*'); - pos += 2; - while (pos < size){ - if (data[pos] == '*' && - pos + 1 < size && - data[pos+1] == '/'){ - pos += 2; - break; - } - ++pos; - } - result.token.size = pos - result.token.start; - result.token.type = CPP_TOKEN_COMMENT; - result.pos = pos; - return result; -} - -FCPP_LINK Cpp_Read_Result -cpp_read_preprocessor(char *data, int size, int pos){ - _Assert(data[pos] == '#'); - Cpp_Read_Result result = {}; - result.token.start = pos; - result.token.type = CPP_PP_UNKNOWN; - result.token.flags |= CPP_TFLAG_PP_DIRECTIVE; - - ++pos; - while (pos < size && - (data[pos] == ' ' || - data[pos] == '\t')){ - ++pos; - } - - Sub_Match_List_Result match - = sub_match_list(data, size, pos, preprops, -1); - - if (match.index != -1){ - result.token.size = match.new_pos - result.token.start; - result.token.type = (Cpp_Token_Type)preprops.data[match.index].flags; - result.pos = match.new_pos; - } - else{ - while (pos < size && !char_is_whitespace(data[pos])){ - ++pos; - } - result.token.size = pos - result.token.start; - result.pos = pos; - } - - return result; -} - -FCPP_LINK Cpp_Read_Result -cpp_read_pp_include_file(char *data, int size, int pos){ - char start = data[pos]; - _Assert(start == '<' || start == '"'); - - Cpp_Read_Result result = {}; - result.token.start = pos; - result.token.type = CPP_TOKEN_INCLUDE_FILE; - result.token.flags |= CPP_TFLAG_PP_BODY; - - char end; - if (start == '<'){ - end = '>'; - } - else{ - end = '"'; - } - - ++pos; - while (pos < size && data[pos] != end){ - if (data[pos] == '\n'){ - result.token.type = CPP_TOKEN_JUNK; - result.token.flags |= CPP_TFLAG_BAD_ENDING; - break; - } - if (data[pos] == '\\'){ - if (pos + 1 < size && data[pos + 1] == '\n'){ - ++pos; - result.token.flags |= CPP_TFLAG_MULTILINE; - } - else if (pos + 2 < size && - data[pos + 1] == '\r' && - data[pos + 2] == '\n'){ - pos += 2; - result.token.flags |= CPP_TFLAG_MULTILINE; - } - } - ++pos; - } - - if (result.token.type != CPP_TOKEN_JUNK){ - if (pos < size){ - ++pos; - } - } - - result.token.size = pos - result.token.start; - result.pos = pos; - - return result; -} - -FCPP_LINK Cpp_Read_Result -cpp_read_pp_default_mode(char *data, int size, int pos, bool in_if_body){ - char current = data[pos]; - Cpp_Read_Result result; - if (char_is_numeric(current)){ - result = cpp_read_number(data, size, pos); - } - else if (char_is_alpha(current)){ - result = cpp_read_alpha_numeric(data, size, pos, in_if_body); - } - else if (current == '.'){ - if (pos + 1 < size){ - char next = data[pos + 1]; - if (char_is_numeric(next)){ - result = cpp_read_number(data, size, pos); - } - else{ - result = cpp_read_operator(data, size, pos); - } - } - else{ - result = cpp_read_operator(data, size, pos); - } - } - - else if (current == '/'){ - if (pos + 1 < size){ - char next = data[pos + 1]; - if (next == '/'){ - result = cpp_read_line_comment(data, size, pos); - } - else if (next == '*'){ - result = cpp_read_block_comment(data, size, pos); - } - else{ - result = cpp_read_operator(data, size, pos); - } - } - else{ - result = cpp_read_operator(data, size, pos); - } - } - else if (current == '"'){ - result = cpp_read_string_litteral(data, size, pos); - } - else if (current == '\''){ - result = cpp_read_character_litteral(data, size, pos); - } - else{ - result = cpp_read_operator(data, size, pos); - } - - return result; -} - -FCPP_LINK Cpp_Token_Merge -cpp_attempt_token_merge(Cpp_Token prev_token, Cpp_Token next_token){ - Cpp_Token_Merge result = {}; - if (next_token.type == CPP_TOKEN_COMMENT && prev_token.type == CPP_TOKEN_COMMENT && - next_token.flags == prev_token.flags && next_token.state_flags == prev_token.state_flags){ - result.did_merge = 1; - prev_token.size = next_token.start + next_token.size - prev_token.start; - result.new_token = prev_token; - } - else if (next_token.type == CPP_TOKEN_JUNK && prev_token.type == CPP_TOKEN_JUNK && - next_token.flags == prev_token.flags && next_token.state_flags == prev_token.state_flags){ - result.did_merge = 1; - prev_token.size = next_token.start + next_token.size - prev_token.start; - result.new_token = prev_token; - } - return result; -} - -FCPP_LINK bool -cpp_push_token_no_merge(Cpp_Token_Stack *token_stack, Cpp_Token token){ - if (token_stack->count >= token_stack->max_count){ - return 0; - } - - token_stack->tokens[token_stack->count++] = token; - return 1; -} - -FCPP_LINK bool -cpp_push_token_nonalloc(Cpp_Token_Stack *token_stack, Cpp_Token token){ - Cpp_Token_Merge merge = {}; - - if (token_stack->count > 0){ - Cpp_Token prev_token = token_stack->tokens[token_stack->count - 1]; - merge = cpp_attempt_token_merge(prev_token, token); - if (merge.did_merge){ - token_stack->tokens[token_stack->count - 1] = merge.new_token; - } - } - - if (!merge.did_merge){ - if (token_stack->count >= token_stack->max_count){ - return 0; - } - - token_stack->tokens[token_stack->count++] = token; - } - - return 1; -} - -FCPP_LINK Cpp_Read_Result -cpp_lex_step(char *data, int size, Cpp_Lex_Data *lex_data){ - Cpp_Lex_Data lex = *lex_data; - Cpp_Read_Result result = {}; - bool has_result = 1; - - fcpp_u16 state_flags = cpp_token_set_pp_state(0, lex.pp_state); - - char current = data[lex.pos]; - if (char_is_whitespace(current)){ - result = cpp_read_whitespace(data, size, lex.pos); - lex.pos = result.pos; - if (result.newline && lex.pp_state != CPP_LEX_PP_DEFAULT){ - lex.pp_state = CPP_LEX_PP_DEFAULT; - } - has_result = 0; - } - - else{ - if (lex.pp_state == CPP_LEX_PP_DEFAULT){ - // TODO(allen): Not first hard of the line? Then it's junk. - if (current == '#'){ - result = cpp_read_preprocessor(data, size, lex.pos); - lex.pos = result.pos; - switch (result.token.type){ - case CPP_PP_INCLUDE: - case CPP_PP_IMPORT: - case CPP_PP_USING: - lex.pp_state = CPP_LEX_PP_INCLUDE; - break; - case CPP_PP_DEFINE: - lex.pp_state = CPP_LEX_PP_MACRO_IDENTIFIER; - break; - case CPP_PP_UNDEF: - case CPP_PP_IFDEF: - case CPP_PP_IFNDEF: - lex.pp_state = CPP_LEX_PP_IDENTIFIER; - break; - case CPP_PP_IF: - case CPP_PP_ELIF: - lex.pp_state = CPP_LEX_PP_BODY_IF; - break; - case CPP_PP_PRAGMA: - lex.pp_state = CPP_LEX_PP_BODY; - break; - case CPP_PP_LINE: - lex.pp_state = CPP_LEX_PP_NUMBER; - break; - case CPP_PP_ERROR: - lex.pp_state = CPP_LEX_PP_ERROR; - break; - - case CPP_PP_UNKNOWN: - case CPP_PP_ELSE: - case CPP_PP_ENDIF: - lex.pp_state = CPP_LEX_PP_JUNK; - break; - } - } - else{ - result = cpp_read_pp_default_mode(data, size, lex.pos); - lex.pos = result.pos; - } - } - - else{ - if (current == '\\'){ - fcpp_i32 seek = lex.pos; - ++seek; - while (seek < size && data[seek] == '\r'){ - ++seek; - } - if ((seek < size && data[seek] == '\n') || seek >= size){ - lex.pos = seek + 1; - has_result = 0; - } - else{ - lex.pp_state = CPP_LEX_PP_JUNK; - result.token.type = CPP_TOKEN_JUNK; - result.token.start = lex.pos; - result.token.size = 1; - result.token.flags |= CPP_TFLAG_PP_BODY; - lex.pos = seek; - } - } - - else{ - switch (lex.pp_state){ - case CPP_LEX_PP_IDENTIFIER: - if (!char_is_alpha_numeric(current)){ - has_result = 0; - lex.pp_state = CPP_LEX_PP_JUNK; - } - else{ - result = cpp_read_alpha_numeric(data, size, lex.pos); - result.token.flags |= CPP_TFLAG_PP_BODY; - lex.pos = result.pos; - lex.pp_state = CPP_LEX_PP_JUNK; - } - break; - - case CPP_LEX_PP_MACRO_IDENTIFIER: - if (!char_is_alpha_numeric(current)){ - has_result = 0; - lex.pp_state = CPP_LEX_PP_JUNK; - } - else{ - result = cpp_read_alpha_numeric(data, size, lex.pos); - result.token.flags |= CPP_TFLAG_PP_BODY; - lex.pos = result.pos; - lex.pp_state = CPP_LEX_PP_BODY; - } - break; - - case CPP_LEX_PP_INCLUDE: - if (current != '"' && current != '<'){ - has_result = 0; - lex.pp_state = CPP_LEX_PP_JUNK; - } - else{ - result = cpp_read_pp_include_file(data, size, lex.pos); - lex.pos = result.pos; - lex.pp_state = CPP_LEX_PP_JUNK; - } - break; - - case CPP_LEX_PP_BODY: - if (current == '#'){ - result = cpp_read_pp_operator(data, size, lex.pos); - } - else{ - result = cpp_read_pp_default_mode(data, size, lex.pos); - } - lex.pos = result.pos; - result.token.flags |= CPP_TFLAG_PP_BODY; - break; - - case CPP_LEX_PP_BODY_IF: - if (current == '#'){ - result = cpp_read_pp_operator(data, size, lex.pos); - } - else{ - result = cpp_read_pp_default_mode(data, size, lex.pos, 1); - } - lex.pos = result.pos; - result.token.flags |= CPP_TFLAG_PP_BODY; - break; - - case CPP_LEX_PP_NUMBER: - if (!char_is_numeric(current)){ - has_result = 0; - lex.pp_state = CPP_LEX_PP_JUNK; - } - else{ - result = cpp_read_number(data, size, lex.pos); - lex.pos = result.pos; - result.token.flags |= CPP_TFLAG_PP_BODY; - lex.pp_state = CPP_LEX_PP_INCLUDE; - } - break; - - case CPP_LEX_PP_ERROR: - result = cpp_read_junk_line(data, size, lex.pos); - lex.pos = result.pos; - result.token.type = CPP_TOKEN_ERROR_MESSAGE; - result.token.flags |= CPP_TFLAG_PP_BODY; - break; - - default: - { - bool took_comment = 0; - if (current == '/' && lex.pos + 1 < size){ - if (data[lex.pos + 1] == '/'){ - result = cpp_read_line_comment(data, size, lex.pos); - lex.pp_state = CPP_LEX_PP_DEFAULT; - lex.pos = result.pos; - took_comment = 1; - }else if (data[lex.pos + 1] == '*'){ - result = cpp_read_block_comment(data, size, lex.pos); - lex.pos = result.pos; - took_comment = 1; - } - } - - if (!took_comment){ - result = cpp_read_junk_line(data, size, lex.pos); - lex.pos = result.pos; - result.token.flags |= CPP_TFLAG_PP_BODY; - } - }break; - - } - } - } - } - - result.token.state_flags = state_flags; - result.has_result = has_result; - - *lex_data = lex; - return result; -} - -FCPP_LINK int -cpp_lex_file_token_count(char *data, int size){ - int count = 0; - Cpp_Lex_Data lex = {}; - Cpp_Token token = {}; - while (lex.pos < size){ - Cpp_Read_Result step_result = cpp_lex_step(data, size, &lex); - - if (step_result.has_result){ - if (count > 0){ - Cpp_Token_Merge merge = cpp_attempt_token_merge(token, step_result.token); - if (merge.did_merge){ - token = merge.new_token; - } - else{ - token = step_result.token; - ++count; - } - } - else{ - token = step_result.token; - ++count; - } - } - } - return count; -} - -FCPP_LINK Cpp_Lex_Data -cpp_lex_file_nonalloc(char *data, int size, Cpp_Token_Stack *token_stack_out, Cpp_Lex_Data lex_data){ - while (lex_data.pos < size){ - Cpp_Lex_Data prev_lex = lex_data; - Cpp_Read_Result step_result = cpp_lex_step(data, size, &lex_data); - - if (step_result.has_result){ - if (!cpp_push_token_nonalloc(token_stack_out, step_result.token)){ - lex_data = prev_lex; - return lex_data; - } - } - } - - lex_data.complete = 1; - return lex_data; -} - -FCPP_LINK Cpp_Get_Token_Result +lexer_link Cpp_Get_Token_Result cpp_get_token(Cpp_Token_Stack *token_stack, int pos){ - int first, last; - first = 0; - last = token_stack->count; - Cpp_Get_Token_Result result = {}; - if (token_stack->count > 0){ + Cpp_Token *token_array = token_stack->tokens; + Cpp_Token *token = 0; + int first = 0; + int count = token_stack->count; + int last = count; + int this_start = 0, next_start = 0; + + if (count > 0){ for (;;){ result.token_index = (first + last)/2; - - int this_start = token_stack->tokens[result.token_index].start; - int next_start; - if (result.token_index + 1 < token_stack->count){ - next_start = token_stack->tokens[result.token_index+1].start; + token = token_array + result.token_index; + + this_start = token->start; + + if (result.token_index + 1 < count){ + next_start = (token + 1)->start; } else{ - next_start = this_start + token_stack->tokens[result.token_index].size; + next_start = this_start + token->size; } if (this_start <= pos && pos < next_start){ break; @@ -1354,13 +188,12 @@ cpp_get_token(Cpp_Token_Stack *token_stack, int pos){ break; } } - - if (result.token_index == token_stack->count){ + + if (result.token_index == count){ --result.token_index; result.in_whitespace = 1; } else{ - Cpp_Token *token = token_stack->tokens + result.token_index; if (token->start + token->size <= pos){ result.in_whitespace = 1; } @@ -1370,20 +203,858 @@ cpp_get_token(Cpp_Token_Stack *token_stack, int pos){ result.token_index = -1; result.in_whitespace = 1; } - - return result; + + return(result); } -FCPP_LINK void -cpp_shift_token_starts(Cpp_Token_Stack *stack, int from_token_i, int amount){ - int count = stack->count; +lexer_link void +cpp_shift_token_starts(Cpp_Token_Stack *stack, int from_token_i, int shift_amount){ Cpp_Token *token = stack->tokens + from_token_i; - for (int i = from_token_i; i < count; ++i, ++token){ - token->start += amount; + int count = stack->count, i; + + for (i = from_token_i; i < count; ++i, ++token){ + token->start += shift_amount; } } -FCPP_LINK Cpp_Relex_State +enum Pos_Update_Rule{ + PUR_none, + PUR_back_one, +}; + +lexer_link Lex_PP_State +cpp_pp_directive_to_state(Cpp_Token_Type type){ + Lex_PP_State result = LSPP_default; + switch (type){ + case CPP_PP_INCLUDE: + case CPP_PP_IMPORT: + case CPP_PP_USING: + result = LSPP_include; + break; + + case CPP_PP_DEFINE: + result = LSPP_macro_identifier; + break; + + case CPP_PP_UNDEF: + case CPP_PP_IFDEF: + case CPP_PP_IFNDEF: + result = LSPP_identifier; + break; + + case CPP_PP_IF: + case CPP_PP_ELIF: + result = LSPP_body_if; + break; + + case CPP_PP_PRAGMA: + result = LSPP_body; + break; + + case CPP_PP_LINE: + result = LSPP_number; + break; + + case CPP_PP_ERROR: + result = LSPP_error; + break; + + case CPP_PP_UNKNOWN: + case CPP_PP_ELSE: + case CPP_PP_ENDIF: + result = LSPP_junk; + break; + } + return(result); +} + +lexer_link Cpp_Token_Merge +cpp_attempt_token_merge(Cpp_Token prev_token, Cpp_Token next_token){ + Cpp_Token_Merge result = {(Cpp_Token_Type)0}; + if (next_token.type == CPP_TOKEN_COMMENT && prev_token.type == CPP_TOKEN_COMMENT && + next_token.flags == prev_token.flags && next_token.state_flags == prev_token.state_flags){ + result.did_merge = 1; + prev_token.size = next_token.start + next_token.size - prev_token.start; + result.new_token = prev_token; + } + else if (next_token.type == CPP_TOKEN_JUNK && prev_token.type == CPP_TOKEN_JUNK && + next_token.flags == prev_token.flags && next_token.state_flags == prev_token.state_flags){ + result.did_merge = 1; + prev_token.size = next_token.start + next_token.size - prev_token.start; + result.new_token = prev_token; + } + return result; +} + +lexer_link int +cpp_place_token_nonalloc(Cpp_Token *out_tokens, int token_i, Cpp_Token token){ + Cpp_Token_Merge merge = {(Cpp_Token_Type)0}; + Cpp_Token prev_token = {(Cpp_Token_Type)0}; + + if (token_i > 0){ + prev_token = out_tokens[token_i - 1]; + merge = cpp_attempt_token_merge(prev_token, token); + if (merge.did_merge){ + out_tokens[token_i - 1] = merge.new_token; + } + } + + if (!merge.did_merge){ + out_tokens[token_i++] = token; + } + + return(token_i); +} + +lexer_link bool +cpp_push_token_nonalloc(Cpp_Token_Stack *out_tokens, Cpp_Token token){ + bool result = 0; + if (out_tokens->count == out_tokens->max_count){ + out_tokens->count = + cpp_place_token_nonalloc(out_tokens->tokens, out_tokens->count, token); + result = 1; + } + return(result); +} + +struct Lex_Data{ + char *tb; + int tb_pos; + int token_start; + + int pos; + int pos_overide; + int chunk_pos; + + Lex_FSM fsm; + Whitespace_FSM wfsm; + unsigned char pp_state; + unsigned char completed; + + Cpp_Token token; + + int __pc__; +}; +inline Lex_Data +lex_data_init(char *tb){ + Lex_Data data = {0}; + data.tb = tb; + return(data); +} + + +#define DrCase(PC) case PC: goto resumespot_##PC + +#define DrYield(PC, n) {\ + token_stack_out->count = token_i;\ + *S_ptr = S; S_ptr->__pc__ = PC; return(n); resumespot_##PC:; } + +#define DrReturn(n) {\ + token_stack_out->count = token_i;\ + *S_ptr = S; S_ptr->__pc__ = -1; return(n); } + +enum Lex_Result{ + LexFinished, + LexNeedChunk, + LexNeedTokenMemory, + LexHitTokenLimit +}; + +lexer_link int +cpp_lex_nonalloc(Lex_Data *S_ptr, + char *chunk, int size, + Cpp_Token_Stack *token_stack_out){ + Lex_Data S = *S_ptr; + + Cpp_Token *out_tokens = token_stack_out->tokens; + int token_i = token_stack_out->count; + int max_token_i = token_stack_out->max_count; + + Pos_Update_Rule pos_update_rule = PUR_none; + + char c = 0; + + int end_pos = size + S.chunk_pos; + chunk -= S.chunk_pos; + + switch (S.__pc__){ + DrCase(1); + DrCase(2); + DrCase(3); + DrCase(4); + DrCase(5); + DrCase(6); + DrCase(7); + } + + for (;;){ + S.wfsm.white_done = 0; + S.wfsm.pp_state = S.pp_state; + for(;;){ + for (; S.wfsm.pp_state < LSPP_count && S.pos < end_pos;){ + c = chunk[S.pos++]; + int i = S.wfsm.pp_state + whitespace_fsm_eq_classes[c]; + S.wfsm.pp_state = whitespace_fsm_table[i]; + } + S.wfsm.white_done = (S.wfsm.pp_state >= LSPP_count); + + if (S.wfsm.white_done == 0){ + S.chunk_pos += size; + DrYield(4, LexNeedChunk); + } + else break; + } + --S.pos; + S.pp_state = S.wfsm.pp_state; + if (S.pp_state >= LSPP_count){ + S.pp_state -= LSPP_count; + } + + S.token.state_flags = S.pp_state; + + S.token_start = S.pos; + S.tb_pos = 0; + S.fsm = zero_lex_fsm(); + for(;;){ + { + unsigned short *eq_classes = get_eq_classes[S.pp_state]; + unsigned char *fsm_table = get_table[S.pp_state]; + + for (; S.fsm.state < LS_count && S.pos < end_pos;){ + c = chunk[S.pos++]; + S.tb[S.tb_pos++] = c; + + int i = S.fsm.state + eq_classes[c]; + S.fsm.state = fsm_table[i]; + S.fsm.multi_line |= multiline_state_table[S.fsm.state]; + } + S.fsm.emit_token = (S.fsm.state >= LS_count); + } + + if (S.fsm.emit_token == 0){ + S.chunk_pos += size; + DrYield(3, LexNeedChunk); + } + else break; + } + + Assert(S.fsm.emit_token == 1); + + if (c == 0){ + S.completed = 1; + } + + if (S.fsm.state >= LS_count) S.fsm.state -= LS_count; + pos_update_rule = PUR_none; + if (S.pp_state == LSPP_include){ + if (c == 0) S.fsm.emit_token = 0; + switch (S.fsm.state){ + case LSINC_default:break; + + case LSINC_quotes: + case LSINC_pointy: + S.token.type = CPP_TOKEN_INCLUDE_FILE; + S.token.flags = 0; + break; + + case LSINC_junk: + S.token.type = CPP_TOKEN_JUNK; + S.token.flags = 0; + break; + } + } + else{ + switch (S.fsm.state){ + case LS_default: + switch (c){ + case 0: S.fsm.emit_token = 0; break; + +#define OperCase(op,t) case op: S.token.type = t; break; + OperCase('{', CPP_TOKEN_BRACE_OPEN); + OperCase('}', CPP_TOKEN_BRACE_CLOSE); + + OperCase('[', CPP_TOKEN_BRACKET_OPEN); + OperCase(']', CPP_TOKEN_BRACKET_CLOSE); + + OperCase('(', CPP_TOKEN_PARENTHESE_OPEN); + OperCase(')', CPP_TOKEN_PARENTHESE_CLOSE); + + OperCase('~', CPP_TOKEN_TILDE); + OperCase(',', CPP_TOKEN_COMMA); + OperCase(';', CPP_TOKEN_SEMICOLON); + OperCase('?', CPP_TOKEN_TERNARY_QMARK); + + OperCase('@', CPP_TOKEN_JUNK); + OperCase('$', CPP_TOKEN_JUNK); +#undef OperCase + + case '\\': + if (S.pp_state == LSPP_default){ + S.token.type = CPP_TOKEN_JUNK; + } + else{ + S.pos_overide = S.pos; + S.wfsm.white_done = 0; + for (;;){ + for (; S.wfsm.white_done == 0 && S.pos < end_pos;){ + c = chunk[S.pos++]; + if (!(c == ' ' || c == '\t' || c == '\r' || c == '\v' || c == '\f')) S.wfsm.white_done = 1; + } + + if (S.wfsm.white_done == 0){ + S.chunk_pos += size; + DrYield(1, LexNeedChunk); + } + else break; + } + + if (c == '\n'){ + S.fsm.emit_token = 0; + S.pos_overide = 0; + } + else{ + S.token.type = CPP_TOKEN_JUNK; + } + } + break; + } + if (c != '@' && c != '$' && c != '\\'){ + S.token.flags = CPP_TFLAG_IS_OPERATOR; + } + break; + + case LS_identifier: + { + --S.pos; + + int word_size = S.pos - S.token_start; + + if (S.pp_state == LSPP_body_if){ + if (match_ss(make_string(S.tb, word_size), make_lit_string("defined"))){ + S.token.type = CPP_TOKEN_DEFINED; + S.token.flags = CPP_TFLAG_IS_OPERATOR | CPP_TFLAG_IS_KEYWORD; + break; + } + } + + Sub_Match_List_Result sub_match; + sub_match = sub_match_list(S.tb, S.tb_pos, 0, bool_lits, word_size); + + if (sub_match.index != -1){ + S.token.type = CPP_TOKEN_BOOLEAN_CONSTANT; + S.token.flags = CPP_TFLAG_IS_KEYWORD; + } + else{ + sub_match = sub_match_list(S.tb, S.tb_pos, 0, keywords, word_size); + + if (sub_match.index != -1){ + String_And_Flag data = keywords.data[sub_match.index]; + S.token.type = (Cpp_Token_Type)data.flags; + S.token.flags = CPP_TFLAG_IS_KEYWORD; + } + else{ + S.token.type = CPP_TOKEN_IDENTIFIER; + S.token.flags = 0; + } + } + }break; + + case LS_pound: + S.token.flags = 0; + switch (c){ + case '#': S.token.type = CPP_PP_CONCAT; break; + default: + S.token.type = CPP_PP_STRINGIFY; + pos_update_rule = PUR_back_one; + break; + } + break; + + case LS_pp: + { + S.fsm.directive_state = LSDIR_default; + S.fsm.emit_token = 0; + for (;;){ + for (; S.fsm.directive_state < LSDIR_count && S.pos < end_pos;){ + c = chunk[S.pos++]; + S.fsm.directive_state = pp_directive_table[S.fsm.directive_state + pp_directive_eq_classes[c]]; + } + S.fsm.emit_token = (S.fsm.int_state >= LSDIR_count); + + if (S.fsm.emit_token == 0){ + S.chunk_pos += size; + DrYield(6, LexNeedChunk); + } + else break; + } + --S.pos; + + Cpp_Token_Type type = (Cpp_Token_Type)(S.fsm.directive_state - pp_directive_terminal_base); + S.token.type = type; + if (type == CPP_TOKEN_JUNK){ + S.token.flags = 0; + } + else{ + S.token.flags = CPP_TFLAG_PP_DIRECTIVE; + S.pp_state = (unsigned char)cpp_pp_directive_to_state(S.token.type); + } + }break; + + case LS_number: + case LS_number0: + case LS_hex: + S.fsm.int_state = LSINT_default; + S.fsm.emit_token = 0; + --S.pos; + for (;;){ + for (; S.fsm.int_state < LSINT_count && S.pos < end_pos;){ + c = chunk[S.pos++]; + S.fsm.int_state = int_fsm_table[S.fsm.int_state + int_fsm_eq_classes[c]]; + } + S.fsm.emit_token = (S.fsm.int_state >= LSINT_count); + + if (S.fsm.emit_token == 0){ + S.chunk_pos += size; + DrYield(5, LexNeedChunk); + } + else break; + } + --S.pos; + + S.token.type = CPP_TOKEN_INTEGER_CONSTANT; + S.token.flags = 0; + break; + + case LS_float: + case LS_crazy_float0: + case LS_crazy_float1: + S.token.type = CPP_TOKEN_FLOATING_CONSTANT; + S.token.flags = 0; + switch (c){ + case 'f': case 'F': + case 'l': case 'L':break; + default: + pos_update_rule = PUR_back_one; + break; + } + break; + + case LS_char: + case LS_char_slashed: + S.token.type = CPP_TOKEN_JUNK; + if (c == '\''){ + S.token.type = CPP_TOKEN_CHARACTER_CONSTANT; + } + S.token.flags = 0; + break; + + case LS_char_multiline: + S.token.type = CPP_TOKEN_JUNK; + if (c == '\''){ + S.token.type = CPP_TOKEN_CHARACTER_CONSTANT; + } + S.token.flags = CPP_TFLAG_MULTILINE; + break; + + case LS_string: + case LS_string_slashed: + S.token.type = CPP_TOKEN_JUNK; + if (c == '"'){ + S.token.type = CPP_TOKEN_STRING_CONSTANT; + } + S.token.flags = 0; + break; + + case LS_string_multiline: + S.token.type = CPP_TOKEN_JUNK; + if (c == '"'){ + S.token.type = CPP_TOKEN_STRING_CONSTANT; + } + S.token.flags = CPP_TFLAG_MULTILINE; + break; + + case LS_comment_pre: + S.token.flags = CPP_TFLAG_IS_OPERATOR; + switch (c){ + case '=': S.token.type = CPP_TOKEN_DIVEQ; break; + default: + S.token.type = CPP_TOKEN_DIV; + pos_update_rule = PUR_back_one; + break; + } + break; + + case LS_comment: + case LS_comment_slashed: + S.token.type = CPP_TOKEN_COMMENT; + S.token.flags = 0; + pos_update_rule = PUR_back_one; + break; + + case LS_comment_block: + case LS_comment_block_ending: + S.token.type = CPP_TOKEN_COMMENT; + S.token.flags = 0; + break; + + case LS_error_message: + S.token.type = CPP_TOKEN_ERROR_MESSAGE; + S.token.flags = 0; + pos_update_rule = PUR_back_one; + break; + + case LS_dot: + S.token.flags = CPP_TFLAG_IS_OPERATOR; + switch (c){ + case '*': S.token.type = CPP_TOKEN_PTRDOT; break; + default: + S.token.type = CPP_TOKEN_DOT; + pos_update_rule = PUR_back_one; + break; + } + break; + + case LS_ellipsis: + switch (c){ + case '.': + S.token.flags = CPP_TFLAG_IS_OPERATOR; + S.token.type = CPP_TOKEN_ELLIPSIS; + break; + + default: + S.token.type = CPP_TOKEN_JUNK; + pos_update_rule = PUR_back_one; + break; + } + break; + + case LS_less: + S.token.flags = CPP_TFLAG_IS_OPERATOR; + switch (c){ + case '=': S.token.type = CPP_TOKEN_LESSEQ; break; + default: + S.token.type = CPP_TOKEN_LESS; + pos_update_rule = PUR_back_one; + break; + } + break; + + case LS_less_less: + S.token.flags = CPP_TFLAG_IS_OPERATOR; + switch (c){ + case '=': S.token.type = CPP_TOKEN_LSHIFTEQ; break; + default: + S.token.type = CPP_TOKEN_LSHIFT; + pos_update_rule = PUR_back_one; + break; + } + break; + + case LS_more: + S.token.flags = CPP_TFLAG_IS_OPERATOR; + switch (c){ + case '=': S.token.type = CPP_TOKEN_GRTREQ; break; + default: + S.token.type = CPP_TOKEN_GRTR; + pos_update_rule = PUR_back_one; + break; + } + break; + + case LS_more_more: + S.token.flags = CPP_TFLAG_IS_OPERATOR; + switch (c){ + case '=': S.token.type = CPP_TOKEN_RSHIFTEQ; break; + default: + S.token.type = CPP_TOKEN_RSHIFT; + pos_update_rule = PUR_back_one; + break; + } + break; + + case LS_minus: + S.token.flags = CPP_TFLAG_IS_OPERATOR; + switch (c){ + case '-': S.token.type = CPP_TOKEN_DECREMENT; break; + case '=': S.token.type = CPP_TOKEN_SUBEQ; break; + default: + S.token.type = CPP_TOKEN_MINUS; + pos_update_rule = PUR_back_one; + break; + } + break; + + case LS_arrow: + S.token.flags = CPP_TFLAG_IS_OPERATOR; + switch (c){ + case '*': S.token.type = CPP_TOKEN_PTRARROW; break; + default: + S.token.type = CPP_TOKEN_ARROW; + pos_update_rule = PUR_back_one; + break; + } + break; + + case LS_and: + S.token.flags = CPP_TFLAG_IS_OPERATOR; + switch (c){ + case '&': S.token.type = CPP_TOKEN_AND; break; + case '=': S.token.type = CPP_TOKEN_ANDEQ; break; + default: + S.token.type = CPP_TOKEN_AMPERSAND; + pos_update_rule = PUR_back_one; + break; + } + break; + + case LS_or: + S.token.flags = CPP_TFLAG_IS_OPERATOR; + switch (c){ + case '|': S.token.type = CPP_TOKEN_OR; break; + case '=': S.token.type = CPP_TOKEN_OREQ; break; + default: + S.token.type = CPP_TOKEN_BIT_OR; + pos_update_rule = PUR_back_one; + break; + } + break; + + case LS_plus: + S.token.flags = CPP_TFLAG_IS_OPERATOR; + switch (c){ + case '+': S.token.type = CPP_TOKEN_INCREMENT; break; + case '=': S.token.type = CPP_TOKEN_ADDEQ; break; + default: + S.token.type = CPP_TOKEN_PLUS; + pos_update_rule = PUR_back_one; + break; + } + break; + + case LS_colon: + S.token.flags = CPP_TFLAG_IS_OPERATOR; + switch (c){ + case ':': S.token.type = CPP_TOKEN_SCOPE; break; + default: + S.token.type = CPP_TOKEN_COLON; + pos_update_rule = PUR_back_one; + break; + } + break; + + case LS_star: + S.token.flags = CPP_TFLAG_IS_OPERATOR; + switch (c){ + case '=': S.token.type = CPP_TOKEN_MULEQ; break; + default: + S.token.type = CPP_TOKEN_STAR; + pos_update_rule = PUR_back_one; + break; + } + break; + + case LS_modulo: + S.token.flags = CPP_TFLAG_IS_OPERATOR; + switch (c){ + case '=': S.token.type = CPP_TOKEN_MODEQ; break; + default: + S.token.type = CPP_TOKEN_MOD; + pos_update_rule = PUR_back_one; + break; + } + break; + + case LS_caret: + S.token.flags = CPP_TFLAG_IS_OPERATOR; + switch (c){ + case '=': S.token.type = CPP_TOKEN_XOREQ; break; + default: + S.token.type = CPP_TOKEN_BIT_XOR; + pos_update_rule = PUR_back_one; + break; + } + break; + + case LS_eq: + S.token.flags = CPP_TFLAG_IS_OPERATOR; + switch (c){ + case '=': S.token.type = CPP_TOKEN_EQEQ; break; + default: + S.token.type = CPP_TOKEN_EQ; + pos_update_rule = PUR_back_one; + break; + } + break; + + case LS_bang: + S.token.flags = CPP_TFLAG_IS_OPERATOR; + switch (c){ + case '=': S.token.type = CPP_TOKEN_NOTEQ; break; + default: + S.token.type = CPP_TOKEN_NOT; + pos_update_rule = PUR_back_one; + break; + } + break; + } + + switch (pos_update_rule){ + case PUR_back_one: + --S.pos; + break; + + default: + if (chunk[S.pos-1] == 0){ + --S.pos; + } + break; + } + + if ((S.token.flags & CPP_TFLAG_PP_DIRECTIVE) == 0){ + switch (S.pp_state){ + case LSPP_include: + if (S.token.type != CPP_TOKEN_INCLUDE_FILE){ + S.token.type = CPP_TOKEN_JUNK; + } + S.pp_state = LSPP_junk; + break; + + case LSPP_macro_identifier: + if (S.fsm.state != LS_identifier){ + S.token.type = CPP_TOKEN_JUNK; + S.pp_state = LSPP_junk; + } + else{ + S.pp_state = LSPP_body; + } + break; + + case LSPP_identifier: + if (S.fsm.state != LS_identifier){ + S.token.type = CPP_TOKEN_JUNK; + } + S.pp_state = LSPP_junk; + break; + + case LSPP_number: + if (S.token.type != CPP_TOKEN_INTEGER_CONSTANT){ + S.token.type = CPP_TOKEN_JUNK; + S.pp_state = LSPP_junk; + } + else{ + S.pp_state = LSPP_include; + } + break; + + case LSPP_junk: + S.token.type = CPP_TOKEN_JUNK; + break; + } + } + } + + if (S.fsm.emit_token){ + S.token.start = S.token_start; + if (S.pos_overide){ + S.token.size = S.pos_overide - S.token_start; + S.pos_overide = 0; + } + else{ + S.token.size = S.pos - S.token_start; + } + if ((S.token.flags & CPP_TFLAG_PP_DIRECTIVE) == 0){ + S.token.flags |= (S.pp_state != LSPP_default)?(CPP_TFLAG_PP_BODY):(0); + } + + token_i = cpp_place_token_nonalloc(out_tokens, token_i, S.token); + if (token_i == max_token_i){ + if (S.pos == end_pos){ + S.chunk_pos += size; + DrYield(7, LexNeedChunk); + } + DrYield(2, LexNeedTokenMemory); + } + } + + if (S.completed){ + break; + } + } + + DrReturn(LexFinished); +} + +#undef DrYield +#undef DrReturn +#undef DrCase + +lexer_link int +cpp_lex_nonalloc(Lex_Data *S_ptr, + char *chunk, int size, + Cpp_Token_Stack *token_stack_out, int max_tokens){ + Cpp_Token_Stack temp_stack = *token_stack_out; + if (temp_stack.max_count > temp_stack.count + max_tokens){ + temp_stack.max_count = temp_stack.count + max_tokens; + } + + int result = cpp_lex_nonalloc(S_ptr, chunk, size, &temp_stack); + + token_stack_out->count = temp_stack.count; + + if (result == LexNeedTokenMemory){ + if (token_stack_out->count < token_stack_out->max_count){ + result = LexHitTokenLimit; + } + } + + return(result); +} + +lexer_link int +cpp_lex_size_nonalloc(Lex_Data *S_ptr, + char *chunk, int size, int full_size, + Cpp_Token_Stack *token_stack_out){ + int result = 0; + if (S_ptr->pos >= full_size){ + char end_null = 0; + result = cpp_lex_nonalloc(S_ptr, &end_null, 1, token_stack_out); + } + else{ + result = cpp_lex_nonalloc(S_ptr, chunk, size, token_stack_out); + if (result == LexNeedChunk){ + if (S_ptr->pos >= full_size){ + char end_null = 0; + result = cpp_lex_nonalloc(S_ptr, &end_null, 1, token_stack_out); + } + } + } + return(result); +} + +lexer_link int +cpp_lex_size_nonalloc(Lex_Data *S_ptr, + char *chunk, int size, int full_size, + Cpp_Token_Stack *token_stack_out, int max_tokens){ + Cpp_Token_Stack temp_stack = *token_stack_out; + if (temp_stack.max_count > temp_stack.count + max_tokens){ + temp_stack.max_count = temp_stack.count + max_tokens; + } + + int result = cpp_lex_size_nonalloc(S_ptr, chunk, size, full_size, + &temp_stack); + + token_stack_out->count = temp_stack.count; + + if (result == LexNeedTokenMemory){ + if (token_stack_out->count < token_stack_out->max_count){ + result = LexHitTokenLimit; + } + } + + return(result); +} + +lexer_link Cpp_Relex_State cpp_relex_nonalloc_start(char *data, int size, Cpp_Token_Stack *stack, int start, int end, int amount, int tolerance){ Cpp_Relex_State state; @@ -1396,21 +1067,21 @@ cpp_relex_nonalloc_start(char *data, int size, Cpp_Token_Stack *stack, state.tolerance = tolerance; Cpp_Get_Token_Result result = cpp_get_token(stack, start); - if (result.token_index <= 0){ + + state.start_token_i = result.token_index-1; + if (state.start_token_i < 0){ state.start_token_i = 0; } - else{ - state.start_token_i = result.token_index-1; - } result = cpp_get_token(stack, end); - if (result.token_index < 0){ - result.token_index = 0; - } - else if (end > stack->tokens[result.token_index].start){ - ++result.token_index; - } + state.end_token_i = result.token_index; + if (end > stack->tokens[state.end_token_i].start){ + ++state.end_token_i; + } + if (state.end_token_i < 0){ + state.end_token_i = 0; + } state.relex_start = stack->tokens[state.start_token_i].start; if (start < state.relex_start){ @@ -1422,6 +1093,13 @@ cpp_relex_nonalloc_start(char *data, int size, Cpp_Token_Stack *stack, return(state); } +inline char +cpp_token_get_pp_state(fcpp_u16 bitfield){ + return (char)(bitfield); +} + +// TODO(allen): Eliminate this once we actually store the EOF token +// in the token stack. inline Cpp_Token cpp__get_token(Cpp_Token_Stack *stack, Cpp_Token *tokens, int size, int index){ Cpp_Token result; @@ -1438,44 +1116,64 @@ cpp__get_token(Cpp_Token_Stack *stack, Cpp_Token *tokens, int size, int index){ return result; } -FCPP_LINK bool -cpp_relex_nonalloc_main(Cpp_Relex_State *state, Cpp_Token_Stack *relex_stack, int *relex_end){ +FCPP_LINK int +cpp_relex_nonalloc_main(Cpp_Relex_State *state, + Cpp_Token_Stack *relex_stack, + int *relex_end, + char *spare){ Cpp_Token_Stack *stack = state->stack; Cpp_Token *tokens = stack->tokens; cpp_shift_token_starts(stack, state->end_token_i, state->amount); - Cpp_Lex_Data lex = {}; + Lex_Data lex = lex_data_init(spare); lex.pp_state = cpp_token_get_pp_state(tokens[state->start_token_i].state_flags); lex.pos = state->relex_start; int relex_end_i = state->end_token_i; Cpp_Token match_token = cpp__get_token(stack, tokens, state->size, relex_end_i); Cpp_Token end_token = match_token; - bool went_too_far = 0; + int went_too_far = false; + // TODO(allen): This can be better I suspect. for (;;){ - Cpp_Read_Result read = cpp_lex_step(state->data, state->size, &lex); - if (read.has_result){ - if (read.token.start == end_token.start && - read.token.size == end_token.size && - read.token.flags == end_token.flags && - read.token.state_flags == end_token.state_flags){ - break; + int result = + cpp_lex_size_nonalloc(&lex, + state->data, + state->size, + state->size, + relex_stack, 1); + + switch (result){ + case LexHitTokenLimit: + { + Cpp_Token token = relex_stack->tokens[relex_stack->count-1]; + if (token.start == end_token.start && + token.size == end_token.size && + token.flags == end_token.flags && + token.state_flags == end_token.state_flags){ + --relex_stack->count; + goto double_break; + } + + while (lex.pos > end_token.start && relex_end_i < stack->count){ + ++relex_end_i; + end_token = cpp__get_token(stack, tokens, state->size, relex_end_i); + } } - cpp_push_token_nonalloc(relex_stack, read.token); + break; - while (lex.pos > end_token.start && relex_end_i < stack->count){ - ++relex_end_i; - end_token = cpp__get_token(stack, tokens, state->size, relex_end_i); - } - if (relex_stack->count == relex_stack->max_count){ - went_too_far = 1; - break; - } + case LexNeedChunk: Assert(!"Invalid path"); break; + + case LexNeedTokenMemory: + went_too_far = true; + goto double_break; + + case LexFinished: + goto double_break; } - if (lex.pos >= state->size) break; } + double_break:; if (!went_too_far){ if (relex_stack->count > 0){ @@ -1509,28 +1207,32 @@ cpp_relex_nonalloc_main(Cpp_Relex_State *state, Cpp_Token_Stack *relex_stack, in return(went_too_far); } -#ifndef FCPP_FORBID_MALLOC +#if !defined(FCPP_FORBID_MALLOC) + +#include +#include + FCPP_LINK Cpp_Token_Stack cpp_make_token_stack(int starting_max){ Cpp_Token_Stack token_stack; token_stack.count = 0; token_stack.max_count = starting_max; - token_stack.tokens = (Cpp_Token*)FCPP_GET_MEMORY(sizeof(Cpp_Token)*starting_max); - return token_stack; + token_stack.tokens = (Cpp_Token*)malloc(sizeof(Cpp_Token)*starting_max); + return(token_stack); } FCPP_LINK void cpp_free_token_stack(Cpp_Token_Stack token_stack){ - FCPP_FREE_MEMORY(token_stack.tokens); + free(token_stack.tokens); } FCPP_LINK void cpp_resize_token_stack(Cpp_Token_Stack *token_stack, int new_max){ Cpp_Token *new_tokens = (Cpp_Token*)FCPP_GET_MEMORY(sizeof(Cpp_Token)*new_max); - + if (new_tokens){ - FCPP_MEM_COPY(new_tokens, token_stack->tokens, sizeof(Cpp_Token)*token_stack->count); - FCPP_FREE_MEMORY(token_stack->tokens); + memcpy(new_tokens, token_stack->tokens, sizeof(Cpp_Token)*token_stack->count); + free(token_stack->tokens); token_stack->tokens = new_tokens; token_stack->max_count = new_max; } @@ -1541,168 +1243,45 @@ cpp_push_token(Cpp_Token_Stack *token_stack, Cpp_Token token){ if (!cpp_push_token_nonalloc(token_stack, token)){ int new_max = 2*token_stack->max_count + 1; cpp_resize_token_stack(token_stack, new_max); - bool result = cpp_push_token_nonalloc(token_stack, token); - _Assert(result); + cpp_push_token_nonalloc(token_stack, token); } } FCPP_LINK void cpp_lex_file(char *data, int size, Cpp_Token_Stack *token_stack_out){ - Cpp_Lex_Data lex = {}; - while (lex.pos < size){ - Cpp_Read_Result step_result = cpp_lex_step(data, size, &lex); - if (step_result.has_result){ - cpp_push_token(token_stack_out, step_result.token); + Lex_Data S = {0}; + S.tb = (char*)malloc(size); + int quit = 0; + + token_stack_out->count = 0; + for (;!quit;){ + int result = cpp_lex_nonalloc(&S, data, size, token_stack_out); + switch (result){ + case LexFinished: + { + quit = 1; + }break; + + case LexNeedChunk: + { + char empty = 0; + cpp_lex_nonalloc(&S, &empty, 1, token_stack_out); + quit = 1; + }break; + + case LexNeedTokenMemory: + { + int new_max = 2*token_stack_out->max_count + 1; + cpp_resize_token_stack(token_stack_out, new_max); + }break; } } + + free(S.tb); } -FCPP_LINK bool -cpp_relex_file_limited(char *data, int size, Cpp_Token_Stack *stack, - int start, int end, int amount, int tolerance){ -#if 0 - int start_token_i, end_token_i; - Cpp_Get_Token_Result get_result = cpp_get_token(token_stack, start_i); - start_token_i = get_result.token_index; - get_result = cpp_get_token(token_stack, end_i); - end_token_i = get_result.token_index; - if (end_token_i == -1){ - end_token_i = 0; - } - else if (end > token_stack->tokens[end_token_i].start){ - ++end_token_i; - } - cpp_shift_token_starts(token_stack, end_token_i, amount); - - int relex_start_i = start_token_i - 1; - if (relex_start_i < 0){ - relex_start_i = 0; - } - - int end_guess_i = end_token_i + 1; - if (end_guess_i > token_stack->count){ - --end_guess_i; - } -#endif - - int relex_start_i; - int end_token_i, end_guess_i; - { - Cpp_Get_Token_Result result = cpp_get_token(stack, start); - if (result.token_index <= 0){ - relex_start_i = 0; - } - else{ - relex_start_i = result.token_index-1; - } - - result = cpp_get_token(stack, end); - if (result.token_index < 0) result.token_index = 0; - else if (end > stack->tokens[result.token_index].start) ++result.token_index; - end_token_i = result.token_index; - end_guess_i = result.token_index+1; - } - - int relex_start = stack->tokens[relex_start_i].start; - if (start < relex_start) relex_start = start; - - cpp_shift_token_starts(stack, end_token_i, amount); - Cpp_Token_Stack relex_stack = cpp_make_token_stack((end_guess_i - relex_start_i + 1) * 3 / 2); - Cpp_Lex_Data lex = {}; - lex.pp_state = cpp_token_get_pp_state(stack->tokens[relex_start_i].state_flags); - lex.pos = relex_start; - bool went_too_far = 0; - - while (1){ - Cpp_Read_Result result = cpp_lex_step(data, size, &lex); - if (result.has_result){ - if (end_guess_i < stack->count && - result.token.start == stack->tokens[end_guess_i].start && - result.token.size == stack->tokens[end_guess_i].size && - result.token.flags == stack->tokens[end_guess_i].flags && - result.token.state_flags == stack->tokens[end_guess_i].state_flags){ - break; - } - else{ - cpp_push_token(&relex_stack, result.token); - while (lex.pos > stack->tokens[end_guess_i].start && - end_guess_i < stack->count){ - ++end_guess_i; - } - } - } - - if (lex.pos >= size){ - break; - } - - if (tolerance >= 0 && relex_stack.count + relex_start_i >= end_guess_i + tolerance){ - went_too_far = 1; - break; - } - } - - if (!went_too_far){ - int relex_end_i = end_guess_i; - - if (relex_stack.count > 0){ - if (relex_start_i > 0){ - Cpp_Token_Merge merge = cpp_attempt_token_merge(stack->tokens[relex_start_i - 1], - relex_stack.tokens[0]); - if (merge.did_merge){ - --relex_start_i; - relex_stack.tokens[0] = merge.new_token; - } - } - - if (relex_end_i < stack->count){ - Cpp_Token_Merge merge = cpp_attempt_token_merge(relex_stack.tokens[relex_stack.count - 1], - stack->tokens[relex_end_i]); - if (merge.did_merge){ - ++relex_end_i; - relex_stack.tokens[relex_stack.count - 1] = merge.new_token; - } - } - } - - int token_delete_amount = relex_end_i - relex_start_i; - int token_shift_amount = relex_stack.count - token_delete_amount; - - if (token_shift_amount != 0){ - int new_token_count = stack->count + token_shift_amount; - if (new_token_count > stack->max_count){ - int new_max = 2*stack->max_count + 1; - while (new_token_count > new_max){ - new_max = 2*new_max + 1; - } - cpp_resize_token_stack(stack, new_max); - } - - if (relex_end_i < stack->count){ - FCPP_MEM_MOVE(stack->tokens + relex_end_i + token_shift_amount, - stack->tokens + relex_end_i, sizeof(Cpp_Token)*(stack->count - relex_end_i)); - } - - stack->count += token_shift_amount; - } - - FCPP_MEM_COPY(stack->tokens + relex_start_i, relex_stack.tokens, sizeof(Cpp_Token)*relex_stack.count); - cpp_free_token_stack(relex_stack); - } - - else{ - cpp_shift_token_starts(stack, end_token_i, -amount); - cpp_free_token_stack(relex_stack); - } - - return went_too_far; -} #endif -#undef _Assert -#undef _TentativeAssert - -#undef FCPP_LEXER_IMPLEMENTATION -#endif // #ifdef FCPP_LEXER_IMPLEMENTATION +#endif // BOTTOM diff --git a/test/4cpp_lexer_fsms.h b/4cpp_lexer_fsms.h similarity index 100% rename from test/4cpp_lexer_fsms.h rename to 4cpp_lexer_fsms.h diff --git a/4cpp_lexer_old.h b/4cpp_lexer_old.h new file mode 100644 index 00000000..c5e31b00 --- /dev/null +++ b/4cpp_lexer_old.h @@ -0,0 +1,1683 @@ +/* "4cpp" Open C++ Parser v0.1: Lexer + no warranty implied; use at your own risk + +NOTES ON USE: + OPTIONS: + Set options by defining macros before including this file. + + FCPP_LEXER_IMPLEMENTATION - causes this file to output function implementations + - this option is unset after use so that future includes of this file + in the same unit do not continue to output implementations + + FCPP_NO_MALLOC - prevent including + FCPP_NO_ASSERT - prevent including + FCPP_NO_STRING - prevent including + FCPP_NO_CRT - FCPP_NO_MALLOC & FCPP_NO_ASSERT & FCPP_NO_STRING + + FCPP_FORBID_MALLOC - one step above *NO_MALLOC with this set 4cpp functions that do allocations + are not allowed to be declared or defined at all, forcing the user to handle + allocation themselves + - implies FCPP_NO_MALLOC + + FCPP_GET_MEMORY - defines how to make allocations, interface of malloc, defaults to malloc + FCPP_FREE_MEMORY - defines how to free memory, interface of ree, defaults to free + (The above must be defined if FCPP_NO_MALLOC is set, unless FCPP_FORBID_MALLOC is set) + + FCPP_ASSERT - defines how to make assertions, interface of assert, defaults to assert + + FCPP_MEM_COPY - defines how to copy blocks of memory, interface of memcpy, defaults to memcpy + FCPP_MEM_MOVE - defines how to move blocks of memory, interface of memmove, defaults to memmove + (The above must be defined if FCPP_NO_STRING is set) + + FCPP_LINK - defines linkage of non-inline functions, defaults to static + FCPP_EXTERN - changes FCPP_LINK default to extern, this option is ignored if FCPP_LINK is defined + + include the file "4cpp_clear_config.h" if you want to undefine all options for some reason + + HIDDDEN DEPENDENCIES: + 4cpp is not a single file include library, there are dependencies between the files. + Be sure to include these dependencies before 4cpp_lexer.h: + + 4cpp_types.h + 4cpp_string.h +*/ + +// TOP +// TODO(allen): +// +// EASE OF USE AND DEPLOYMENT +// - make it easier to locate the list of function declarations +// - more C compatibility +// +// POTENTIAL +// - Experiment with optimizations. Sean's State machine? +// - Reserve 0th token for null? Put a EOF token at the end? +// - Pass Cpp_File and Cpp_Token_Stack by value instead of by pointer? +// +// CURRENT +// - lex in chunks +// + +#include "4coder_config.h" + +#ifndef FCPP_LEXER_INC +#define FCPP_LEXER_INC + +#include "4cpp_lexer_types.h" + +struct Cpp_Lex_Data{ + Cpp_Preprocessor_State pp_state; + int pos; + int complete; +}; + +struct Cpp_Read_Result{ + Cpp_Token token; + int pos; + char newline; + char has_result; +}; + +// TODO(allen): revisit this keyword data declaration system +struct String_And_Flag{ + char *str; + fcpp_u32 flags; +}; + +struct String_List{ + String_And_Flag *data; + int count; +}; + +struct Sub_Match_List_Result{ + int index; + fcpp_i32 new_pos; +}; + +inline fcpp_u16 +cpp_token_set_pp_state(fcpp_u16 bitfield, Cpp_Preprocessor_State state_value){ + return (fcpp_u16)state_value; +} + +inline Cpp_Preprocessor_State +cpp_token_get_pp_state(fcpp_u16 bitfield){ + return (Cpp_Preprocessor_State)(bitfield); +} + +inline String +cpp_get_lexeme(char *str, Cpp_Token *token){ + String result; + result.str = str + token->start; + result.size = token->size; + return result; +} + +inline bool +is_keyword(Cpp_Token_Type type){ + return (type >= CPP_TOKEN_KEY_TYPE && type <= CPP_TOKEN_KEY_OTHER); +} + +FCPP_LINK Sub_Match_List_Result sub_match_list(char *data, int size, int pos, String_List list, int sub_size); + +FCPP_LINK Seek_Result seek_unescaped_eol(char *data, int size, int pos); +FCPP_LINK Seek_Result seek_unescaped_delim(char *data, int size, int pos, char delim); +FCPP_LINK Seek_Result seek_block_comment_end(char *data, int size, int pos); + +FCPP_LINK Cpp_Read_Result cpp_read_whitespace(char *data, int size, int pos); +FCPP_LINK Cpp_Read_Result cpp_read_junk_line(char *data, int size, int pos); +FCPP_LINK Cpp_Read_Result cpp_read_operator(char *data, int size, int pos); +FCPP_LINK Cpp_Read_Result cpp_read_pp_operator(char *data, int size, int pos); +FCPP_LINK Cpp_Read_Result cpp_read_alpha_numeric(char *data, int size, int pos, bool in_if_body); +inline Cpp_Read_Result cpp_read_alpha_numeric(char *data, int size, int pos) { return cpp_read_alpha_numeric(data, size, pos, 0); } +FCPP_LINK Cpp_Read_Result cpp_read_number(char *data, int size, int pos); +FCPP_LINK Cpp_Read_Result cpp_read_string_litteral(char *data, int size, int pos); +FCPP_LINK Cpp_Read_Result cpp_read_character_litteral(char *data, int size, int pos); +FCPP_LINK Cpp_Read_Result cpp_read_line_comment(char *data, int size, int pos); +FCPP_LINK Cpp_Read_Result cpp_read_block_comment(char *data, int size, int pos); +FCPP_LINK Cpp_Read_Result cpp_read_preprocessor(char *data, int size, int pos); +FCPP_LINK Cpp_Read_Result cpp_read_pp_include_file(char *data, int size, int pos); +FCPP_LINK Cpp_Read_Result cpp_read_pp_default_mode(char *data, int size, int pos, bool in_if_body); +inline Cpp_Read_Result cpp_read_pp_default_mode(char *data, int size, int pos) { return cpp_read_pp_default_mode(data, size, pos, 0); } + +FCPP_LINK Cpp_Token_Merge cpp_attempt_token_merge(Cpp_Token prev, Cpp_Token next); + +FCPP_LINK bool cpp_push_token_no_merge(Cpp_Token_Stack *stack, Cpp_Token token); +FCPP_LINK bool cpp_push_token_nonalloc(Cpp_Token_Stack *stack, Cpp_Token token); + +inline Cpp_Lex_Data cpp_lex_data_zero() { Cpp_Lex_Data data = {(Cpp_Preprocessor_State)0}; return(data); } + +FCPP_LINK Cpp_Read_Result cpp_lex_step(char *data, int size, Cpp_Lex_Data *lex); + +FCPP_LINK int cpp_lex_file_token_count(char *data, int size); +FCPP_LINK Cpp_Lex_Data cpp_lex_file_nonalloc(char *data, int size, Cpp_Token_Stack *stack, Cpp_Lex_Data lex_data); +inline Cpp_Lex_Data cpp_lex_file_nonalloc(char *data, int size, Cpp_Token_Stack *stack) { return cpp_lex_file_nonalloc(data, size, stack, cpp_lex_data_zero()); } + +FCPP_LINK Cpp_Get_Token_Result cpp_get_token(Cpp_Token_Stack *stack, int pos); + +FCPP_LINK int cpp_get_end_token(Cpp_Token_Stack *stack, int end); +FCPP_LINK void cpp_shift_token_starts(Cpp_Token_Stack *stack, int from_token, int amount); + +FCPP_LINK Cpp_Relex_State cpp_relex_nonalloc_start(char *data, int size, Cpp_Token_Stack *stack, int start, int end, int amount, int tolerance); +FCPP_LINK bool cpp_relex_nonalloc_main(Cpp_Relex_State state, Cpp_Token_Stack *stack); + +#ifndef FCPP_FORBID_MALLOC +FCPP_LINK Cpp_Token_Stack cpp_make_token_stack(int max); +FCPP_LINK void cpp_free_token_stack(Cpp_Token_Stack stack); +FCPP_LINK void cpp_resize_token_stack(Cpp_Token_Stack *stack, int new_max); + +FCPP_LINK void cpp_push_token(Cpp_Token_Stack *stack, Cpp_Token token); +FCPP_LINK void cpp_lex_file(char *data, int size, Cpp_Token_Stack *stack); +FCPP_LINK bool cpp_relex_file_limited(char *data, int size, Cpp_Token_Stack *stack, int start_i, int end_i, int amount, int extra_tolerance); +inline void cpp_relex_file(char *data, int size, Cpp_Token_Stack *stack, int start_i, int end_i, int amount) +{ cpp_relex_file_limited(data, size, stack, start_i, end_i, amount, -1); } +#endif + +#define FCPP_STRING_LIST(x) {x, FCPP_COUNT(x)} + +// TODO(allen): shift towards storing in a context +FCPP_GLOBAL String_And_Flag int_suf_strings[] = { + {"ull"}, {"ULL"}, + {"llu"}, {"LLU"}, + {"ll"}, {"LL"}, + {"l"}, {"L"}, + {"u"}, {"U"} +}; + +FCPP_GLOBAL String_List int_sufs = FCPP_STRING_LIST(int_suf_strings); + +FCPP_GLOBAL String_And_Flag float_suf_strings[] = { + {"f"}, {"F"}, + {"l"}, {"L"} +}; +FCPP_GLOBAL String_List float_sufs = FCPP_STRING_LIST(float_suf_strings); + +FCPP_GLOBAL String_And_Flag bool_lit_strings[] = { + {"true"}, {"false"} +}; +FCPP_GLOBAL String_List bool_lits = FCPP_STRING_LIST(bool_lit_strings); + +FCPP_GLOBAL String_And_Flag keyword_strings[] = { + {"and", CPP_TOKEN_AND}, + {"and_eq", CPP_TOKEN_ANDEQ}, + {"bitand", CPP_TOKEN_BIT_AND}, + {"bitor", CPP_TOKEN_BIT_OR}, + {"or", CPP_TOKEN_OR}, + {"or_eq", CPP_TOKEN_OREQ}, + {"sizeof", CPP_TOKEN_SIZEOF}, + {"alignof", CPP_TOKEN_ALIGNOF}, + {"decltype", CPP_TOKEN_DECLTYPE}, + {"throw", CPP_TOKEN_THROW}, + {"new", CPP_TOKEN_NEW}, + {"delete", CPP_TOKEN_DELETE}, + {"xor", CPP_TOKEN_BIT_XOR}, + {"xor_eq", CPP_TOKEN_XOREQ}, + {"not", CPP_TOKEN_NOT}, + {"not_eq", CPP_TOKEN_NOTEQ}, + {"typeid", CPP_TOKEN_TYPEID}, + {"compl", CPP_TOKEN_BIT_NOT}, + + {"void", CPP_TOKEN_KEY_TYPE}, + {"bool", CPP_TOKEN_KEY_TYPE}, + {"char", CPP_TOKEN_KEY_TYPE}, + {"int", CPP_TOKEN_KEY_TYPE}, + {"float", CPP_TOKEN_KEY_TYPE}, + {"double", CPP_TOKEN_KEY_TYPE}, + + {"long", CPP_TOKEN_KEY_MODIFIER}, + {"short", CPP_TOKEN_KEY_MODIFIER}, + {"unsigned", CPP_TOKEN_KEY_MODIFIER}, + + {"const", CPP_TOKEN_KEY_QUALIFIER}, + {"volatile", CPP_TOKEN_KEY_QUALIFIER}, + + {"asm", CPP_TOKEN_KEY_CONTROL_FLOW}, + {"break", CPP_TOKEN_KEY_CONTROL_FLOW}, + {"case", CPP_TOKEN_KEY_CONTROL_FLOW}, + {"catch", CPP_TOKEN_KEY_CONTROL_FLOW}, + {"continue", CPP_TOKEN_KEY_CONTROL_FLOW}, + {"default", CPP_TOKEN_KEY_CONTROL_FLOW}, + {"do", CPP_TOKEN_KEY_CONTROL_FLOW}, + {"else", CPP_TOKEN_KEY_CONTROL_FLOW}, + {"for", CPP_TOKEN_KEY_CONTROL_FLOW}, + {"goto", CPP_TOKEN_KEY_CONTROL_FLOW}, + {"if", CPP_TOKEN_KEY_CONTROL_FLOW}, + {"return", CPP_TOKEN_KEY_CONTROL_FLOW}, + {"switch", CPP_TOKEN_KEY_CONTROL_FLOW}, + {"try", CPP_TOKEN_KEY_CONTROL_FLOW}, + {"while", CPP_TOKEN_KEY_CONTROL_FLOW}, + {"static_assert", CPP_TOKEN_KEY_CONTROL_FLOW}, + + {"const_cast", CPP_TOKEN_KEY_CAST}, + {"dynamic_cast", CPP_TOKEN_KEY_CAST}, + {"reinterpret_cast", CPP_TOKEN_KEY_CAST}, + {"static_cast", CPP_TOKEN_KEY_CAST}, + + {"class", CPP_TOKEN_KEY_TYPE_DECLARATION}, + {"enum", CPP_TOKEN_KEY_TYPE_DECLARATION}, + {"struct", CPP_TOKEN_KEY_TYPE_DECLARATION}, + {"typedef", CPP_TOKEN_KEY_TYPE_DECLARATION}, + {"union", CPP_TOKEN_KEY_TYPE_DECLARATION}, + {"template", CPP_TOKEN_KEY_TYPE_DECLARATION}, + {"typename", CPP_TOKEN_KEY_TYPE_DECLARATION}, + + {"friend", CPP_TOKEN_KEY_ACCESS}, + {"namespace", CPP_TOKEN_KEY_ACCESS}, + {"private", CPP_TOKEN_KEY_ACCESS}, + {"protected", CPP_TOKEN_KEY_ACCESS}, + {"public", CPP_TOKEN_KEY_ACCESS}, + {"using", CPP_TOKEN_KEY_ACCESS}, + + {"extern", CPP_TOKEN_KEY_LINKAGE}, + {"export", CPP_TOKEN_KEY_LINKAGE}, + {"inline", CPP_TOKEN_KEY_LINKAGE}, + {"static", CPP_TOKEN_KEY_LINKAGE}, + {"virtual", CPP_TOKEN_KEY_LINKAGE}, + + {"alignas", CPP_TOKEN_KEY_OTHER}, + {"explicit", CPP_TOKEN_KEY_OTHER}, + {"noexcept", CPP_TOKEN_KEY_OTHER}, + {"nullptr", CPP_TOKEN_KEY_OTHER}, + {"operator", CPP_TOKEN_KEY_OTHER}, + {"register", CPP_TOKEN_KEY_OTHER}, + {"this", CPP_TOKEN_KEY_OTHER}, + {"thread_local", CPP_TOKEN_KEY_OTHER}, +}; +FCPP_GLOBAL String_List keywords = FCPP_STRING_LIST(keyword_strings); + +FCPP_GLOBAL String_And_Flag op_strings[] = { + {"...", CPP_TOKEN_ELLIPSIS}, + {"<<=", CPP_TOKEN_LSHIFTEQ}, + {">>=", CPP_TOKEN_RSHIFTEQ}, + {"->*", CPP_TOKEN_PTRARROW}, + {"<<", CPP_TOKEN_LSHIFT}, + {">>", CPP_TOKEN_RSHIFT}, + {"&&", CPP_TOKEN_AND}, + {"||", CPP_TOKEN_OR}, + {"->", CPP_TOKEN_ARROW}, + {"++", CPP_TOKEN_INCREMENT}, + {"--", CPP_TOKEN_DECREMENT}, + {"::", CPP_TOKEN_SCOPE}, + {"+=", CPP_TOKEN_ADDEQ}, + {"-=", CPP_TOKEN_SUBEQ}, + {"*=", CPP_TOKEN_MULEQ}, + {"/=", CPP_TOKEN_DIVEQ}, + {"%=", CPP_TOKEN_MODEQ}, + {"&=", CPP_TOKEN_ANDEQ}, + {"|=", CPP_TOKEN_OREQ}, + {"^=", CPP_TOKEN_XOREQ}, + {"==", CPP_TOKEN_EQEQ}, + {">=", CPP_TOKEN_GRTREQ}, + {"<=", CPP_TOKEN_LESSEQ}, + {"!=", CPP_TOKEN_NOTEQ}, + {".*", CPP_TOKEN_PTRDOT}, + {"{", CPP_TOKEN_BRACE_OPEN}, + {"}", CPP_TOKEN_BRACE_CLOSE}, + {"[", CPP_TOKEN_BRACKET_OPEN}, + {"]", CPP_TOKEN_BRACKET_CLOSE}, + {"(", CPP_TOKEN_PARENTHESE_OPEN}, + {")", CPP_TOKEN_PARENTHESE_CLOSE}, + {"<", CPP_TOKEN_LESS}, + {">", CPP_TOKEN_GRTR}, + {"+", CPP_TOKEN_PLUS}, + {"-", CPP_TOKEN_MINUS}, + {"!", CPP_TOKEN_NOT}, + {"~", CPP_TOKEN_TILDE}, + {"*", CPP_TOKEN_STAR}, + {"&", CPP_TOKEN_AMPERSAND}, + {"|", CPP_TOKEN_BIT_OR}, + {"^", CPP_TOKEN_BIT_XOR}, + {"=", CPP_TOKEN_EQ}, + {",", CPP_TOKEN_COMMA}, + {":", CPP_TOKEN_COLON}, + {";", CPP_TOKEN_SEMICOLON}, + {"/", CPP_TOKEN_DIV}, + {"?", CPP_TOKEN_TERNARY_QMARK}, + {"%", CPP_TOKEN_MOD}, + {".", CPP_TOKEN_DOT}, +}; +FCPP_GLOBAL String_List ops = FCPP_STRING_LIST(op_strings); + +FCPP_GLOBAL String_And_Flag pp_op_strings[] = { + {"##", CPP_PP_CONCAT}, + {"#", CPP_PP_STRINGIFY}, +}; +FCPP_GLOBAL String_List pp_ops = FCPP_STRING_LIST(pp_op_strings); + +FCPP_GLOBAL String_And_Flag preprop_strings[] = { + {"include", CPP_PP_INCLUDE}, + {"INCLUDE", CPP_PP_INCLUDE}, + {"ifndef", CPP_PP_IFNDEF}, + {"IFNDEF", CPP_PP_IFNDEF}, + {"define", CPP_PP_DEFINE}, + {"DEFINE", CPP_PP_DEFINE}, + {"import", CPP_PP_IMPORT}, + {"IMPORT", CPP_PP_IMPORT}, + {"pragma", CPP_PP_PRAGMA}, + {"PRAGMA", CPP_PP_PRAGMA}, + {"undef", CPP_PP_UNDEF}, + {"UNDEF", CPP_PP_UNDEF}, + {"endif", CPP_PP_ENDIF}, + {"ENDIF", CPP_PP_ENDIF}, + {"error", CPP_PP_ERROR}, + {"ERROR", CPP_PP_ERROR}, + {"ifdef", CPP_PP_IFDEF}, + {"IFDEF", CPP_PP_IFDEF}, + {"using", CPP_PP_USING}, + {"USING", CPP_PP_USING}, + {"else", CPP_PP_ELSE}, + {"ELSE", CPP_PP_ELSE}, + {"elif", CPP_PP_ELIF}, + {"ELIF", CPP_PP_ELIF}, + {"line", CPP_PP_LINE}, + {"LINE", CPP_PP_LINE}, + {"if", CPP_PP_IF}, + {"IF", CPP_PP_IF}, +}; +FCPP_GLOBAL String_List preprops = FCPP_STRING_LIST(preprop_strings); + +#undef FCPP_STRING_LIST + +#endif // #ifndef FCPP_CPP_LEXER + +#ifdef FCPP_LEXER_IMPLEMENTATION + +#define _Assert FCPP_ASSERT +#define _TentativeAssert FCPP_ASSERT + +FCPP_LINK Sub_Match_List_Result +sub_match_list(char *data, int size, int pos, String_List list, int sub_size){ + Sub_Match_List_Result result; + String str_main; + char *str_check; + int i,l; + + result.index = -1; + result.new_pos = pos; + str_main = make_string(data + pos, size - pos); + if (sub_size > 0){ + str_main = substr(str_main, 0, sub_size); + for (i = 0; i < list.count; ++i){ + str_check = list.data[i].str; + if (match_sc(str_main, str_check)){ + result.index = i; + result.new_pos = pos + sub_size; + break; + } + } + } + else{ + for (i = 0; i < list.count; ++i){ + str_check = list.data[i].str; + if (match_part_scl(str_main, str_check, &l)){ + result.index = i; + result.new_pos = pos + l; + break; + } + } + } + return result; +} + +FCPP_LINK Seek_Result +seek_unescaped_eol(char *data, int size, int pos){ + Seek_Result result = {}; + ++pos; + while (pos < size){ + if (data[pos] == '\\'){ + if (pos + 1 < size && + data[pos+1] == '\n'){ + result.new_line = 1; + ++pos; + } + else if (pos + 1 < size && + data[pos+1] == '\r' && + pos + 2 < size && + data[pos+2] == '\n'){ + result.new_line = 1; + pos += 2; + } + } + else if (data[pos] == '\n'){ + break; + } + ++pos; + } + ++pos; + + result.pos = pos; + return result; +} + +FCPP_LINK Seek_Result +seek_unescaped_delim(char *data, int size, int pos, char delim){ + Seek_Result result = {}; + bool escape = 0; + ++pos; + while (pos < size){ + if (data[pos] == '\n'){ + result.new_line = 1; + } + if (escape){ + escape = 0; + } + else{ + if (data[pos] == '\\'){ + escape = 1; + } + else if (data[pos] == delim){ + break; + } + } + ++pos; + } + ++pos; + + result.pos = pos; + return result; +} + +FCPP_LINK Seek_Result +seek_block_comment_end(char *data, int size, int pos){ + Seek_Result result = {}; + pos += 2; + while (pos < size){ + if (data[pos] == '*' && + pos + 1 < size && + data[pos+1] == '/'){ + break; + } + if (data[pos] == '\n'){ + result.new_line = 1; + } + ++pos; + } + pos += 2; + result.pos = pos; + return result; +} + +FCPP_LINK Cpp_Read_Result +cpp_read_whitespace(char *data, int size, int pos){ + Cpp_Read_Result result = {}; + + while (pos < size && char_is_whitespace(data[pos])){ + if (data[pos] == '\n'){ + result.newline = 1; + } + ++pos; + } + + result.pos = pos; + + return result; +} + +FCPP_LINK Cpp_Read_Result +cpp_read_junk_line(char *data, int size, int pos){ + Cpp_Read_Result result = {}; + result.token.start = pos; + result.token.type = CPP_TOKEN_JUNK; + + bool comment_end = 0; + while (pos < size && data[pos] != '\n'){ + if (data[pos] == '/' && pos + 1 < size){ + if (data[pos + 1] == '/' || + data[pos + 1] == '*'){ + comment_end = 1; + break; + } + } + ++pos; + } + + if (comment_end){ + result.pos = pos; + result.token.size = pos - result.token.start; + } + else{ + while (pos > 0 && data[pos - 1] == '\r'){ + --pos; + } + if (pos > 0 && data[pos - 1] == '\\'){ + --pos; + } + result.pos = pos; + result.token.size = pos - result.token.start; + } + + return result; +} + +FCPP_LINK Cpp_Read_Result +cpp_read_operator(char *data, int size, int pos){ + Cpp_Read_Result result = {}; + result.pos = pos; + result.token.start = pos; + + Sub_Match_List_Result match; + match = sub_match_list(data, size, result.token.start, ops, -1); + + if (match.index != -1){ + result.pos = match.new_pos; + result.token.size = result.pos - result.token.start; + result.token.type = (Cpp_Token_Type)ops.data[match.index].flags; + result.token.flags |= CPP_TFLAG_IS_OPERATOR; + } + else{ + result.token.size = 1; + result.token.type = CPP_TOKEN_JUNK; + result.pos = pos + 1; + } + + return result; +} + +FCPP_LINK Cpp_Read_Result +cpp_read_pp_operator(char *data, int size, int pos){ + Cpp_Read_Result result = {}; + result.pos = pos; + result.token.start = pos; + + Sub_Match_List_Result match; + match = sub_match_list(data, size, result.token.start, pp_ops, -1); + + _Assert(match.index != -1); + result.pos = match.new_pos; + result.token.size = result.pos - result.token.start; + result.token.type = (Cpp_Token_Type)pp_ops.data[match.index].flags; + + return result; +} + +FCPP_LINK Cpp_Read_Result +cpp_read_alpha_numeric(char *data, int size, int pos, bool in_if_body){ + Cpp_Read_Result result = {}; + result.pos = pos; + result.token.start = pos; + + while (result.pos < size && + char_is_alpha_numeric(data[result.pos])){ + ++result.pos; + } + + result.token.size = result.pos - result.token.start; + + // TODO(allen): do better + if (in_if_body){ + String word; + word.size = result.token.size; + word.str = data + result.token.start; + if (match_ss(word, make_lit_string("defined"))){ + result.token.type = CPP_TOKEN_DEFINED; + result.token.flags |= CPP_TFLAG_IS_OPERATOR; + result.token.flags |= CPP_TFLAG_IS_KEYWORD; + } + } + + if (result.token.type == CPP_TOKEN_JUNK){ + Sub_Match_List_Result match; + match = sub_match_list(data, size, result.token.start, bool_lits, result.token.size); + + if (match.index != -1){ + result.token.type = CPP_TOKEN_BOOLEAN_CONSTANT; + result.token.flags |= CPP_TFLAG_IS_KEYWORD; + } + else{ + match = sub_match_list(data, size, result.token.start, keywords, result.token.size); + + if (match.index != -1){ + String_And_Flag data = keywords.data[match.index]; + result.token.type = (Cpp_Token_Type)data.flags; + result.token.flags |= CPP_TFLAG_IS_KEYWORD; + } + else{ + result.token.type = CPP_TOKEN_IDENTIFIER; + } + } + } + + return result; +} + +FCPP_LINK Cpp_Read_Result +cpp_read_number(char *data, int size, int pos){ + Cpp_Read_Result result = {}; + result.pos = pos; + result.token.start = pos; + + bool is_float = 0; + bool is_integer = 0; + bool is_oct = 0; + bool is_hex = 0; + bool is_zero = 0; + + if (data[pos] == '0'){ + if (pos+1 < size){ + char next = data[pos+1]; + if (next == 'x'){ + is_hex = 1; + is_integer = 1; + } + else if (next == '.'){ + is_float = 1; + ++result.pos; + } + else if (next >= '0' && next <= '9'){ + is_oct = 1; + is_integer = 1; + } + else{ + is_zero = 1; + is_integer = 1; + } + } + else{ + is_zero = 1; + is_integer = 1; + } + } + else if (data[pos] == '.'){ + is_float = 1; + } + + if (is_zero){ + ++result.pos; + } + else if (is_hex){ + ++result.pos; + char character; + do{ + ++result.pos; + if (result.pos >= size){ + break; + } + character = data[result.pos]; + } while(char_is_hex(character)); + } + else if (is_oct){ + char character; + do{ + ++result.pos; + if (result.pos >= size){ + break; + } + character = data[result.pos]; + }while(char_is_numeric(character)); + } + else{ + if (!is_float){ + is_integer = 1; + while (1){ + ++result.pos; + + if (result.pos >= size){ + break; + } + bool is_good = 0; + char character = data[result.pos]; + if (character >= '0' && character <= '9'){ + is_good = 1; + } + else if (character == '.'){ + is_integer = 0; + is_float = 1; + } + if (!is_good){ + break; + } + } + } + + if (is_float){ + bool e_mode = 0; + bool e_minus = 0; + bool is_good = 0; + char character; + + while (1){ + ++result.pos; + if (result.pos >= size){ + break; + } + is_good = 0; + character = data[result.pos]; + if (character >= '0' && character <= '9'){ + is_good = 1; + } + else{ + if (character == 'e' && !e_mode){ + e_mode = 1; + is_good = 1; + } + else if (character == '-' && e_mode && !e_minus){ + e_minus = 1; + is_good = 1; + } + } + if (!is_good){ + break; + } + } + } + } + + if (is_integer){ + Sub_Match_List_Result match = + sub_match_list(data, size, result.pos, int_sufs, -1); + if (match.index != -1){ + result.pos = match.new_pos; + } + result.token.type = CPP_TOKEN_INTEGER_CONSTANT; + result.token.size = result.pos - result.token.start; + } + else if (is_float){ + Sub_Match_List_Result match = + sub_match_list(data, size, result.pos, float_sufs, -1); + if (match.index != -1){ + result.pos = match.new_pos; + } + result.token.type = CPP_TOKEN_FLOATING_CONSTANT; + result.token.size = result.pos - result.token.start; + } + else{ + _Assert(!"This shouldn't happen!"); + } + + return result; +} + +FCPP_LINK Cpp_Read_Result +cpp_read_string_litteral(char *data, int size, int pos){ + Cpp_Read_Result result = {}; + result.token.start = pos; + + _Assert(data[pos] == '"'); + Seek_Result seek = seek_unescaped_delim(data, size, pos, '"'); + pos = seek.pos; + if (seek.new_line){ + result.token.flags |= CPP_TFLAG_MULTILINE; + } + + result.token.size = pos - result.token.start; + result.token.type = CPP_TOKEN_STRING_CONSTANT; + result.pos = pos; + + return result; +} + +FCPP_LINK Cpp_Read_Result +cpp_read_character_litteral(char *data, int size, int pos){ + Cpp_Read_Result result = {}; + result.token.start = pos; + + _Assert(data[pos] == '\''); + Seek_Result seek = seek_unescaped_delim(data, size, pos, '\''); + pos = seek.pos; + if (seek.new_line){ + result.token.flags |= CPP_TFLAG_MULTILINE; + } + + result.token.size = pos - result.token.start; + result.token.type = CPP_TOKEN_CHARACTER_CONSTANT; + result.pos = pos; + + return result; +} + +FCPP_LINK Cpp_Read_Result +cpp_read_line_comment(char *data, int size, int pos){ + Cpp_Read_Result result = {}; + result.token.start = pos; + + _Assert(data[pos] == '/' && data[pos + 1] == '/'); + + pos += 2; + while (pos < size){ + if (data[pos] == '\n'){ + break; + } + if (data[pos] == '\\'){ + if (pos + 1 < size && + data[pos + 1] == '\n'){ + ++pos; + } + else if (pos + 2 < size && + data[pos + 1] == '\r' && + data[pos + 2] == '\n'){ + pos += 2; + } + } + ++pos; + } + if (pos > 0 && data[pos-1] == '\r'){ + --pos; + } + result.token.size = pos - result.token.start; + result.token.type = CPP_TOKEN_COMMENT; + result.pos = pos; + return result; +} + +FCPP_LINK Cpp_Read_Result +cpp_read_block_comment(char *data, int size, int pos){ + Cpp_Read_Result result = {}; + result.token.start = pos; + + _Assert(data[pos] == '/' && data[pos + 1] == '*'); + pos += 2; + while (pos < size){ + if (data[pos] == '*' && + pos + 1 < size && + data[pos+1] == '/'){ + pos += 2; + break; + } + ++pos; + } + result.token.size = pos - result.token.start; + result.token.type = CPP_TOKEN_COMMENT; + result.pos = pos; + return result; +} + +FCPP_LINK Cpp_Read_Result +cpp_read_preprocessor(char *data, int size, int pos){ + _Assert(data[pos] == '#'); + Cpp_Read_Result result = {}; + result.token.start = pos; + result.token.type = CPP_PP_UNKNOWN; + result.token.flags |= CPP_TFLAG_PP_DIRECTIVE; + + ++pos; + while (pos < size && + (data[pos] == ' ' || + data[pos] == '\t')){ + ++pos; + } + + Sub_Match_List_Result match + = sub_match_list(data, size, pos, preprops, -1); + + if (match.index != -1){ + result.token.size = match.new_pos - result.token.start; + result.token.type = (Cpp_Token_Type)preprops.data[match.index].flags; + result.pos = match.new_pos; + } + else{ + while (pos < size && !char_is_whitespace(data[pos])){ + ++pos; + } + result.token.size = pos - result.token.start; + result.pos = pos; + } + + return result; +} + +FCPP_LINK Cpp_Read_Result +cpp_read_pp_include_file(char *data, int size, int pos){ + char start = data[pos]; + _Assert(start == '<' || start == '"'); + + Cpp_Read_Result result = {}; + result.token.start = pos; + result.token.type = CPP_TOKEN_INCLUDE_FILE; + result.token.flags |= CPP_TFLAG_PP_BODY; + + char end; + if (start == '<'){ + end = '>'; + } + else{ + end = '"'; + } + + ++pos; + while (pos < size && data[pos] != end){ + if (data[pos] == '\n'){ + result.token.type = CPP_TOKEN_JUNK; + result.token.flags |= CPP_TFLAG_BAD_ENDING; + break; + } + if (data[pos] == '\\'){ + if (pos + 1 < size && data[pos + 1] == '\n'){ + ++pos; + result.token.flags |= CPP_TFLAG_MULTILINE; + } + else if (pos + 2 < size && + data[pos + 1] == '\r' && + data[pos + 2] == '\n'){ + pos += 2; + result.token.flags |= CPP_TFLAG_MULTILINE; + } + } + ++pos; + } + + if (result.token.type != CPP_TOKEN_JUNK){ + if (pos < size){ + ++pos; + } + } + + result.token.size = pos - result.token.start; + result.pos = pos; + + return result; +} + +FCPP_LINK Cpp_Read_Result +cpp_read_pp_default_mode(char *data, int size, int pos, bool in_if_body){ + char current = data[pos]; + Cpp_Read_Result result; + if (char_is_numeric(current)){ + result = cpp_read_number(data, size, pos); + } + else if (char_is_alpha(current)){ + result = cpp_read_alpha_numeric(data, size, pos, in_if_body); + } + else if (current == '.'){ + if (pos + 1 < size){ + char next = data[pos + 1]; + if (char_is_numeric(next)){ + result = cpp_read_number(data, size, pos); + } + else{ + result = cpp_read_operator(data, size, pos); + } + } + else{ + result = cpp_read_operator(data, size, pos); + } + } + + else if (current == '/'){ + if (pos + 1 < size){ + char next = data[pos + 1]; + if (next == '/'){ + result = cpp_read_line_comment(data, size, pos); + } + else if (next == '*'){ + result = cpp_read_block_comment(data, size, pos); + } + else{ + result = cpp_read_operator(data, size, pos); + } + } + else{ + result = cpp_read_operator(data, size, pos); + } + } + else if (current == '"'){ + result = cpp_read_string_litteral(data, size, pos); + } + else if (current == '\''){ + result = cpp_read_character_litteral(data, size, pos); + } + else{ + result = cpp_read_operator(data, size, pos); + } + + return result; +} + +FCPP_LINK Cpp_Token_Merge +cpp_attempt_token_merge(Cpp_Token prev_token, Cpp_Token next_token){ + Cpp_Token_Merge result = {}; + if (next_token.type == CPP_TOKEN_COMMENT && prev_token.type == CPP_TOKEN_COMMENT && + next_token.flags == prev_token.flags && next_token.state_flags == prev_token.state_flags){ + result.did_merge = 1; + prev_token.size = next_token.start + next_token.size - prev_token.start; + result.new_token = prev_token; + } + else if (next_token.type == CPP_TOKEN_JUNK && prev_token.type == CPP_TOKEN_JUNK && + next_token.flags == prev_token.flags && next_token.state_flags == prev_token.state_flags){ + result.did_merge = 1; + prev_token.size = next_token.start + next_token.size - prev_token.start; + result.new_token = prev_token; + } + return result; +} + +FCPP_LINK bool +cpp_push_token_no_merge(Cpp_Token_Stack *token_stack, Cpp_Token token){ + if (token_stack->count >= token_stack->max_count){ + return 0; + } + + token_stack->tokens[token_stack->count++] = token; + return 1; +} + +FCPP_LINK bool +cpp_push_token_nonalloc(Cpp_Token_Stack *token_stack, Cpp_Token token){ + Cpp_Token_Merge merge = {}; + + if (token_stack->count > 0){ + Cpp_Token prev_token = token_stack->tokens[token_stack->count - 1]; + merge = cpp_attempt_token_merge(prev_token, token); + if (merge.did_merge){ + token_stack->tokens[token_stack->count - 1] = merge.new_token; + } + } + + if (!merge.did_merge){ + if (token_stack->count >= token_stack->max_count){ + return 0; + } + + token_stack->tokens[token_stack->count++] = token; + } + + return 1; +} + +FCPP_LINK Cpp_Read_Result +cpp_lex_step(char *data, int size, Cpp_Lex_Data *lex_data){ + Cpp_Lex_Data lex = *lex_data; + Cpp_Read_Result result = {}; + bool has_result = 1; + + fcpp_u16 state_flags = cpp_token_set_pp_state(0, lex.pp_state); + + char current = data[lex.pos]; + if (char_is_whitespace(current)){ + result = cpp_read_whitespace(data, size, lex.pos); + lex.pos = result.pos; + if (result.newline && lex.pp_state != CPP_LEX_PP_DEFAULT){ + lex.pp_state = CPP_LEX_PP_DEFAULT; + } + has_result = 0; + } + + else{ + if (lex.pp_state == CPP_LEX_PP_DEFAULT){ + // TODO(allen): Not first hard of the line? Then it's junk. + if (current == '#'){ + result = cpp_read_preprocessor(data, size, lex.pos); + lex.pos = result.pos; + switch (result.token.type){ + case CPP_PP_INCLUDE: + case CPP_PP_IMPORT: + case CPP_PP_USING: + lex.pp_state = CPP_LEX_PP_INCLUDE; + break; + case CPP_PP_DEFINE: + lex.pp_state = CPP_LEX_PP_MACRO_IDENTIFIER; + break; + case CPP_PP_UNDEF: + case CPP_PP_IFDEF: + case CPP_PP_IFNDEF: + lex.pp_state = CPP_LEX_PP_IDENTIFIER; + break; + case CPP_PP_IF: + case CPP_PP_ELIF: + lex.pp_state = CPP_LEX_PP_BODY_IF; + break; + case CPP_PP_PRAGMA: + lex.pp_state = CPP_LEX_PP_BODY; + break; + case CPP_PP_LINE: + lex.pp_state = CPP_LEX_PP_NUMBER; + break; + case CPP_PP_ERROR: + lex.pp_state = CPP_LEX_PP_ERROR; + break; + + case CPP_PP_UNKNOWN: + case CPP_PP_ELSE: + case CPP_PP_ENDIF: + lex.pp_state = CPP_LEX_PP_JUNK; + break; + } + } + else{ + result = cpp_read_pp_default_mode(data, size, lex.pos); + lex.pos = result.pos; + } + } + + else{ + if (current == '\\'){ + fcpp_i32 seek = lex.pos; + ++seek; + while (seek < size && data[seek] == '\r'){ + ++seek; + } + if ((seek < size && data[seek] == '\n') || seek >= size){ + lex.pos = seek + 1; + has_result = 0; + } + else{ + lex.pp_state = CPP_LEX_PP_JUNK; + result.token.type = CPP_TOKEN_JUNK; + result.token.start = lex.pos; + result.token.size = 1; + result.token.flags |= CPP_TFLAG_PP_BODY; + lex.pos = seek; + } + } + + else{ + switch (lex.pp_state){ + case CPP_LEX_PP_IDENTIFIER: + if (!char_is_alpha_numeric(current)){ + has_result = 0; + lex.pp_state = CPP_LEX_PP_JUNK; + } + else{ + result = cpp_read_alpha_numeric(data, size, lex.pos); + result.token.flags |= CPP_TFLAG_PP_BODY; + lex.pos = result.pos; + lex.pp_state = CPP_LEX_PP_JUNK; + } + break; + + case CPP_LEX_PP_MACRO_IDENTIFIER: + if (!char_is_alpha_numeric(current)){ + has_result = 0; + lex.pp_state = CPP_LEX_PP_JUNK; + } + else{ + result = cpp_read_alpha_numeric(data, size, lex.pos); + result.token.flags |= CPP_TFLAG_PP_BODY; + lex.pos = result.pos; + lex.pp_state = CPP_LEX_PP_BODY; + } + break; + + case CPP_LEX_PP_INCLUDE: + if (current != '"' && current != '<'){ + has_result = 0; + lex.pp_state = CPP_LEX_PP_JUNK; + } + else{ + result = cpp_read_pp_include_file(data, size, lex.pos); + lex.pos = result.pos; + lex.pp_state = CPP_LEX_PP_JUNK; + } + break; + + case CPP_LEX_PP_BODY: + if (current == '#'){ + result = cpp_read_pp_operator(data, size, lex.pos); + } + else{ + result = cpp_read_pp_default_mode(data, size, lex.pos); + } + lex.pos = result.pos; + result.token.flags |= CPP_TFLAG_PP_BODY; + break; + + case CPP_LEX_PP_BODY_IF: + if (current == '#'){ + result = cpp_read_pp_operator(data, size, lex.pos); + } + else{ + result = cpp_read_pp_default_mode(data, size, lex.pos, 1); + } + lex.pos = result.pos; + result.token.flags |= CPP_TFLAG_PP_BODY; + break; + + case CPP_LEX_PP_NUMBER: + if (!char_is_numeric(current)){ + has_result = 0; + lex.pp_state = CPP_LEX_PP_JUNK; + } + else{ + result = cpp_read_number(data, size, lex.pos); + lex.pos = result.pos; + result.token.flags |= CPP_TFLAG_PP_BODY; + lex.pp_state = CPP_LEX_PP_INCLUDE; + } + break; + + case CPP_LEX_PP_ERROR: + result = cpp_read_junk_line(data, size, lex.pos); + lex.pos = result.pos; + result.token.type = CPP_TOKEN_ERROR_MESSAGE; + result.token.flags |= CPP_TFLAG_PP_BODY; + break; + + default: + { + bool took_comment = 0; + if (current == '/' && lex.pos + 1 < size){ + if (data[lex.pos + 1] == '/'){ + result = cpp_read_line_comment(data, size, lex.pos); + lex.pp_state = CPP_LEX_PP_DEFAULT; + lex.pos = result.pos; + took_comment = 1; + }else if (data[lex.pos + 1] == '*'){ + result = cpp_read_block_comment(data, size, lex.pos); + lex.pos = result.pos; + took_comment = 1; + } + } + + if (!took_comment){ + result = cpp_read_junk_line(data, size, lex.pos); + lex.pos = result.pos; + result.token.flags |= CPP_TFLAG_PP_BODY; + } + }break; + + } + } + } + } + + result.token.state_flags = state_flags; + result.has_result = has_result; + + *lex_data = lex; + return result; +} + +FCPP_LINK int +cpp_lex_file_token_count(char *data, int size){ + int count = 0; + Cpp_Lex_Data lex = {}; + Cpp_Token token = {}; + while (lex.pos < size){ + Cpp_Read_Result step_result = cpp_lex_step(data, size, &lex); + + if (step_result.has_result){ + if (count > 0){ + Cpp_Token_Merge merge = cpp_attempt_token_merge(token, step_result.token); + if (merge.did_merge){ + token = merge.new_token; + } + else{ + token = step_result.token; + ++count; + } + } + else{ + token = step_result.token; + ++count; + } + } + } + return count; +} + +FCPP_LINK Cpp_Lex_Data +cpp_lex_file_nonalloc(char *data, int size, Cpp_Token_Stack *token_stack_out, Cpp_Lex_Data lex_data){ + while (lex_data.pos < size){ + Cpp_Lex_Data prev_lex = lex_data; + Cpp_Read_Result step_result = cpp_lex_step(data, size, &lex_data); + + if (step_result.has_result){ + if (!cpp_push_token_nonalloc(token_stack_out, step_result.token)){ + lex_data = prev_lex; + return lex_data; + } + } + } + + lex_data.complete = 1; + return lex_data; +} + +FCPP_LINK Cpp_Get_Token_Result +cpp_get_token(Cpp_Token_Stack *token_stack, int pos){ + int first, last; + first = 0; + last = token_stack->count; + + Cpp_Get_Token_Result result = {}; + if (token_stack->count > 0){ + for (;;){ + result.token_index = (first + last)/2; + + int this_start = token_stack->tokens[result.token_index].start; + int next_start; + if (result.token_index + 1 < token_stack->count){ + next_start = token_stack->tokens[result.token_index+1].start; + } + else{ + next_start = this_start + token_stack->tokens[result.token_index].size; + } + if (this_start <= pos && pos < next_start){ + break; + } + else if (pos < this_start){ + last = result.token_index; + } + else{ + first = result.token_index + 1; + } + if (first == last){ + result.token_index = first; + break; + } + } + + if (result.token_index == token_stack->count){ + --result.token_index; + result.in_whitespace = 1; + } + else{ + Cpp_Token *token = token_stack->tokens + result.token_index; + if (token->start + token->size <= pos){ + result.in_whitespace = 1; + } + } + } + else{ + result.token_index = -1; + result.in_whitespace = 1; + } + + return result; +} + +FCPP_LINK void +cpp_shift_token_starts(Cpp_Token_Stack *stack, int from_token_i, int amount){ + int count = stack->count; + Cpp_Token *token = stack->tokens + from_token_i; + for (int i = from_token_i; i < count; ++i, ++token){ + token->start += amount; + } +} + +FCPP_LINK Cpp_Relex_State +cpp_relex_nonalloc_start(char *data, int size, Cpp_Token_Stack *stack, + int start, int end, int amount, int tolerance){ + Cpp_Relex_State state; + state.data = data; + state.size = size; + state.stack = stack; + state.start = start; + state.end = end; + state.amount = amount; + state.tolerance = tolerance; + + Cpp_Get_Token_Result result = cpp_get_token(stack, start); + if (result.token_index <= 0){ + state.start_token_i = 0; + } + else{ + state.start_token_i = result.token_index-1; + } + + result = cpp_get_token(stack, end); + if (result.token_index < 0){ + result.token_index = 0; + } + else if (end > stack->tokens[result.token_index].start){ + ++result.token_index; + } + state.end_token_i = result.token_index; + + state.relex_start = stack->tokens[state.start_token_i].start; + if (start < state.relex_start){ + state.relex_start = start; + } + + state.space_request = state.end_token_i - state.start_token_i + tolerance + 1; + + return(state); +} + +inline Cpp_Token +cpp__get_token(Cpp_Token_Stack *stack, Cpp_Token *tokens, int size, int index){ + Cpp_Token result; + if (index < stack->count){ + result = tokens[index]; + } + else{ + result.start = size; + result.size = 0; + result.type = CPP_TOKEN_EOF; + result.flags = 0; + result.state_flags = 0; + } + return result; +} + +FCPP_LINK bool +cpp_relex_nonalloc_main(Cpp_Relex_State *state, Cpp_Token_Stack *relex_stack, int *relex_end){ + Cpp_Token_Stack *stack = state->stack; + Cpp_Token *tokens = stack->tokens; + + cpp_shift_token_starts(stack, state->end_token_i, state->amount); + + Cpp_Lex_Data lex = {}; + lex.pp_state = cpp_token_get_pp_state(tokens[state->start_token_i].state_flags); + lex.pos = state->relex_start; + + int relex_end_i = state->end_token_i; + Cpp_Token match_token = cpp__get_token(stack, tokens, state->size, relex_end_i); + Cpp_Token end_token = match_token; + bool went_too_far = 0; + + for (;;){ + Cpp_Read_Result read = cpp_lex_step(state->data, state->size, &lex); + if (read.has_result){ + if (read.token.start == end_token.start && + read.token.size == end_token.size && + read.token.flags == end_token.flags && + read.token.state_flags == end_token.state_flags){ + break; + } + cpp_push_token_nonalloc(relex_stack, read.token); + + while (lex.pos > end_token.start && relex_end_i < stack->count){ + ++relex_end_i; + end_token = cpp__get_token(stack, tokens, state->size, relex_end_i); + } + if (relex_stack->count == relex_stack->max_count){ + went_too_far = 1; + break; + } + } + if (lex.pos >= state->size) break; + } + + if (!went_too_far){ + if (relex_stack->count > 0){ + if (state->start_token_i > 0){ + Cpp_Token_Merge merge = + cpp_attempt_token_merge(tokens[state->start_token_i - 1], + relex_stack->tokens[0]); + if (merge.did_merge){ + --state->start_token_i; + relex_stack->tokens[0] = merge.new_token; + } + } + + if (relex_end_i < state->stack->count){ + Cpp_Token_Merge merge = + cpp_attempt_token_merge(relex_stack->tokens[relex_stack->count-1], + tokens[relex_end_i]); + if (merge.did_merge){ + ++relex_end_i; + relex_stack->tokens[relex_stack->count-1] = merge.new_token; + } + } + } + + *relex_end = relex_end_i; + } + else{ + cpp_shift_token_starts(stack, state->end_token_i, -state->amount); + } + + return(went_too_far); +} + +#ifndef FCPP_FORBID_MALLOC +FCPP_LINK Cpp_Token_Stack +cpp_make_token_stack(int starting_max){ + Cpp_Token_Stack token_stack; + token_stack.count = 0; + token_stack.max_count = starting_max; + token_stack.tokens = (Cpp_Token*)FCPP_GET_MEMORY(sizeof(Cpp_Token)*starting_max); + return token_stack; +} + +FCPP_LINK void +cpp_free_token_stack(Cpp_Token_Stack token_stack){ + FCPP_FREE_MEMORY(token_stack.tokens); +} + +FCPP_LINK void +cpp_resize_token_stack(Cpp_Token_Stack *token_stack, int new_max){ + Cpp_Token *new_tokens = (Cpp_Token*)FCPP_GET_MEMORY(sizeof(Cpp_Token)*new_max); + + if (new_tokens){ + FCPP_MEM_COPY(new_tokens, token_stack->tokens, sizeof(Cpp_Token)*token_stack->count); + FCPP_FREE_MEMORY(token_stack->tokens); + token_stack->tokens = new_tokens; + token_stack->max_count = new_max; + } +} + +FCPP_LINK void +cpp_push_token(Cpp_Token_Stack *token_stack, Cpp_Token token){ + if (!cpp_push_token_nonalloc(token_stack, token)){ + int new_max = 2*token_stack->max_count + 1; + cpp_resize_token_stack(token_stack, new_max); + bool result = cpp_push_token_nonalloc(token_stack, token); + _Assert(result); + } +} + +FCPP_LINK void +cpp_lex_file(char *data, int size, Cpp_Token_Stack *token_stack_out){ + Cpp_Lex_Data lex = {}; + while (lex.pos < size){ + Cpp_Read_Result step_result = cpp_lex_step(data, size, &lex); + if (step_result.has_result){ + cpp_push_token(token_stack_out, step_result.token); + } + } +} + +FCPP_LINK bool +cpp_relex_file_limited(char *data, int size, Cpp_Token_Stack *stack, + int start, int end, int amount, int tolerance){ + int relex_start_i; + int end_token_i, end_guess_i; + { + Cpp_Get_Token_Result result = cpp_get_token(stack, start); + if (result.token_index <= 0){ + relex_start_i = 0; + } + else{ + relex_start_i = result.token_index-1; + } + + result = cpp_get_token(stack, end); + if (result.token_index < 0) result.token_index = 0; + else if (end > stack->tokens[result.token_index].start) ++result.token_index; + end_token_i = result.token_index; + end_guess_i = result.token_index+1; + } + + int relex_start = stack->tokens[relex_start_i].start; + if (start < relex_start) relex_start = start; + + cpp_shift_token_starts(stack, end_token_i, amount); + Cpp_Token_Stack relex_stack = cpp_make_token_stack((end_guess_i - relex_start_i + 1) * 3 / 2); + Cpp_Lex_Data lex = {}; + lex.pp_state = cpp_token_get_pp_state(stack->tokens[relex_start_i].state_flags); + lex.pos = relex_start; + bool went_too_far = 0; + + while (1){ + Cpp_Read_Result result = cpp_lex_step(data, size, &lex); + if (result.has_result){ + if (end_guess_i < stack->count && + result.token.start == stack->tokens[end_guess_i].start && + result.token.size == stack->tokens[end_guess_i].size && + result.token.flags == stack->tokens[end_guess_i].flags && + result.token.state_flags == stack->tokens[end_guess_i].state_flags){ + break; + } + else{ + cpp_push_token(&relex_stack, result.token); + while (lex.pos > stack->tokens[end_guess_i].start && + end_guess_i < stack->count){ + ++end_guess_i; + } + } + } + + if (lex.pos >= size){ + break; + } + + if (tolerance >= 0 && relex_stack.count + relex_start_i >= end_guess_i + tolerance){ + went_too_far = 1; + break; + } + } + + if (!went_too_far){ + int relex_end_i = end_guess_i; + + if (relex_stack.count > 0){ + if (relex_start_i > 0){ + Cpp_Token_Merge merge = cpp_attempt_token_merge(stack->tokens[relex_start_i - 1], + relex_stack.tokens[0]); + if (merge.did_merge){ + --relex_start_i; + relex_stack.tokens[0] = merge.new_token; + } + } + + if (relex_end_i < stack->count){ + Cpp_Token_Merge merge = cpp_attempt_token_merge(relex_stack.tokens[relex_stack.count - 1], + stack->tokens[relex_end_i]); + if (merge.did_merge){ + ++relex_end_i; + relex_stack.tokens[relex_stack.count - 1] = merge.new_token; + } + } + } + + int token_delete_amount = relex_end_i - relex_start_i; + int token_shift_amount = relex_stack.count - token_delete_amount; + + if (token_shift_amount != 0){ + int new_token_count = stack->count + token_shift_amount; + if (new_token_count > stack->max_count){ + int new_max = 2*stack->max_count + 1; + while (new_token_count > new_max){ + new_max = 2*new_max + 1; + } + cpp_resize_token_stack(stack, new_max); + } + + if (relex_end_i < stack->count){ + FCPP_MEM_MOVE(stack->tokens + relex_end_i + token_shift_amount, + stack->tokens + relex_end_i, sizeof(Cpp_Token)*(stack->count - relex_end_i)); + } + + stack->count += token_shift_amount; + } + + FCPP_MEM_COPY(stack->tokens + relex_start_i, relex_stack.tokens, sizeof(Cpp_Token)*relex_stack.count); + cpp_free_token_stack(relex_stack); + } + + else{ + cpp_shift_token_starts(stack, end_token_i, -amount); + cpp_free_token_stack(relex_stack); + } + + return went_too_far; +} +#endif + +#undef _Assert +#undef _TentativeAssert + +#undef FCPP_LEXER_IMPLEMENTATION +#endif // #ifdef FCPP_LEXER_IMPLEMENTATION + +// BOTTOM diff --git a/test/4cpp_lexer_tables.c b/4cpp_lexer_tables.c similarity index 100% rename from test/4cpp_lexer_tables.c rename to 4cpp_lexer_tables.c diff --git a/4ed_app_target.cpp b/4ed_app_target.cpp index 844fc632..1161507a 100644 --- a/4ed_app_target.cpp +++ b/4ed_app_target.cpp @@ -27,14 +27,7 @@ #include "4coder_table.cpp" -#define USE_NEW_LEXER 1 - -#if USE_NEW_LEXER -#include "test/4cpp_new_lexer.h" -#else -#define FCPP_LEXER_IMPLEMENTATION #include "4cpp_lexer.h" -#endif #include "4ed_template.cpp" diff --git a/4ed_metagen.cpp b/4ed_metagen.cpp index 2496e315..9b6d6816 100644 --- a/4ed_metagen.cpp +++ b/4ed_metagen.cpp @@ -22,13 +22,6 @@ #include "4coder_mem.h" -struct Global_Settings{ - int generate_docs; - int generate_string; -}; - -static Global_Settings global_settings; - struct Struct_Field{ char *type; char *name; @@ -2038,7 +2031,7 @@ generate_custom_headers(){ fclose(file); // NOTE(allen): Documentation - if (global_settings.generate_docs){ + { Typedef_Set typedef_set = {0}; Struct_Set struct_set = {0}; Enum_Set flag_set = {0}; @@ -2396,10 +2389,10 @@ generate_custom_headers(){ append_ss(&line, cpp_name); append_ss(&line, args); if (match_ss(ret, make_lit_string("void"))){ - append_ss(&line, make_lit_string("{ (")); + append_ss(&line, make_lit_string("{(")); } else{ - append_ss(&line, make_lit_string("{ return(")); + append_ss(&line, make_lit_string("{return(")); } append_ss(&line, name); append_s_char(&line, '('); @@ -3084,11 +3077,6 @@ generate_custom_headers(){ int main(int argc, char **argv){ char *filename = 0; - memset(&global_settings, 0, sizeof(global_settings)); - - global_settings.generate_docs = true; - global_settings.generate_string = true; - filename = generate_keycode_enum(); filename = generate_style(); filename = generate_custom_headers(); diff --git a/build.c b/build.c index 628bdc51..0ba846e9 100644 --- a/build.c +++ b/build.c @@ -44,13 +44,47 @@ static int error_state = 0; #if defined(IS_WINDOWS) -#define DWORD uint32_t -#define LPTSTR char* +typedef uint32_t DWORD; +typedef int32_t LONG; +typedef int64_t LONGLONG; +typedef char* LPTSTR; +typedef int32_t BOOL; +typedef union _LARGE_INTEGER { + struct { + DWORD LowPart; + LONG HighPart; + }; + struct { + DWORD LowPart; + LONG HighPart; + } u; + LONGLONG QuadPart; +} LARGE_INTEGER, *PLARGE_INTEGER; -DWORD GetCurrentDirectoryA( -_In_ DWORD nBufferLength, -_Out_ LPTSTR lpBuffer -); +DWORD GetCurrentDirectoryA(_In_ DWORD nBufferLength, _Out_ LPTSTR lpBuffer); +BOOL QueryPerformanceCounter(_Out_ LARGE_INTEGER *lpPerformanceCount); +BOOL QueryPerformanceFrequency(_Out_ LARGE_INTEGER *lpFrequency); + +static uint64_t perf_frequency; + +static void +init_time_system(){ + LARGE_INTEGER lint; + if (QueryPerformanceFrequency(&lint)){ + perf_frequency = lint.QuadPart; + } +} + +static uint64_t +get_time(){ + uint64_t time = 0; + LARGE_INTEGER lint; + if (QueryPerformanceCounter(&lint)){ + time = lint.QuadPart; + time = (time * 1000000) / perf_frequency; + } + return(time); +} static int32_t get_current_directory(char *buffer, int32_t max){ @@ -72,6 +106,9 @@ execute(char *dir, char *str){ #error This OS is not supported yet #endif +#define BEGIN_TIME_SECTION() do{ uint64_t start = get_time() +#define END_TIME_SECTION(n) uint64_t total = get_time() - start; printf("%-20s: %.2lu.%.6lu\n", (n), total/1000000, total%1000000); }while(0) + // // 4coder specific // @@ -116,6 +153,7 @@ build_cl(uint32_t flags, char *out_path, char *out_file, char *exports){ win32_slash_fix(out_path); + win32_slash_fix(code_path); char link_options[1024]; if (flags & SHARED_CODE){ @@ -184,13 +222,14 @@ build(uint32_t flags, } static void -buildsuper(char *code_path , char *filename){ +buildsuper(char *code_path, char *out_path, char *filename){ #if defined(IS_CL) - win32_slash_fix(filename); + win32_slash_fix(out_path); + win32_slash_fix(code_path); - systemf("call \"%s\\buildsuper.bat\" %s", - code_path, filename); + systemf("pushd %s & call \"%s\\buildsuper.bat\" %s", + out_path, code_path, filename); #else #error The build rule for this compiler is not ready @@ -200,27 +239,43 @@ buildsuper(char *code_path , char *filename){ #if defined(DEV_BUILD) int main(int argc, char **argv){ + init_time_system(); + char cdir[256]; - { - int32_t n = get_current_directory(cdir, sizeof(cdir)); - assert(n < sizeof(cdir)); - } + BEGIN_TIME_SECTION(); + int32_t n = get_current_directory(cdir, sizeof(cdir)); + assert(n < sizeof(cdir)); + END_TIME_SECTION("current directory"); + +#define META_DIR "../meta" +#define BUILD_DIR "../build" + + BEGIN_TIME_SECTION(); build(OPTS | DEBUG_INFO, cdir, "4ed_metagen.cpp", - "../meta", "metagen", 0); + META_DIR, "metagen", 0); + END_TIME_SECTION("build metagen"); - execute(cdir, "../meta/metagen"); + BEGIN_TIME_SECTION(); + execute(cdir, META_DIR"/metagen"); + END_TIME_SECTION("run metagen"); - //buildsuper(cdir, "../code/4coder_default_bindings.cpp"); - buildsuper(cdir, "../code/internal_4coder_tests.cpp"); - //buildsuper(cdir, "../code/power/4coder_casey.cpp"); - //buildsuper(cdir, "../4vim/4coder_chronal.cpp"); + BEGIN_TIME_SECTION(); + //buildsuper(cdir, BUILD_DIR, "../code/4coder_default_bindings.cpp"); + buildsuper(cdir, BUILD_DIR, "../code/internal_4coder_tests.cpp"); + //buildsuper(cdir, BUILD_DIR, "../code/power/4coder_casey.cpp"); + //buildsuper(cdir, BUILD_DIR, "../4vim/4coder_chronal.cpp"); + END_TIME_SECTION("build custom"); + BEGIN_TIME_SECTION(); build(OPTS | INCLUDES | SHARED_CODE | DEBUG_INFO, cdir, "4ed_app_target.cpp", - "../build", "4ed_app", "/EXPORT:app_get_functions"); + BUILD_DIR, "4ed_app", "/EXPORT:app_get_functions"); + END_TIME_SECTION("build 4ed_app"); + BEGIN_TIME_SECTION(); build(OPTS | INCLUDES | LIBS | ICON | DEBUG_INFO, cdir, "win32_4ed.cpp", - "../build", "4ed", 0); + BUILD_DIR, "4ed", 0); + END_TIME_SECTION("build 4ed"); return(error_state); } @@ -231,4 +286,5 @@ int main(int argc, char **argv){ #endif -// BOTTOM \ No newline at end of file +// BOTTOM + diff --git a/buildsuper.bat b/buildsuper.bat index 35e3daf7..e79d29f3 100644 --- a/buildsuper.bat +++ b/buildsuper.bat @@ -1,8 +1,8 @@ @echo off -REM this is here to prevent the spammation of PATH -IF NOT DEFINED clset (call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x64) -SET clset=64 +REM this is not really working... it's slowing down the build time +REM IF NOT DEFINED clset (call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x64) +REM SET clset=64 SET SRC=%1 if "%SRC%" == "" SET SRC=4coder_default_bindings.cpp diff --git a/internal_4coder_tests.cpp b/internal_4coder_tests.cpp index 5fa02293..4513b239 100644 --- a/internal_4coder_tests.cpp +++ b/internal_4coder_tests.cpp @@ -17,7 +17,10 @@ Allen Webster #include "4coder_default_include.cpp" #include "4coder_default_building.cpp" -#include +#include +#pragma intrinsic(__rdtsc) + +typedef uint64_t DWORD64; #define TEST_TIME_B(m) DWORD64 time_start = __rdtsc(), time_max = m; (void)(time_start), (void)(time_max) #define TEST_TIME_E() DWORD64 time_total = __rdtsc() - time_start; if (time_total > time_max) {assert(!"failed timing");} diff --git a/lexergen/4cpp_lexer_fsms.h b/lexergen/4cpp_lexer_fsms.h new file mode 100644 index 00000000..698b1f5d --- /dev/null +++ b/lexergen/4cpp_lexer_fsms.h @@ -0,0 +1,138 @@ +/* + * FSMs for 4c++ lexer + * + * 23.03.2016 (dd.mm.yyyy) + + + + + + + + + + + + + + + + + + + + + + + + */ + +// TOP + +struct String_And_Flag{ + char *str; + unsigned int flags; +}; + +enum Lex_State{ + LS_default, + LS_identifier, + LS_pound, + LS_pp, + LS_char, + LS_char_multiline, + LS_char_slashed, + LS_string, + LS_string_multiline, + LS_string_slashed, + LS_number, + LS_number0, + LS_float, + LS_crazy_float0, + LS_crazy_float1, + LS_hex, + LS_comment_pre, + LS_comment, + LS_comment_slashed, + LS_comment_block, + LS_comment_block_ending, + LS_dot, + LS_ellipsis, + LS_less, + LS_less_less, + LS_more, + LS_more_more, + LS_minus, + LS_arrow, + LS_and, + LS_or, + LS_plus, + LS_colon, + LS_star, + LS_modulo, + LS_caret, + LS_eq, + LS_bang, + LS_error_message, + // + LS_count +}; + +enum Lex_Int_State{ + LSINT_default, + LSINT_u, + LSINT_l, + LSINT_L, + LSINT_ul, + LSINT_uL, + LSINT_ll, + LSINT_extra, + // + LSINT_count +}; + +enum Lex_INC_State{ + LSINC_default, + LSINC_quotes, + LSINC_pointy, + LSINC_junk, +}; + +enum Lex_PP_State{ + LSPP_default, + LSPP_include, + LSPP_macro_identifier, + LSPP_identifier, + LSPP_body_if, + LSPP_body, + LSPP_number, + LSPP_error, + LSPP_junk, + // + LSPP_count +}; + +struct Whitespace_FSM{ + unsigned char pp_state; + unsigned char white_done; +}; + +struct Lex_FSM{ + unsigned char state; + union{ + unsigned char int_state; + unsigned char directive_state; + unsigned char sub_machine; + }; + unsigned char emit_token; + unsigned char multi_line; +}; +inline Lex_FSM +zero_lex_fsm(){ + Lex_FSM fsm = {0}; + return(fsm); +} + +// BOTTOM + + diff --git a/lexergen/4cpp_lexer_tables.c b/lexergen/4cpp_lexer_tables.c new file mode 100644 index 00000000..24f15227 --- /dev/null +++ b/lexergen/4cpp_lexer_tables.c @@ -0,0 +1,395 @@ +unsigned short whitespace_fsm_eq_classes[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,18, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + +const int num_whitespace_fsm_eq_classes = 3; + +unsigned char whitespace_fsm_table[] = { + 9,10,11,12,13,14,15,16,17, + 0, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + +unsigned short int_fsm_eq_classes[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,24, 0, 0, 0, 0, 0, 0, 0, 0,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + +const int num_int_fsm_eq_classes = 4; + +unsigned char int_fsm_table[] = { + 8, 9,10,11,12,13,14,15, + 3, 5,10, 6,12, 7,14,15, + 1, 9, 7, 7,12,13, 7,15, + 2, 4, 6,11, 7,13,14,15, +}; + +unsigned char multiline_state_table[] = { + 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + +unsigned short main_fsm_eq_classes[] = { + 0,39,39,39,39,39,39,39,39,39,78,117,117,117,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,156,195,234,273,312,351,390,273,273,429,468,273,507,546,585,624,663,663,663,663,663,663,663,663,663,702,273,741,780,819,273,273,858,858,858,858,858,858,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,273,936,273,975,897,39,858,858,858,858,1014,858,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1053,897,897,273,1092,273,273,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, +}; + +const int num_main_fsm_eq_classes = 29; + +unsigned char main_fsm_table[] = { +39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77, + 0,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 0,40,41, 3,43,44, 5,46,47, 8,49,50,51,52,53,54,55,56,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 0,40,41, 3, 4, 5, 6, 7, 8, 9,49,50,51,52,53,54,55,17,18,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +37,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 7,40,41, 3, 4, 5, 4,46,47, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +42,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +39,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +34,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +29,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 4,40,41, 3,43,44, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +33,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,19,17,17,20,20,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +31,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +27,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,14,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +21,40,41, 3, 4, 5, 4, 7, 8, 7,12,12,51,52,53,54,55,17,17,19,19,22,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +16,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,17,17,17,19,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +11, 1,41, 3, 4, 5, 4, 7, 8, 7,10,10,12,14,14,15,55,17,17,19,19,12,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +10, 1,41, 3, 4, 5, 4, 7, 8, 7,10,10,12,14,14,15,55,17,17,19,19,12,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +32,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +23,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,24,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +36,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +25,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,26,65,28,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,15,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +39,40,41, 3, 6, 6, 4, 9, 9, 7,49,50,51,52,53,54,55,18,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +35,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,13,52,53,15,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,15,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +30,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +}; + +unsigned short pp_include_fsm_eq_classes[] = { + 0,39,39,39,39,39,39,39,39,39,78,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,117,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,156,39,195,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, +}; + +const int num_pp_include_fsm_eq_classes = 6; + +unsigned char pp_include_fsm_table[] = { +39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77, + 3, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38, + 3,42,42,42, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38, + 1,40, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38, + 2, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38, + 3, 1,41, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38, +}; + +unsigned short pp_macro_fsm_eq_classes[] = { + 0,39,39,39,39,39,39,39,39,39,78,117,117,117,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,156,195,234,273,312,351,390,273,273,429,468,273,507,546,585,624,663,663,663,663,663,663,663,663,663,702,273,741,780,819,273,273,858,858,858,858,858,858,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,273,936,273,975,897,39,858,858,858,858,1014,858,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1053,897,897,273,1092,273,273,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, +}; + +const int num_pp_macro_fsm_eq_classes = 29; + +unsigned char pp_macro_fsm_table[] = { +39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77, + 0,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 0,40,41, 3,43,44, 5,46,47, 8,49,50,51,52,53,54,55,56,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 0,40,41, 3, 4, 5, 6, 7, 8, 9,49,50,51,52,53,54,55,17,18,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +37,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 7,40,41, 3, 4, 5, 4,46,47, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 2,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +39,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +34,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +29,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 4,40,41, 3,43,44, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +33,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,19,17,17,20,20,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +31,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +27,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,14,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +21,40,41, 3, 4, 5, 4, 7, 8, 7,12,12,51,52,53,54,55,17,17,19,19,22,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +16,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,17,17,17,19,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +11, 1,41, 3, 4, 5, 4, 7, 8, 7,10,10,12,14,14,15,55,17,17,19,19,12,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +10, 1,41, 3, 4, 5, 4, 7, 8, 7,10,10,12,14,14,15,55,17,17,19,19,12,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +32,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +23,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,24,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +36,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +25,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,26,65,28,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,15,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +39,40,41, 3, 6, 6, 4, 9, 9, 7,49,50,51,52,53,54,55,18,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +35,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,13,52,53,15,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,15,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +30,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +}; + +unsigned short pp_identifier_fsm_eq_classes[] = { + 0,39,39,39,39,39,39,39,39,39,78,117,117,117,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,156,195,234,273,312,351,390,273,273,429,468,273,507,546,585,624,663,663,663,663,663,663,663,663,663,702,273,741,780,819,273,273,858,858,858,858,858,858,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,273,936,273,975,897,39,858,858,858,858,1014,858,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1053,897,897,273,1092,273,273,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, +}; + +const int num_pp_identifier_fsm_eq_classes = 29; + +unsigned char pp_identifier_fsm_table[] = { +39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77, + 0,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 0,40,41, 3,43,44, 5,46,47, 8,49,50,51,52,53,54,55,56,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 0,40,41, 3, 4, 5, 6, 7, 8, 9,49,50,51,52,53,54,55,17,18,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +37,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 7,40,41, 3, 4, 5, 4,46,47, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 2,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +39,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +34,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +29,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 4,40,41, 3,43,44, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +33,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,19,17,17,20,20,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +31,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +27,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,14,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +21,40,41, 3, 4, 5, 4, 7, 8, 7,12,12,51,52,53,54,55,17,17,19,19,22,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +16,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,17,17,17,19,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +11, 1,41, 3, 4, 5, 4, 7, 8, 7,10,10,12,14,14,15,55,17,17,19,19,12,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +10, 1,41, 3, 4, 5, 4, 7, 8, 7,10,10,12,14,14,15,55,17,17,19,19,12,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +32,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +23,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,24,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +36,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +25,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,26,65,28,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,15,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +39,40,41, 3, 6, 6, 4, 9, 9, 7,49,50,51,52,53,54,55,18,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +35,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,13,52,53,15,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,15,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +30,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +}; + +unsigned short pp_body_if_fsm_eq_classes[] = { + 0,39,39,39,39,39,39,39,39,39,78,117,117,117,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,156,195,234,273,312,351,390,273,273,429,468,273,507,546,585,624,663,663,663,663,663,663,663,663,663,702,273,741,780,819,273,273,858,858,858,858,858,858,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,273,936,273,975,897,39,858,858,858,858,1014,858,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1053,897,897,273,1092,273,273,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, +}; + +const int num_pp_body_if_fsm_eq_classes = 29; + +unsigned char pp_body_if_fsm_table[] = { +39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77, + 0,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 0,40,41, 3,43,44, 5,46,47, 8,49,50,51,52,53,54,55,56,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 0,40,41, 3, 4, 5, 6, 7, 8, 9,49,50,51,52,53,54,55,17,18,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +37,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 7,40,41, 3, 4, 5, 4,46,47, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 2,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +39,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +34,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +29,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 4,40,41, 3,43,44, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +33,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,19,17,17,20,20,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +31,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +27,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,14,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +21,40,41, 3, 4, 5, 4, 7, 8, 7,12,12,51,52,53,54,55,17,17,19,19,22,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +16,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,17,17,17,19,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +11, 1,41, 3, 4, 5, 4, 7, 8, 7,10,10,12,14,14,15,55,17,17,19,19,12,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +10, 1,41, 3, 4, 5, 4, 7, 8, 7,10,10,12,14,14,15,55,17,17,19,19,12,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +32,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +23,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,24,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +36,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +25,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,26,65,28,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,15,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +39,40,41, 3, 6, 6, 4, 9, 9, 7,49,50,51,52,53,54,55,18,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +35,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,13,52,53,15,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,15,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +30,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +}; + +unsigned short pp_body_fsm_eq_classes[] = { + 0,39,39,39,39,39,39,39,39,39,78,117,117,117,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,156,195,234,273,312,351,390,273,273,429,468,273,507,546,585,624,663,663,663,663,663,663,663,663,663,702,273,741,780,819,273,273,858,858,858,858,858,858,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,273,936,273,975,897,39,858,858,858,858,1014,858,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1053,897,897,273,1092,273,273,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, +}; + +const int num_pp_body_fsm_eq_classes = 29; + +unsigned char pp_body_fsm_table[] = { +39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77, + 0,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 0,40,41, 3,43,44, 5,46,47, 8,49,50,51,52,53,54,55,56,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 0,40,41, 3, 4, 5, 6, 7, 8, 9,49,50,51,52,53,54,55,17,18,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +37,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 7,40,41, 3, 4, 5, 4,46,47, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 2,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +39,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +34,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +29,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 4,40,41, 3,43,44, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +33,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,19,17,17,20,20,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +31,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +27,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,14,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +21,40,41, 3, 4, 5, 4, 7, 8, 7,12,12,51,52,53,54,55,17,17,19,19,22,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +16,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,17,17,17,19,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +11, 1,41, 3, 4, 5, 4, 7, 8, 7,10,10,12,14,14,15,55,17,17,19,19,12,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +10, 1,41, 3, 4, 5, 4, 7, 8, 7,10,10,12,14,14,15,55,17,17,19,19,12,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +32,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +23,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,24,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +36,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +25,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,26,65,28,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,15,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +39,40,41, 3, 6, 6, 4, 9, 9, 7,49,50,51,52,53,54,55,18,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +35,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,13,52,53,15,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,15,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +30,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +}; + +unsigned short pp_number_fsm_eq_classes[] = { + 0,39,39,39,39,39,39,39,39,39,78,117,117,117,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,156,195,234,273,312,351,390,273,273,429,468,273,507,546,585,624,663,663,663,663,663,663,663,663,663,702,273,741,780,819,273,273,858,858,858,858,858,858,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,273,936,273,975,897,39,858,858,858,858,1014,858,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1053,897,897,273,1092,273,273,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, +}; + +const int num_pp_number_fsm_eq_classes = 29; + +unsigned char pp_number_fsm_table[] = { +39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77, + 0,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 0,40,41, 3,43,44, 5,46,47, 8,49,50,51,52,53,54,55,56,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 0,40,41, 3, 4, 5, 6, 7, 8, 9,49,50,51,52,53,54,55,17,18,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +37,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 7,40,41, 3, 4, 5, 4,46,47, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 2,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +39,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +34,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +29,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 4,40,41, 3,43,44, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +33,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,19,17,17,20,20,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +31,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +27,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,14,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +21,40,41, 3, 4, 5, 4, 7, 8, 7,12,12,51,52,53,54,55,17,17,19,19,22,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +16,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,17,17,17,19,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +11, 1,41, 3, 4, 5, 4, 7, 8, 7,10,10,12,14,14,15,55,17,17,19,19,12,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +10, 1,41, 3, 4, 5, 4, 7, 8, 7,10,10,12,14,14,15,55,17,17,19,19,12,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +32,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +23,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,24,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +36,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +25,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,26,65,28,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,15,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +39,40,41, 3, 6, 6, 4, 9, 9, 7,49,50,51,52,53,54,55,18,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +35,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,13,52,53,15,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,15,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +30,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +}; + +unsigned short pp_error_fsm_eq_classes[] = { + 0,39,39,39,39,39,39,39,39,39,78,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, +}; + +const int num_pp_error_fsm_eq_classes = 3; + +unsigned char pp_error_fsm_table[] = { +39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77, +38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38, +77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77, +}; + +unsigned short pp_junk_fsm_eq_classes[] = { + 0,39,39,39,39,39,39,39,39,39,78,117,117,117,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,156,195,234,273,312,351,390,273,273,429,468,273,507,546,585,624,663,663,663,663,663,663,663,663,663,702,273,741,780,819,273,273,858,858,858,858,858,858,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,273,936,273,975,897,39,858,858,858,858,1014,858,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1053,897,897,273,1092,273,273,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39, +}; + +const int num_pp_junk_fsm_eq_classes = 29; + +unsigned char pp_junk_fsm_table[] = { +39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77, + 0,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 0,40,41, 3,43,44, 5,46,47, 8,49,50,51,52,53,54,55,56,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 0,40,41, 3, 4, 5, 6, 7, 8, 9,49,50,51,52,53,54,55,17,18,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +37,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 7,40,41, 3, 4, 5, 4,46,47, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 2,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +39,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +34,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +29,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 4,40,41, 3,43,44, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +33,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,19,17,17,20,20,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +31,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +27,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,14,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +21,40,41, 3, 4, 5, 4, 7, 8, 7,12,12,51,52,53,54,55,17,17,19,19,22,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +16,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,17,17,17,19,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +11, 1,41, 3, 4, 5, 4, 7, 8, 7,10,10,12,14,14,15,55,17,17,19,19,12,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +10, 1,41, 3, 4, 5, 4, 7, 8, 7,10,10,12,14,14,15,55,17,17,19,19,12,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +32,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +23,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,24,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +36,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +25,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,26,65,28,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,15,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +39,40,41, 3, 6, 6, 4, 9, 9, 7,49,50,51,52,53,54,55,18,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +35,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,50,13,52,53,15,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, + 1, 1,41, 3, 4, 5, 4, 7, 8, 7,49,15,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +30,40,41, 3, 4, 5, 4, 7, 8, 7,49,50,51,52,53,54,55,17,17,19,19,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,38, +}; + +unsigned short * get_eq_classes[] = { +main_fsm_eq_classes, +pp_include_fsm_eq_classes, +pp_macro_fsm_eq_classes, +pp_identifier_fsm_eq_classes, +pp_body_if_fsm_eq_classes, +pp_body_fsm_eq_classes, +pp_number_fsm_eq_classes, +pp_error_fsm_eq_classes, +pp_junk_fsm_eq_classes, +}; + +unsigned char * get_table[] = { +main_fsm_table, +pp_include_fsm_table, +pp_macro_fsm_table, +pp_identifier_fsm_table, +pp_body_if_fsm_table, +pp_body_fsm_table, +pp_number_fsm_table, +pp_error_fsm_table, +pp_junk_fsm_table, +}; + +unsigned short pp_directive_eq_classes[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0,119, 0,119,119,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,238, 0,357,476,595,714,833, 0,952, 0, 0,1071,1190,1309,1428,1547, 0,1666,1785,1904,2023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2142, 0,2261,2380,2499,2618,2737, 0,2856, 0, 0,2975,3094,3213,3332,3451, 0,3570,3689,3808,3927, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + +const int num_pp_directive_eq_classes = 34; + +unsigned char pp_directive_table[] = { +200,200,200,200,200,200,200,200,200,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, + 0,200,200,200,200,200,200,200,200,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, +200,200,200,200,200,200,200,200,200,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,67,200,200,70,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, +200,200,200,200,200,200,200,200,200,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,35,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, + 4,200,200,200,200,200,200,200,200,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,41,200,200,200,38,200,202,42,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,81,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,103,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, +10,200,200,200,56,200,200,200,200,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,39,202,200,45,43,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,60,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,82,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,111,200,208,209,200,200,214,200,118,214, +200,200,33,200,200,200,200,200,200,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,44,207,46,206,200,200,200,212,200,200,200,200,203,57,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,83,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,105,210,200,200,211,200,112,208,209,200,200,214,200,200,214, +200,200,200,200,200,200,200,200,200,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,68,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,86,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, + 2,200,200,200,200,200,200,200,200,200,200,200,116,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,58,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,84,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,110,104,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, +12,200,200,200,200,200,200,200,200,200,102,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,36,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, +200,200,34,200,200,200,200,200,200,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,69,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, +200,200,32,200,200,200,200,200,79,200,100,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,40,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,59,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,85,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,117,200,214, +200,200,200,200,200,200,200,200,200,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,48,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,107,200,211,200,200,208,209,200,200,214,200,200,214, + 6,200,200,200,200,200,200,200,200,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,47,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, +200,200,200,200,200,200,66,200,200,200,101,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,49,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,106,200,200,200,210,200,108,211,200,200,208,209,200,200,214,200,200,214, +200,200,200,200,200,200,200,200,80,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,109,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, +200,200,200,200,200,200,200,200,200,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,50,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, + 8,200,200,200,200,200,200,200,200,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,37,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, +200,200,200,200,200,200,200,200,200,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,62,200,200,65,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, +200,200,200,200,200,200,200,200,200,200,200,200,200,16,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, + 3,200,200,200,200,200,200,200,200,200,200,200,200,200,22,200,200,200,19,200,202,23,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,73,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,90,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, + 9,200,200,51,200,200,200,200,200,200,200,200,200,200,205,200,200,200,200,20,202,200,26,24,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,55,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,74,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,98,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,115,214,200,200,214, +200,14,200,200,200,200,200,200,200,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,25,207,27,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,52,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,75,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,92,210,200,200,211,200,99,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, +200,200,200,200,200,200,200,200,200,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,63,200,200,215,200,200,200,200,215,200,200,200,200,204,200,78,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, + 1,200,200,200,200,200,200,200,200,200,200,113,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,53,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,76,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,97,91,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, +11,200,200,200,200,200,200,200,200,89,200,200,200,200,205,200,17,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, +200,15,200,200,200,200,200,200,200,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,64,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, +200,13,200,200,200,200,200,71,200,87,200,200,200,200,21,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,54,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,77,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,114,200,214,200,200,214, +200,200,200,200,200,200,200,200,200,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,29,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,94,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, + 5,200,200,200,200,200,200,200,200,200,200,200,200,200,205,28,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, +200,200,200,200,200,61,200,200,200,88,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,30,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,93,200,200,200,210,200,95,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, +200,200,200,200,200,200,200,72,200,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,96,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, +200,200,200,200,200,200,200,200,200,200,200,200,200,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,31,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, + 7,200,200,200,200,200,200,200,200,200,200,200,200,200,205,200,200,18,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,205,200,200,200,200,200,202,200,200,200,200,207,200,206,200,200,200,212,200,200,200,200,203,200,200,200,200,203,200,200,200,200,215,200,200,200,200,215,200,200,200,200,204,200,200,213,200,200,200,200,204,200,200,213,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,200,200,200,210,200,200,211,200,200,208,209,200,200,214,200,200,214, +}; + +unsigned char LSDIR_default = 0; + +unsigned char LSDIR_count = 119; + +unsigned char pp_directive_terminal_base = 200; + diff --git a/test/4cpp_new_lexer.h b/lexergen/4cpp_new_lexer.h similarity index 100% rename from test/4cpp_new_lexer.h rename to lexergen/4cpp_new_lexer.h diff --git a/test/fsm_table_generator.cpp b/lexergen/fsm_table_generator.cpp similarity index 100% rename from test/fsm_table_generator.cpp rename to lexergen/fsm_table_generator.cpp