Shader/ShaderLang: Add type inference for variable declaration
This commit is contained in:
@@ -637,15 +637,19 @@ namespace Nz::ShaderLang
|
||||
Expect(Advance(), TokenType::Let);
|
||||
|
||||
std::string variableName = ParseIdentifierAsName();
|
||||
RegisterVariable(variableName);
|
||||
|
||||
ShaderAst::ExpressionType variableType = ShaderAst::NoType{};
|
||||
if (Peek().type == TokenType::Colon)
|
||||
{
|
||||
Expect(Advance(), TokenType::Colon);
|
||||
|
||||
Expect(Advance(), TokenType::Colon);
|
||||
|
||||
|
||||
variableType = ParseType();
|
||||
}
|
||||
|
||||
ShaderAst::ExpressionPtr expression;
|
||||
ShaderAst::ExpressionPtr expression;
|
||||
if (IsNoType(variableType) || Peek().type == TokenType::Assign)
|
||||
{
|
||||
{
|
||||
Expect(Advance(), TokenType::Assign);
|
||||
expression = ParseExpression();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user