Shader: Add attribute and square bracket tokens (first step for attribute support)
This commit is contained in:
@@ -13,8 +13,10 @@
|
|||||||
NAZARA_SHADERLANG_TOKEN(Assign)
|
NAZARA_SHADERLANG_TOKEN(Assign)
|
||||||
NAZARA_SHADERLANG_TOKEN(BoolFalse)
|
NAZARA_SHADERLANG_TOKEN(BoolFalse)
|
||||||
NAZARA_SHADERLANG_TOKEN(BoolTrue)
|
NAZARA_SHADERLANG_TOKEN(BoolTrue)
|
||||||
|
NAZARA_SHADERLANG_TOKEN(ClosingAttribute)
|
||||||
NAZARA_SHADERLANG_TOKEN(ClosingParenthesis)
|
NAZARA_SHADERLANG_TOKEN(ClosingParenthesis)
|
||||||
NAZARA_SHADERLANG_TOKEN(ClosingCurlyBracket)
|
NAZARA_SHADERLANG_TOKEN(ClosingCurlyBracket)
|
||||||
|
NAZARA_SHADERLANG_TOKEN(ClosingSquareBracket)
|
||||||
NAZARA_SHADERLANG_TOKEN(Colon)
|
NAZARA_SHADERLANG_TOKEN(Colon)
|
||||||
NAZARA_SHADERLANG_TOKEN(Comma)
|
NAZARA_SHADERLANG_TOKEN(Comma)
|
||||||
NAZARA_SHADERLANG_TOKEN(Divide)
|
NAZARA_SHADERLANG_TOKEN(Divide)
|
||||||
@@ -29,7 +31,9 @@ NAZARA_SHADERLANG_TOKEN(Let)
|
|||||||
NAZARA_SHADERLANG_TOKEN(Multiply)
|
NAZARA_SHADERLANG_TOKEN(Multiply)
|
||||||
NAZARA_SHADERLANG_TOKEN(Minus)
|
NAZARA_SHADERLANG_TOKEN(Minus)
|
||||||
NAZARA_SHADERLANG_TOKEN(Plus)
|
NAZARA_SHADERLANG_TOKEN(Plus)
|
||||||
|
NAZARA_SHADERLANG_TOKEN(OpenAttribute)
|
||||||
NAZARA_SHADERLANG_TOKEN(OpenCurlyBracket)
|
NAZARA_SHADERLANG_TOKEN(OpenCurlyBracket)
|
||||||
|
NAZARA_SHADERLANG_TOKEN(OpenSquareBracket)
|
||||||
NAZARA_SHADERLANG_TOKEN(OpenParenthesis)
|
NAZARA_SHADERLANG_TOKEN(OpenParenthesis)
|
||||||
NAZARA_SHADERLANG_TOKEN(Semicolon)
|
NAZARA_SHADERLANG_TOKEN(Semicolon)
|
||||||
NAZARA_SHADERLANG_TOKEN(Return)
|
NAZARA_SHADERLANG_TOKEN(Return)
|
||||||
|
|||||||
@@ -221,6 +221,28 @@ namespace Nz::ShaderLang
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case '[':
|
||||||
|
{
|
||||||
|
char next = Peek();
|
||||||
|
if (next == '[')
|
||||||
|
tokenType = TokenType::OpenAttribute;
|
||||||
|
else
|
||||||
|
tokenType = TokenType::OpenSquareBracket;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case ']':
|
||||||
|
{
|
||||||
|
char next = Peek();
|
||||||
|
if (next == ']')
|
||||||
|
tokenType = TokenType::ClosingAttribute;
|
||||||
|
else
|
||||||
|
tokenType = TokenType::ClosingSquareBracket;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case '=': tokenType = TokenType::Assign; break;
|
case '=': tokenType = TokenType::Assign; break;
|
||||||
case '+': tokenType = TokenType::Plus; break;
|
case '+': tokenType = TokenType::Plus; break;
|
||||||
case '*': tokenType = TokenType::Multiply; break;
|
case '*': tokenType = TokenType::Multiply; break;
|
||||||
|
|||||||
Reference in New Issue
Block a user