Partial support for fixed sized arrays
This commit is contained in:
parent
13ed8b71c9
commit
5297511118
@ -347,6 +347,8 @@ b32 StrCmp(StringLiteral a, StringLiteral b)
|
|||||||
X(EndOfStream, "End Of Stream") \
|
X(EndOfStream, "End Of Stream") \
|
||||||
X(LeftBrace, "{") \
|
X(LeftBrace, "{") \
|
||||||
X(RightBrace, "}") \
|
X(RightBrace, "}") \
|
||||||
|
X(LeftSqBracket, "[") \
|
||||||
|
X(RightSqBracket, "]") \
|
||||||
X(OpenParen, "(") \
|
X(OpenParen, "(") \
|
||||||
X(CloseParen, ")") \
|
X(CloseParen, ")") \
|
||||||
X(Comma, ",") \
|
X(Comma, ",") \
|
||||||
@ -857,7 +859,16 @@ void ParseCPPStruct(CPPTokeniser *tokeniser)
|
|||||||
link->value.array_dimensions = total_asterisks_count;
|
link->value.array_dimensions = total_asterisks_count;
|
||||||
|
|
||||||
CPPTokeniser_NextToken(tokeniser);
|
CPPTokeniser_NextToken(tokeniser);
|
||||||
peek_token = CPPTokeniser_PeekToken(tokeniser);
|
for (peek_token = CPPTokeniser_PeekToken(tokeniser);
|
||||||
|
peek_token.type == CPPTokenType::LeftSqBracket && peek_token.type != CPPTokenType::EndOfStream;
|
||||||
|
peek_token = CPPTokeniser_NextToken(tokeniser))
|
||||||
|
{
|
||||||
|
// TODO(doyle): Parsing array size is difficult if it's an expression, so maybe don't do it at all
|
||||||
|
++link->value.array_dimensions;
|
||||||
|
while (token.type != CPPTokenType::RightSqBracket && token.type != CPPTokenType::EndOfStream)
|
||||||
|
token = CPPTokeniser_NextToken(tokeniser);
|
||||||
|
}
|
||||||
|
|
||||||
if (IsIdentifierToken(peek_token, STR_LITERAL("DQN_INSPECT_META")))
|
if (IsIdentifierToken(peek_token, STR_LITERAL("DQN_INSPECT_META")))
|
||||||
{
|
{
|
||||||
link->metadata_array = ParseCPPInspectMeta(tokeniser);
|
link->metadata_array = ParseCPPInspectMeta(tokeniser);
|
||||||
@ -1099,6 +1110,8 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
case '{': { token->type = CPPTokenType::LeftBrace; started_lexing_scope = true; indent_level++; } break;
|
case '{': { token->type = CPPTokenType::LeftBrace; started_lexing_scope = true; indent_level++; } break;
|
||||||
case '}': { token->type = CPPTokenType::RightBrace; indent_level--; } break;
|
case '}': { token->type = CPPTokenType::RightBrace; indent_level--; } break;
|
||||||
|
case '[': { token->type = CPPTokenType::LeftSqBracket; } break;
|
||||||
|
case ']': { token->type = CPPTokenType::RightSqBracket; } break;
|
||||||
case '(': { token->type = CPPTokenType::OpenParen; } break;
|
case '(': { token->type = CPPTokenType::OpenParen; } break;
|
||||||
case ')': { token->type = CPPTokenType::CloseParen; } break;
|
case ')': { token->type = CPPTokenType::CloseParen; } break;
|
||||||
case ',': { token->type = CPPTokenType::Comma; } break;
|
case ',': { token->type = CPPTokenType::Comma; } break;
|
||||||
|
@ -28,9 +28,9 @@ DQN_INSPECT struct OpenGLState
|
|||||||
{
|
{
|
||||||
// #if 0
|
// #if 0
|
||||||
// #endif
|
// #endif
|
||||||
|
u32 shaders[(int)OpenGLShader::Count];
|
||||||
void *win32_handle;
|
void *win32_handle;
|
||||||
int ebo DQN_INSPECT_META(DisplayName = "Element Buffer Object"), vbo, vao DQN_INSPECT_META(DisplayName = "Vertex Array Object", OpenGLVersion = "330");
|
int ebo DQN_INSPECT_META(DisplayName = "Element Buffer Object"), vbo, vao DQN_INSPECT_META(DisplayName = "Vertex Array Object", OpenGLVersion = "330");
|
||||||
// u32 shaders[(int)OpenGLShader::Count];
|
|
||||||
V4 draw_color DQN_INSPECT_META(DisplayName = "HelloWorld");
|
V4 draw_color DQN_INSPECT_META(DisplayName = "HelloWorld");
|
||||||
V3 lighting_ambient_coeff;
|
V3 lighting_ambient_coeff;
|
||||||
char **bitmaps;
|
char **bitmaps;
|
||||||
|
Loading…
Reference in New Issue
Block a user