Shader: Add missing ! and != parsing
This commit is contained in:
parent
a5b71f33b9
commit
ac08afe9f1
|
|
@ -42,6 +42,7 @@ NAZARA_SHADERLANG_TOKEN(LogicalAnd)
|
||||||
NAZARA_SHADERLANG_TOKEN(LogicalOr)
|
NAZARA_SHADERLANG_TOKEN(LogicalOr)
|
||||||
NAZARA_SHADERLANG_TOKEN(Multiply)
|
NAZARA_SHADERLANG_TOKEN(Multiply)
|
||||||
NAZARA_SHADERLANG_TOKEN(Minus)
|
NAZARA_SHADERLANG_TOKEN(Minus)
|
||||||
|
NAZARA_SHADERLANG_TOKEN(Not)
|
||||||
NAZARA_SHADERLANG_TOKEN(NotEqual)
|
NAZARA_SHADERLANG_TOKEN(NotEqual)
|
||||||
NAZARA_SHADERLANG_TOKEN(Plus)
|
NAZARA_SHADERLANG_TOKEN(Plus)
|
||||||
NAZARA_SHADERLANG_TOKEN(OpenCurlyBracket)
|
NAZARA_SHADERLANG_TOKEN(OpenCurlyBracket)
|
||||||
|
|
|
||||||
|
|
@ -303,6 +303,21 @@ namespace Nz::ShaderLang
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case '!':
|
||||||
|
{
|
||||||
|
char next = Peek();
|
||||||
|
if (next == '=')
|
||||||
|
{
|
||||||
|
currentPos++;
|
||||||
|
tokenType = TokenType::NotEqual;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
tokenType = TokenType::Not;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
case '+': tokenType = TokenType::Plus; break;
|
case '+': tokenType = TokenType::Plus; break;
|
||||||
case '*': tokenType = TokenType::Multiply; break;
|
case '*': tokenType = TokenType::Multiply; break;
|
||||||
case ':': tokenType = TokenType::Colon; break;
|
case ':': tokenType = TokenType::Colon; break;
|
||||||
|
|
|
||||||
|
|
@ -1117,6 +1117,14 @@ namespace Nz::ShaderLang
|
||||||
return ShaderBuilder::Unary(ShaderAst::UnaryType::Plus, std::move(expr));
|
return ShaderBuilder::Unary(ShaderAst::UnaryType::Plus, std::move(expr));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case TokenType::Not:
|
||||||
|
{
|
||||||
|
Consume();
|
||||||
|
ShaderAst::ExpressionPtr expr = ParsePrimaryExpression();
|
||||||
|
|
||||||
|
return ShaderBuilder::Unary(ShaderAst::UnaryType::LogicalNot, std::move(expr));
|
||||||
|
}
|
||||||
|
|
||||||
case TokenType::OpenParenthesis:
|
case TokenType::OpenParenthesis:
|
||||||
return ParseParenthesisExpression();
|
return ParseParenthesisExpression();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue