Add macro for inspecting prototypes, fix string default val bug
This commit is contained in:
parent
b298eae175
commit
a325ea6130
@ -222,6 +222,7 @@ DqnInspect_Struct const *DqnInspect_GetStruct(OpenGLState const *val)
|
|||||||
|
|
||||||
#define DQN_INSPECT
|
#define DQN_INSPECT
|
||||||
#define DQN_INSPECT_META(...)
|
#define DQN_INSPECT_META(...)
|
||||||
|
#define DQN_INSPECT_GENERATE_PROTOTYPE(...)
|
||||||
|
|
||||||
enum DqnInspect_StructMemberMetadataType { String, Int, Float };
|
enum DqnInspect_StructMemberMetadataType { String, Int, Float };
|
||||||
|
|
||||||
@ -1270,6 +1271,11 @@ void ParseCPPInspectPrototype(CPPTokeniser *tokeniser)
|
|||||||
token = CPPTokeniser_NextToken(tokeniser);
|
token = CPPTokeniser_NextToken(tokeniser);
|
||||||
char *default_param_start = token.str;
|
char *default_param_start = token.str;
|
||||||
|
|
||||||
|
// NOTE(doyle): Include the quotes in the param value
|
||||||
|
CPPToken prev_token = CPPTokeniser_PrevToken(tokeniser);
|
||||||
|
if (prev_token.type == CPPTokenType::String)
|
||||||
|
default_param_start--;
|
||||||
|
|
||||||
SkipFunctionParam(tokeniser);
|
SkipFunctionParam(tokeniser);
|
||||||
CPPToken peek_token = CPPTokeniser_PeekToken(tokeniser);
|
CPPToken peek_token = CPPTokeniser_PeekToken(tokeniser);
|
||||||
if (peek_token.type != CPPTokenType::Comma && peek_token.type != CPPTokenType::CloseParen)
|
if (peek_token.type != CPPTokenType::Comma && peek_token.type != CPPTokenType::CloseParen)
|
||||||
@ -1591,6 +1597,8 @@ int main(int argc, char *argv[])
|
|||||||
file_include_contents_hash_define_len = extracted_file_name_len;
|
file_include_contents_hash_define_len = extracted_file_name_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mode == InspectMode::Code)
|
||||||
|
{
|
||||||
fprintf(output_file,
|
fprintf(output_file,
|
||||||
"//\n"
|
"//\n"
|
||||||
"// %s\n"
|
"// %s\n"
|
||||||
@ -1610,6 +1618,24 @@ int main(int argc, char *argv[])
|
|||||||
file_include_contents_hash_define_len,
|
file_include_contents_hash_define_len,
|
||||||
file_include_contents_hash_define
|
file_include_contents_hash_define
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fprintf(output_file,
|
||||||
|
"//\n"
|
||||||
|
"// %s\n"
|
||||||
|
"//\n"
|
||||||
|
"\n"
|
||||||
|
"#ifndef DQN_INSPECT_%.*s\n"
|
||||||
|
"#define DQN_INSPECT_%.*s\n"
|
||||||
|
"\n",
|
||||||
|
file_name,
|
||||||
|
file_include_contents_hash_define_len,
|
||||||
|
file_include_contents_hash_define,
|
||||||
|
file_include_contents_hash_define_len,
|
||||||
|
file_include_contents_hash_define
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
CPPTokeniser tokeniser = {};
|
CPPTokeniser tokeniser = {};
|
||||||
tokeniser.spaces_per_indent = 4;
|
tokeniser.spaces_per_indent = 4;
|
||||||
@ -1697,6 +1723,8 @@ int main(int argc, char *argv[])
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mode == InspectMode::Code)
|
||||||
|
{
|
||||||
fprintf(output_file,
|
fprintf(output_file,
|
||||||
"\n#undef ARRAY_COUNT\n"
|
"\n#undef ARRAY_COUNT\n"
|
||||||
"#undef CHAR_COUNT\n"
|
"#undef CHAR_COUNT\n"
|
||||||
@ -1705,6 +1733,14 @@ int main(int argc, char *argv[])
|
|||||||
file_include_contents_hash_define_len,
|
file_include_contents_hash_define_len,
|
||||||
file_include_contents_hash_define);
|
file_include_contents_hash_define);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fprintf(output_file,
|
||||||
|
"\n#endif // DQN_INSPECT_%.*s\n\n",
|
||||||
|
file_include_contents_hash_define_len,
|
||||||
|
file_include_contents_hash_define);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fclose(output_file);
|
fclose(output_file);
|
||||||
|
|
||||||
|
@ -7,11 +7,6 @@
|
|||||||
#ifndef DQN_INSPECT_DQNINSPECT_TESTDATA_H
|
#ifndef DQN_INSPECT_DQNINSPECT_TESTDATA_H
|
||||||
#define DQN_INSPECT_DQNINSPECT_TESTDATA_H
|
#define DQN_INSPECT_DQNINSPECT_TESTDATA_H
|
||||||
|
|
||||||
// NOTE: These macros are undefined at the end of the file so to not pollute namespace
|
|
||||||
#define ARRAY_COUNT(array) sizeof(array)/sizeof((array)[0])
|
|
||||||
#define CHAR_COUNT(str) (ARRAY_COUNT(str) - 1)
|
|
||||||
#define STR_AND_LEN(str) str, CHAR_COUNT(str)
|
|
||||||
|
|
||||||
char const *DqnInspect_OpenGLShader_Strings[] = {"Invalid", "Rect", "Text", "Count", };
|
char const *DqnInspect_OpenGLShader_Strings[] = {"Invalid", "Rect", "Text", "Count", };
|
||||||
|
|
||||||
char const *DqnInspect_EnumString(OpenGLShader val)
|
char const *DqnInspect_EnumString(OpenGLShader val)
|
||||||
@ -233,10 +228,7 @@ DqnInspect_Struct const *DqnInspect_GetStruct(OpenGLState const *val)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenderRect(V3 pos, V2 size = {}, char const *texture = nullptr, bool depth_test = false, int type = 1, char *user_msg = Hello world");
|
void RenderRect(V3 pos, V2 size = {}, char const *texture = nullptr, bool depth_test = false, int type = 1, char *user_msg = "Hello world");
|
||||||
|
|
||||||
#undef ARRAY_COUNT
|
|
||||||
#undef CHAR_COUNT
|
|
||||||
#undef STR_AND_LEN
|
|
||||||
#endif // DQN_INSPECT_DQNINSPECT_TESTDATA_H
|
#endif // DQN_INSPECT_DQNINSPECT_TESTDATA_H
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user