Преглед на файлове

AZSLc: Upgrade ANTLR to 4.9.3 (#22)

AZSLc: Upgrade ANTLR to 4.9.3

This is version 1.7.35

Upgraded ANTLR to version 4.9.3 (was 4.7.1)

MacOS: Improved project generation and compilation (Xcode project is now generated).

Signed-off-by: galibzon <[email protected]>
galibzon преди 3 години
родител
ревизия
4a6172aa6d

+ 20 - 20
prepare_solution_darwin.sh

@@ -9,9 +9,9 @@
 
 # Build
 
-mkdir build
-mkdir build/release
-mkdir build/debug
+BUILD_DIR='build'
+
+mkdir $BUILD_DIR
 
 CMAKE='cmake'
 if ! command -v $CMAKE &> /dev/null
@@ -21,33 +21,33 @@ then
     echo "$OLDCMAKE not found in PATH. Defaulting to: $CMAKE"
 fi
 
-$CMAKE -DMAKE_BUILD_TYPE=Release -S "src/" -B "build/release"
-pushd build/release
-echo "Building release..."
-make -j16
-ls
+$CMAKE -G "Xcode" -S "src/" -B $BUILD_DIR
+
+echo "Xcode project created successfully."
+
+echo "Will proceed to build in Release configuration..."
+$CMAKE --build $BUILD_DIR --target azslc --config Release -j 16
+
+pushd $BUILD_DIR/Release
 echo "Release version:"
 ./azslc --version
 popd
 
-$CMAKE -DMAKE_BUILD_TYPE=Debug -S "src/external/antlr4/runtime/Cpp/" -B "build/debug/external/antlr4/runtime/Cpp/"
-pushd build/debug/external/antlr4/runtime/Cpp
-make -j16
-popd
 
-$CMAKE -DMAKE_BUILD_TYPE=Debug -S "src/" -B "build/debug"
-pushd build/debug
-echo "Building debug..."
-make -j16
-ls
+echo "Will proceed to build in Debug configuration..."
+$CMAKE --build $BUILD_DIR --target azslc --config Debug -j 16
+
+pushd $BUILD_DIR/Debug
 echo "Debug version:"
 ./azslc --version
 popd
 
-# Deploy
+## Deploy
+echo "Deploying Release and Debug binaries..."
 mkdir bin
 mkdir bin/darwin
 mkdir bin/darwin/release
 mkdir bin/darwin/debug
-cp build/release/azslc bin/darwin/release/azslc
-cp build/debug/azslc bin/darwin/debug/azslc
+cp $BUILD_DIR/Release/azslc bin/darwin/release/azslc
+cp $BUILD_DIR/Debug/azslc bin/darwin/debug/azslc
+echo "Done!"

+ 1 - 2
src/AzslcMain.cpp

@@ -23,8 +23,7 @@ namespace StdFs = std::filesystem;
 // For large features or milestones. Minor version allows for breaking changes. Existing tests can change.
 #define AZSLC_MINOR "7"
 // For small features or bug fixes. They cannot introduce breaking changes. Existing tests shouldn't change.
-#define AZSLC_REVISION "34" // Add [[pad_to(N)]] language feature
-
+#define AZSLC_REVISION "35" // Upgrade from Antlr 4.7.1 to Antlr 4.9.3
 namespace AZ::ShaderCompiler
 {
     DiagnosticStream verboseCout;

+ 3 - 2
src/CMakeLists.txt

@@ -14,7 +14,7 @@ FetchContent_Declare(
 FetchContent_Declare(
   antlr4
   GIT_REPOSITORY https://github.com/o3de/antlr4.git
-  GIT_TAG o3de-4.7.1
+  GIT_TAG o3de-4.9.3
   SOURCE_SUBDIR runtime/Cpp
   CMAKE_ARGS "-DCMAKE_BUILD_TYPE=Release"
 )
@@ -91,7 +91,8 @@ if (MSVC)
   target_compile_definitions(azslc
     PRIVATE
     _CRT_SECURE_NO_WARNINGS
-    _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING)
+    _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING
+    ANTLR4CPP_STATIC)
 elseif (UNIX AND NOT APPLE)
   target_link_libraries(azslc PRIVATE stdc++fs)
 endif()

BIN
src/external/antlr-4.7.1-complete.jar


BIN
src/external/antlr-4.9.3-complete.jar


+ 212 - 238
src/generated/azslLexer.cpp

@@ -1,5 +1,5 @@
 
-// Generated from ../azslLexer.g4 by ANTLR 4.7.1
+// Generated from ../azslLexer.g4 by ANTLR 4.9.3
 
 
 #include "azslLexer.h"
@@ -60,253 +60,227 @@ atn::ATN azslLexer::_atn;
 std::vector<uint16_t> azslLexer::_serializedATN;
 
 std::vector<std::string> azslLexer::_ruleNames = {
-  u8"AppendStructuredBuffer", u8"Bool", u8"Bool1", u8"Bool2", u8"Bool3", 
-  u8"Bool4", u8"Bool1x1", u8"Bool1x2", u8"Bool1x3", u8"Bool1x4", u8"Bool2x1", 
-  u8"Bool2x2", u8"Bool2x3", u8"Bool2x4", u8"Bool3x1", u8"Bool3x2", u8"Bool3x3", 
-  u8"Bool3x4", u8"Bool4x1", u8"Bool4x2", u8"Bool4x3", u8"Bool4x4", u8"Buffer", 
-  u8"BuiltInTriangleIntersectionAttributes", u8"ByteAddressBuffer", u8"Break", 
-  u8"Case", u8"CBuffer", u8"ConstantBuffer", u8"ConstantBufferCamel", u8"Centroid", 
-  u8"Class", u8"ColumnMajor", u8"Const", u8"ConsumeStructuredBuffer", u8"Continue", 
-  u8"Default", u8"Discard", u8"Do", u8"Double", u8"Double1", u8"Double2", 
-  u8"Double3", u8"Double4", u8"Double1x1", u8"Double1x2", u8"Double1x3", 
-  u8"Double1x4", u8"Double2x1", u8"Double2x2", u8"Double2x3", u8"Double2x4", 
-  u8"Double3x1", u8"Double3x2", u8"Double3x3", u8"Double3x4", u8"Double4x1", 
-  u8"Double4x2", u8"Double4x3", u8"Double4x4", u8"Else", u8"Enum", u8"Extern", 
-  u8"FeedbackTexture2D", u8"FeedbackTexture2DArray", u8"Float", u8"Float1", 
-  u8"Float2", u8"Float3", u8"Float4", u8"Float1x1", u8"Float1x2", u8"Float1x3", 
-  u8"Float1x4", u8"Float2x1", u8"Float2x2", u8"Float2x3", u8"Float2x4", 
-  u8"Float3x1", u8"Float3x2", u8"Float3x3", u8"Float3x4", u8"Float4x1", 
-  u8"Float4x2", u8"Float4x3", u8"Float4x4", u8"For", u8"Groupshared", u8"Global", 
-  u8"Half", u8"Half1", u8"Half2", u8"Half3", u8"Half4", u8"Half1x1", u8"Half1x2", 
-  u8"Half1x3", u8"Half1x4", u8"Half2x1", u8"Half2x2", u8"Half2x3", u8"Half2x4", 
-  u8"Half3x1", u8"Half3x2", u8"Half3x3", u8"Half3x4", u8"Half4x1", u8"Half4x2", 
-  u8"Half4x3", u8"Half4x4", u8"If", u8"In", u8"Inline", u8"Rootconstant", 
-  u8"Inout", u8"InputPatch", u8"Int", u8"Int1", u8"Int2", u8"Int3", u8"Int4", 
-  u8"Int1x1", u8"Int1x2", u8"Int1x3", u8"Int1x4", u8"Int2x1", u8"Int2x2", 
-  u8"Int2x3", u8"Int2x4", u8"Int3x1", u8"Int3x2", u8"Int3x3", u8"Int3x4", 
-  u8"Int4x1", u8"Int4x2", u8"Int4x3", u8"Int4x4", u8"Interface", u8"Line_", 
-  u8"LineAdj", u8"Linear", u8"LineStream", u8"Long", u8"Matrix", u8"Nointerpolation", 
-  u8"Noperspective", u8"Option", u8"Out", u8"OutputPatch", u8"Override", 
-  u8"Partial", u8"Packoffset", u8"Point", u8"PointStream", u8"Precise", 
-  u8"RasterizerOrderedBuffer", u8"RasterizerOrderedByteAddressBuffer", u8"RasterizerOrderedStructuredBuffer", 
-  u8"RasterizerOrderedTexture1D", u8"RasterizerOrderedTexture1DArray", u8"RasterizerOrderedTexture2D", 
-  u8"RasterizerOrderedTexture2DArray", u8"RasterizerOrderedTexture3D", u8"RayDesc", 
-  u8"RaytracingAccelerationStructure", u8"Register", u8"Return", u8"RowMajor", 
-  u8"RWBuffer", u8"RWByteAddressBuffer", u8"RWStructuredBuffer", u8"RWTexture1D", 
-  u8"RWTexture1DArray", u8"RWTexture2D", u8"RWTexture2DArray", u8"RWTexture3D", 
-  u8"Sample", u8"Sampler", u8"SamplerCapitalS", u8"SamplerComparisonState", 
-  u8"SamplerState", u8"Shared", u8"Static", u8"Struct", u8"StructuredBuffer", 
-  u8"SubpassInput", u8"SubpassInputMS", u8"Switch", u8"Texture1D", u8"Texture1DArray", 
-  u8"Texture2D", u8"Texture2DArray", u8"Texture2DMS", u8"Texture2DMSArray", 
-  u8"Texture3D", u8"TextureCube", u8"TextureCubeArray", u8"Triangle", u8"TriangleAdj", 
-  u8"TriangleStream", u8"Uniform", u8"Uint", u8"UnsignedInt", u8"Uint1", 
-  u8"Uint2", u8"Uint3", u8"Uint4", u8"Uint1x1", u8"Uint1x2", u8"Uint1x3", 
-  u8"Uint1x4", u8"Uint2x1", u8"Uint2x2", u8"Uint2x3", u8"Uint2x4", u8"Uint3x1", 
-  u8"Uint3x2", u8"Uint3x3", u8"Uint3x4", u8"Uint4x1", u8"Uint4x2", u8"Uint4x3", 
-  u8"Uint4x4", u8"Dword", u8"Dword1", u8"Dword2", u8"Dword3", u8"Dword4", 
-  u8"Dword1x1", u8"Dword1x2", u8"Dword1x3", u8"Dword1x4", u8"Dword2x1", 
-  u8"Dword2x2", u8"Dword2x3", u8"Dword2x4", u8"Dword3x1", u8"Dword3x2", 
-  u8"Dword3x3", u8"Dword3x4", u8"Dword4x1", u8"Dword4x2", u8"Dword4x3", 
-  u8"Dword4x4", u8"Vector", u8"Volatile", u8"Void", u8"While", u8"StateObjectConfig", 
-  u8"LocalRootSignature", u8"GlobalRootSignature", u8"SubobjectToExportsAssociation", 
-  u8"RaytracingShaderConfig", u8"RaytracingPipelineConfig", u8"RaytracingPipelineConfig1", 
-  u8"TriangleHitGroup", u8"ProceduralPrimitiveHitGroup", u8"ADDRESS_U", 
-  u8"ADDRESS_V", u8"ADDRESS_W", u8"BORDER_COLOR", u8"MIN_FILTER", u8"MAG_FILTER", 
-  u8"MIP_FILTER", u8"MAX_ANISOTROPY", u8"MAX_LOD", u8"MIN_LOD", u8"MIP_LOD_BIAS", 
-  u8"COMPARISON_FUNC", u8"REDUCTION_TYPE", u8"FILTER_MODE_POINT", u8"FILTER_MODE_LINEAR", 
-  u8"REDUCTION_TYPE_FILTER", u8"REDUCTION_TYPE_COMPARISON", u8"REDUCTION_TYPE_MINIMUM", 
-  u8"REDUCTION_TYPE_MAXIMUM", u8"ADDRESS_MODE_WRAP", u8"ADDRESS_MODE_MIRROR", 
-  u8"ADDRESS_MODE_CLAMP", u8"ADDRESS_MODE_BORDER", u8"ADDRESS_MODE_MIRROR_ONCE", 
-  u8"COMPARISON_FUNCTION_NEVER", u8"COMPARISON_FUNCTION_LESS", u8"COMPARISON_FUNCTION_EQUAL", 
-  u8"COMPARISON_FUNCTION_LESS_EQUAL", u8"COMPARISON_FUNCTION_GREATER", u8"COMPARISON_FUNCTION_NOT_EQUAL", 
-  u8"COMPARISON_FUNCTION_GREATER_EQUAL", u8"COMPARISON_FUNCTION_ALWAYS", 
-  u8"BORDER_COLOR_OPAQUE_BLACK", u8"BORDER_COLOR_TRANSPARENT_BLACK", u8"BORDER_COLOR_OPAQUE_WHITE", 
-  u8"LeftParen", u8"RightParen", u8"LeftBracket", u8"RightBracket", u8"LeftBrace", 
-  u8"RightBrace", u8"LeftDoubleBracket", u8"Less", u8"LessEqual", u8"Greater", 
-  u8"GreaterEqual", u8"LeftShift", u8"RightShift", u8"Plus", u8"PlusPlus", 
-  u8"Minus", u8"MinusMinus", u8"Star", u8"Div", u8"Mod", u8"And", u8"Or", 
-  u8"AndAnd", u8"OrOr", u8"Caret", u8"Not", u8"Tilde", u8"Question", u8"Colon", 
-  u8"ColonColon", u8"Semi", u8"Comma", u8"Assign", u8"StarAssign", u8"DivAssign", 
-  u8"ModAssign", u8"PlusAssign", u8"MinusAssign", u8"LeftShiftAssign", u8"RightShiftAssign", 
-  u8"AndAssign", u8"XorAssign", u8"OrAssign", u8"Equal", u8"NotEqual", u8"Dot", 
-  u8"True", u8"False", u8"KW_AssociatedType", u8"KW_TypeAlias", u8"KW_Typedef", 
-  u8"KW_Fundamental", u8"KW_Typeof", u8"KW_ext_print_message", u8"KW_ext_print_symbol", 
-  u8"KW_ext_prtsym_fully_qualified", u8"KW_ext_prtsym_least_qualified", 
-  u8"KW_ext_prtsym_constint_value", u8"FrequencyId", u8"ShaderVariantFallback", 
-  u8"ShaderResourceGroupSemantic", u8"ShaderResourceGroup", u8"HLSLSemanticStream", 
-  u8"HLSLSemanticSystem", u8"Identifier", u8"Nondigit", u8"Digit", u8"DecimalOrOctalIntegerLiteral", 
-  u8"HexadecimalIntegerLiteral", u8"HexadecimalDigit", u8"FractionalConstant", 
-  u8"ExponentPart", u8"Sign", u8"DigitSequence", u8"HexadecimalDigitSequence", 
-  u8"IntegerSuffix", u8"IntegerLiteral", u8"FloatingSuffix", u8"FloatLiteral", 
-  u8"EscapeSequence", u8"SimpleEscapeSequence", u8"StringLiteral", u8"SCharSequence", 
-  u8"SChar", u8"PragmaDirective", u8"LineDirective", u8"Whitespace", u8"Newline", 
-  u8"BlockComment", u8"LineComment"
+  "AppendStructuredBuffer", "Bool", "Bool1", "Bool2", "Bool3", "Bool4", 
+  "Bool1x1", "Bool1x2", "Bool1x3", "Bool1x4", "Bool2x1", "Bool2x2", "Bool2x3", 
+  "Bool2x4", "Bool3x1", "Bool3x2", "Bool3x3", "Bool3x4", "Bool4x1", "Bool4x2", 
+  "Bool4x3", "Bool4x4", "Buffer", "BuiltInTriangleIntersectionAttributes", 
+  "ByteAddressBuffer", "Break", "Case", "CBuffer", "ConstantBuffer", "ConstantBufferCamel", 
+  "Centroid", "Class", "ColumnMajor", "Const", "ConsumeStructuredBuffer", 
+  "Continue", "Default", "Discard", "Do", "Double", "Double1", "Double2", 
+  "Double3", "Double4", "Double1x1", "Double1x2", "Double1x3", "Double1x4", 
+  "Double2x1", "Double2x2", "Double2x3", "Double2x4", "Double3x1", "Double3x2", 
+  "Double3x3", "Double3x4", "Double4x1", "Double4x2", "Double4x3", "Double4x4", 
+  "Else", "Enum", "Extern", "FeedbackTexture2D", "FeedbackTexture2DArray", 
+  "Float", "Float1", "Float2", "Float3", "Float4", "Float1x1", "Float1x2", 
+  "Float1x3", "Float1x4", "Float2x1", "Float2x2", "Float2x3", "Float2x4", 
+  "Float3x1", "Float3x2", "Float3x3", "Float3x4", "Float4x1", "Float4x2", 
+  "Float4x3", "Float4x4", "For", "Groupshared", "Global", "Half", "Half1", 
+  "Half2", "Half3", "Half4", "Half1x1", "Half1x2", "Half1x3", "Half1x4", 
+  "Half2x1", "Half2x2", "Half2x3", "Half2x4", "Half3x1", "Half3x2", "Half3x3", 
+  "Half3x4", "Half4x1", "Half4x2", "Half4x3", "Half4x4", "If", "In", "Inline", 
+  "Rootconstant", "Inout", "InputPatch", "Int", "Int1", "Int2", "Int3", 
+  "Int4", "Int1x1", "Int1x2", "Int1x3", "Int1x4", "Int2x1", "Int2x2", "Int2x3", 
+  "Int2x4", "Int3x1", "Int3x2", "Int3x3", "Int3x4", "Int4x1", "Int4x2", 
+  "Int4x3", "Int4x4", "Interface", "Line_", "LineAdj", "Linear", "LineStream", 
+  "Long", "Matrix", "Nointerpolation", "Noperspective", "Option", "Out", 
+  "OutputPatch", "Override", "Partial", "Packoffset", "Point", "PointStream", 
+  "Precise", "RasterizerOrderedBuffer", "RasterizerOrderedByteAddressBuffer", 
+  "RasterizerOrderedStructuredBuffer", "RasterizerOrderedTexture1D", "RasterizerOrderedTexture1DArray", 
+  "RasterizerOrderedTexture2D", "RasterizerOrderedTexture2DArray", "RasterizerOrderedTexture3D", 
+  "RayDesc", "RaytracingAccelerationStructure", "Register", "Return", "RowMajor", 
+  "RWBuffer", "RWByteAddressBuffer", "RWStructuredBuffer", "RWTexture1D", 
+  "RWTexture1DArray", "RWTexture2D", "RWTexture2DArray", "RWTexture3D", 
+  "Sample", "Sampler", "SamplerCapitalS", "SamplerComparisonState", "SamplerState", 
+  "Shared", "Static", "Struct", "StructuredBuffer", "SubpassInput", "SubpassInputMS", 
+  "Switch", "Texture1D", "Texture1DArray", "Texture2D", "Texture2DArray", 
+  "Texture2DMS", "Texture2DMSArray", "Texture3D", "TextureCube", "TextureCubeArray", 
+  "Triangle", "TriangleAdj", "TriangleStream", "Uniform", "Uint", "UnsignedInt", 
+  "Uint1", "Uint2", "Uint3", "Uint4", "Uint1x1", "Uint1x2", "Uint1x3", "Uint1x4", 
+  "Uint2x1", "Uint2x2", "Uint2x3", "Uint2x4", "Uint3x1", "Uint3x2", "Uint3x3", 
+  "Uint3x4", "Uint4x1", "Uint4x2", "Uint4x3", "Uint4x4", "Dword", "Dword1", 
+  "Dword2", "Dword3", "Dword4", "Dword1x1", "Dword1x2", "Dword1x3", "Dword1x4", 
+  "Dword2x1", "Dword2x2", "Dword2x3", "Dword2x4", "Dword3x1", "Dword3x2", 
+  "Dword3x3", "Dword3x4", "Dword4x1", "Dword4x2", "Dword4x3", "Dword4x4", 
+  "Vector", "Volatile", "Void", "While", "StateObjectConfig", "LocalRootSignature", 
+  "GlobalRootSignature", "SubobjectToExportsAssociation", "RaytracingShaderConfig", 
+  "RaytracingPipelineConfig", "RaytracingPipelineConfig1", "TriangleHitGroup", 
+  "ProceduralPrimitiveHitGroup", "ADDRESS_U", "ADDRESS_V", "ADDRESS_W", 
+  "BORDER_COLOR", "MIN_FILTER", "MAG_FILTER", "MIP_FILTER", "MAX_ANISOTROPY", 
+  "MAX_LOD", "MIN_LOD", "MIP_LOD_BIAS", "COMPARISON_FUNC", "REDUCTION_TYPE", 
+  "FILTER_MODE_POINT", "FILTER_MODE_LINEAR", "REDUCTION_TYPE_FILTER", "REDUCTION_TYPE_COMPARISON", 
+  "REDUCTION_TYPE_MINIMUM", "REDUCTION_TYPE_MAXIMUM", "ADDRESS_MODE_WRAP", 
+  "ADDRESS_MODE_MIRROR", "ADDRESS_MODE_CLAMP", "ADDRESS_MODE_BORDER", "ADDRESS_MODE_MIRROR_ONCE", 
+  "COMPARISON_FUNCTION_NEVER", "COMPARISON_FUNCTION_LESS", "COMPARISON_FUNCTION_EQUAL", 
+  "COMPARISON_FUNCTION_LESS_EQUAL", "COMPARISON_FUNCTION_GREATER", "COMPARISON_FUNCTION_NOT_EQUAL", 
+  "COMPARISON_FUNCTION_GREATER_EQUAL", "COMPARISON_FUNCTION_ALWAYS", "BORDER_COLOR_OPAQUE_BLACK", 
+  "BORDER_COLOR_TRANSPARENT_BLACK", "BORDER_COLOR_OPAQUE_WHITE", "LeftParen", 
+  "RightParen", "LeftBracket", "RightBracket", "LeftBrace", "RightBrace", 
+  "LeftDoubleBracket", "Less", "LessEqual", "Greater", "GreaterEqual", "LeftShift", 
+  "RightShift", "Plus", "PlusPlus", "Minus", "MinusMinus", "Star", "Div", 
+  "Mod", "And", "Or", "AndAnd", "OrOr", "Caret", "Not", "Tilde", "Question", 
+  "Colon", "ColonColon", "Semi", "Comma", "Assign", "StarAssign", "DivAssign", 
+  "ModAssign", "PlusAssign", "MinusAssign", "LeftShiftAssign", "RightShiftAssign", 
+  "AndAssign", "XorAssign", "OrAssign", "Equal", "NotEqual", "Dot", "True", 
+  "False", "KW_AssociatedType", "KW_TypeAlias", "KW_Typedef", "KW_Fundamental", 
+  "KW_Typeof", "KW_ext_print_message", "KW_ext_print_symbol", "KW_ext_prtsym_fully_qualified", 
+  "KW_ext_prtsym_least_qualified", "KW_ext_prtsym_constint_value", "FrequencyId", 
+  "ShaderVariantFallback", "ShaderResourceGroupSemantic", "ShaderResourceGroup", 
+  "HLSLSemanticStream", "HLSLSemanticSystem", "Identifier", "Nondigit", 
+  "Digit", "DecimalOrOctalIntegerLiteral", "HexadecimalIntegerLiteral", 
+  "HexadecimalDigit", "FractionalConstant", "ExponentPart", "Sign", "DigitSequence", 
+  "HexadecimalDigitSequence", "IntegerSuffix", "IntegerLiteral", "FloatingSuffix", 
+  "FloatLiteral", "EscapeSequence", "SimpleEscapeSequence", "StringLiteral", 
+  "SCharSequence", "SChar", "PragmaDirective", "LineDirective", "Whitespace", 
+  "Newline", "BlockComment", "LineComment"
 };
 
 std::vector<std::string> azslLexer::_channelNames = {
-  "DEFAULT_TOKEN_CHANNEL", "HIDDEN", u8"PREPROCESSOR"
+  "DEFAULT_TOKEN_CHANNEL", "HIDDEN", "PREPROCESSOR"
 };
 
 std::vector<std::string> azslLexer::_modeNames = {
-  u8"DEFAULT_MODE"
+  "DEFAULT_MODE"
 };
 
 std::vector<std::string> azslLexer::_literalNames = {
-  "", u8"'AppendStructuredBuffer'", u8"'bool'", u8"'bool1'", u8"'bool2'", 
-  u8"'bool3'", u8"'bool4'", u8"'bool1x1'", u8"'bool1x2'", u8"'bool1x3'", 
-  u8"'bool1x4'", u8"'bool2x1'", u8"'bool2x2'", u8"'bool2x3'", u8"'bool2x4'", 
-  u8"'bool3x1'", u8"'bool3x2'", u8"'bool3x3'", u8"'bool3x4'", u8"'bool4x1'", 
-  u8"'bool4x2'", u8"'bool4x3'", u8"'bool4x4'", u8"'Buffer'", u8"'BuiltInTriangleIntersectionAttributes'", 
-  u8"'ByteAddressBuffer'", u8"'break'", u8"'case'", u8"'cbuffer'", u8"'constantbuffer'", 
-  u8"'ConstantBuffer'", u8"'centroid'", u8"'class'", u8"'column_major'", 
-  u8"'const'", u8"'ConsumeStructuredBuffer'", u8"'continue'", u8"'default'", 
-  u8"'discard'", u8"'do'", u8"'double'", u8"'double1'", u8"'double2'", u8"'double3'", 
-  u8"'double4'", u8"'double1x1'", u8"'double1x2'", u8"'double1x3'", u8"'double1x4'", 
-  u8"'double2x1'", u8"'double2x2'", u8"'double2x3'", u8"'double2x4'", u8"'double3x1'", 
-  u8"'double3x2'", u8"'double3x3'", u8"'double3x4'", u8"'double4x1'", u8"'double4x2'", 
-  u8"'double4x3'", u8"'double4x4'", u8"'else'", u8"'enum'", u8"'extern'", 
-  u8"'FeedbackTexture2D'", u8"'FeedbackTexture2DArray'", u8"'float'", u8"'float1'", 
-  u8"'float2'", u8"'float3'", u8"'float4'", u8"'float1x1'", u8"'float1x2'", 
-  u8"'float1x3'", u8"'float1x4'", u8"'float2x1'", u8"'float2x2'", u8"'float2x3'", 
-  u8"'float2x4'", u8"'float3x1'", u8"'float3x2'", u8"'float3x3'", u8"'float3x4'", 
-  u8"'float4x1'", u8"'float4x2'", u8"'float4x3'", u8"'float4x4'", u8"'for'", 
-  u8"'groupshared'", u8"'global'", u8"'half'", u8"'half1'", u8"'half2'", 
-  u8"'half3'", u8"'half4'", u8"'half1x1'", u8"'half1x2'", u8"'half1x3'", 
-  u8"'half1x4'", u8"'half2x1'", u8"'half2x2'", u8"'half2x3'", u8"'half2x4'", 
-  u8"'half3x1'", u8"'half3x2'", u8"'half3x3'", u8"'half3x4'", u8"'half4x1'", 
-  u8"'half4x2'", u8"'half4x3'", u8"'half4x4'", u8"'if'", u8"'in'", u8"'inline'", 
-  u8"'rootconstant'", "", u8"'InputPatch'", u8"'int'", u8"'int1'", u8"'int2'", 
-  u8"'int3'", u8"'int4'", u8"'int1x1'", u8"'int1x2'", u8"'int1x3'", u8"'int1x4'", 
-  u8"'int2x1'", u8"'int2x2'", u8"'int2x3'", u8"'int2x4'", u8"'int3x1'", 
-  u8"'int3x2'", u8"'int3x3'", u8"'int3x4'", u8"'int4x1'", u8"'int4x2'", 
-  u8"'int4x3'", u8"'int4x4'", u8"'interface'", u8"'line'", u8"'lineadj'", 
-  u8"'linear'", u8"'LineStream'", u8"'long'", u8"'matrix'", u8"'nointerpolation'", 
-  u8"'noperspective'", u8"'option'", u8"'out'", u8"'OutputPatch'", u8"'override'", 
-  u8"'partial'", u8"'packoffset'", u8"'point'", u8"'PointStream'", u8"'precise'", 
-  u8"'RasterizerOrderedBuffer'", u8"'RasterizerOrderedByteAddressBuffer'", 
-  u8"'RasterizerOrderedStructuredBuffer'", u8"'RasterizerOrderedTexture1D'", 
-  u8"'RasterizerOrderedTexture1DArray'", u8"'RasterizerOrderedTexture2D'", 
-  u8"'RasterizerOrderedTexture2DArray'", u8"'RasterizerOrderedTexture3D'", 
-  u8"'RayDesc'", u8"'RaytracingAccelerationStructure'", u8"'register'", 
-  u8"'return'", u8"'row_major'", u8"'RWBuffer'", u8"'RWByteAddressBuffer'", 
-  u8"'RWStructuredBuffer'", u8"'RWTexture1D'", u8"'RWTexture1DArray'", u8"'RWTexture2D'", 
-  u8"'RWTexture2DArray'", u8"'RWTexture3D'", u8"'sample'", u8"'sampler'", 
-  u8"'Sampler'", u8"'SamplerComparisonState'", u8"'SamplerState'", u8"'shared'", 
-  u8"'static'", u8"'struct'", u8"'StructuredBuffer'", u8"'SubpassInput'", 
-  u8"'SubpassInputMS'", u8"'switch'", u8"'Texture1D'", u8"'Texture1DArray'", 
-  u8"'Texture2D'", u8"'Texture2DArray'", u8"'Texture2DMS'", u8"'Texture2DMSArray'", 
-  u8"'Texture3D'", u8"'TextureCube'", u8"'TextureCubeArray'", u8"'triangle'", 
-  u8"'triangleadj'", u8"'TriangleStream'", u8"'uniform'", u8"'uint'", u8"'unsigned int'", 
-  u8"'uint1'", u8"'uint2'", u8"'uint3'", u8"'uint4'", u8"'uint1x1'", u8"'uint1x2'", 
-  u8"'uint1x3'", u8"'uint1x4'", u8"'uint2x1'", u8"'uint2x2'", u8"'uint2x3'", 
-  u8"'uint2x4'", u8"'uint3x1'", u8"'uint3x2'", u8"'uint3x3'", u8"'uint3x4'", 
-  u8"'uint4x1'", u8"'uint4x2'", u8"'uint4x3'", u8"'uint4x4'", u8"'dword'", 
-  u8"'dword1'", u8"'dword2'", u8"'dword3'", u8"'dword4'", u8"'dword1x1'", 
-  u8"'dword1x2'", u8"'dword1x3'", u8"'dword1x4'", u8"'dword2x1'", u8"'dword2x2'", 
-  u8"'dword2x3'", u8"'dword2x4'", u8"'dword3x1'", u8"'dword3x2'", u8"'dword3x3'", 
-  u8"'dword3x4'", u8"'dword4x1'", u8"'dword4x2'", u8"'dword4x3'", u8"'dword4x4'", 
-  u8"'vector'", u8"'volatile'", u8"'void'", u8"'while'", u8"'StateObjectConfig'", 
-  u8"'LocalRootSignature'", u8"'GlobalRootSignature'", u8"'SubobjectToExportsAssociation'", 
-  u8"'RaytracingShaderConfig'", u8"'RaytracingPipelineConfig'", u8"'RaytracingPipelineConfig1'", 
-  u8"'TriangleHitGroup'", u8"'ProceduralPrimitiveHitGroup'", u8"'AddressU'", 
-  u8"'AddressV'", u8"'AddressW'", u8"'BorderColor'", u8"'MinFilter'", u8"'MagFilter'", 
-  u8"'MipFilter'", u8"'MaxAnisotropy'", u8"'MaxLOD'", u8"'MinLOD'", u8"'MipLODBias'", 
-  u8"'ComparisonFunc'", u8"'ReductionType'", u8"'Point'", u8"'Linear'", 
-  u8"'Filter'", u8"'Comparison'", u8"'Minimum'", u8"'Maximum'", u8"'Wrap'", 
-  u8"'Mirror'", u8"'Clamp'", u8"'Border'", u8"'MirrorOnce'", u8"'Never'", 
-  u8"'Less'", u8"'Equal'", u8"'LessEqual'", u8"'Greater'", u8"'NotEqual'", 
-  u8"'GreaterEqual'", u8"'Always'", u8"'OpaqueBlack'", u8"'TransparentBlack'", 
-  u8"'OpaqueWhite'", u8"'('", u8"')'", u8"'['", u8"']'", u8"'{'", u8"'}'", 
-  u8"'[['", u8"'<'", u8"'<='", u8"'>'", u8"'>='", u8"'<<'", u8"'>>'", u8"'+'", 
-  u8"'++'", u8"'-'", u8"'--'", u8"'*'", u8"'/'", u8"'%'", u8"'&'", u8"'|'", 
-  u8"'&&'", u8"'||'", u8"'^'", u8"'!'", u8"'~'", u8"'?'", u8"':'", u8"'::'", 
-  u8"';'", u8"','", u8"'='", u8"'*='", u8"'/='", u8"'%='", u8"'+='", u8"'-='", 
-  u8"'<<='", u8"'>>='", u8"'&='", u8"'^='", u8"'|='", u8"'=='", u8"'!='", 
-  u8"'.'", u8"'true'", u8"'false'", u8"'associatedtype'", u8"'typealias'", 
-  u8"'typedef'", u8"'fundamental'", u8"'typeof'", u8"'__azslc_print_message'", 
-  u8"'__azslc_print_symbol'", u8"'__azslc_prtsym_fully_qualified'", u8"'__azslc_prtsym_least_qualified'", 
-  u8"'__azslc_prtsym_constint_value'", u8"'FrequencyId'", u8"'ShaderVariantFallback'", 
-  u8"'ShaderResourceGroupSemantic'", u8"'ShaderResourceGroup'"
+  "", "'AppendStructuredBuffer'", "'bool'", "'bool1'", "'bool2'", "'bool3'", 
+  "'bool4'", "'bool1x1'", "'bool1x2'", "'bool1x3'", "'bool1x4'", "'bool2x1'", 
+  "'bool2x2'", "'bool2x3'", "'bool2x4'", "'bool3x1'", "'bool3x2'", "'bool3x3'", 
+  "'bool3x4'", "'bool4x1'", "'bool4x2'", "'bool4x3'", "'bool4x4'", "'Buffer'", 
+  "'BuiltInTriangleIntersectionAttributes'", "'ByteAddressBuffer'", "'break'", 
+  "'case'", "'cbuffer'", "'constantbuffer'", "'ConstantBuffer'", "'centroid'", 
+  "'class'", "'column_major'", "'const'", "'ConsumeStructuredBuffer'", "'continue'", 
+  "'default'", "'discard'", "'do'", "'double'", "'double1'", "'double2'", 
+  "'double3'", "'double4'", "'double1x1'", "'double1x2'", "'double1x3'", 
+  "'double1x4'", "'double2x1'", "'double2x2'", "'double2x3'", "'double2x4'", 
+  "'double3x1'", "'double3x2'", "'double3x3'", "'double3x4'", "'double4x1'", 
+  "'double4x2'", "'double4x3'", "'double4x4'", "'else'", "'enum'", "'extern'", 
+  "'FeedbackTexture2D'", "'FeedbackTexture2DArray'", "'float'", "'float1'", 
+  "'float2'", "'float3'", "'float4'", "'float1x1'", "'float1x2'", "'float1x3'", 
+  "'float1x4'", "'float2x1'", "'float2x2'", "'float2x3'", "'float2x4'", 
+  "'float3x1'", "'float3x2'", "'float3x3'", "'float3x4'", "'float4x1'", 
+  "'float4x2'", "'float4x3'", "'float4x4'", "'for'", "'groupshared'", "'global'", 
+  "'half'", "'half1'", "'half2'", "'half3'", "'half4'", "'half1x1'", "'half1x2'", 
+  "'half1x3'", "'half1x4'", "'half2x1'", "'half2x2'", "'half2x3'", "'half2x4'", 
+  "'half3x1'", "'half3x2'", "'half3x3'", "'half3x4'", "'half4x1'", "'half4x2'", 
+  "'half4x3'", "'half4x4'", "'if'", "'in'", "'inline'", "'rootconstant'", 
+  "", "'InputPatch'", "'int'", "'int1'", "'int2'", "'int3'", "'int4'", "'int1x1'", 
+  "'int1x2'", "'int1x3'", "'int1x4'", "'int2x1'", "'int2x2'", "'int2x3'", 
+  "'int2x4'", "'int3x1'", "'int3x2'", "'int3x3'", "'int3x4'", "'int4x1'", 
+  "'int4x2'", "'int4x3'", "'int4x4'", "'interface'", "'line'", "'lineadj'", 
+  "'linear'", "'LineStream'", "'long'", "'matrix'", "'nointerpolation'", 
+  "'noperspective'", "'option'", "'out'", "'OutputPatch'", "'override'", 
+  "'partial'", "'packoffset'", "'point'", "'PointStream'", "'precise'", 
+  "'RasterizerOrderedBuffer'", "'RasterizerOrderedByteAddressBuffer'", "'RasterizerOrderedStructuredBuffer'", 
+  "'RasterizerOrderedTexture1D'", "'RasterizerOrderedTexture1DArray'", "'RasterizerOrderedTexture2D'", 
+  "'RasterizerOrderedTexture2DArray'", "'RasterizerOrderedTexture3D'", "'RayDesc'", 
+  "'RaytracingAccelerationStructure'", "'register'", "'return'", "'row_major'", 
+  "'RWBuffer'", "'RWByteAddressBuffer'", "'RWStructuredBuffer'", "'RWTexture1D'", 
+  "'RWTexture1DArray'", "'RWTexture2D'", "'RWTexture2DArray'", "'RWTexture3D'", 
+  "'sample'", "'sampler'", "'Sampler'", "'SamplerComparisonState'", "'SamplerState'", 
+  "'shared'", "'static'", "'struct'", "'StructuredBuffer'", "'SubpassInput'", 
+  "'SubpassInputMS'", "'switch'", "'Texture1D'", "'Texture1DArray'", "'Texture2D'", 
+  "'Texture2DArray'", "'Texture2DMS'", "'Texture2DMSArray'", "'Texture3D'", 
+  "'TextureCube'", "'TextureCubeArray'", "'triangle'", "'triangleadj'", 
+  "'TriangleStream'", "'uniform'", "'uint'", "'unsigned int'", "'uint1'", 
+  "'uint2'", "'uint3'", "'uint4'", "'uint1x1'", "'uint1x2'", "'uint1x3'", 
+  "'uint1x4'", "'uint2x1'", "'uint2x2'", "'uint2x3'", "'uint2x4'", "'uint3x1'", 
+  "'uint3x2'", "'uint3x3'", "'uint3x4'", "'uint4x1'", "'uint4x2'", "'uint4x3'", 
+  "'uint4x4'", "'dword'", "'dword1'", "'dword2'", "'dword3'", "'dword4'", 
+  "'dword1x1'", "'dword1x2'", "'dword1x3'", "'dword1x4'", "'dword2x1'", 
+  "'dword2x2'", "'dword2x3'", "'dword2x4'", "'dword3x1'", "'dword3x2'", 
+  "'dword3x3'", "'dword3x4'", "'dword4x1'", "'dword4x2'", "'dword4x3'", 
+  "'dword4x4'", "'vector'", "'volatile'", "'void'", "'while'", "'StateObjectConfig'", 
+  "'LocalRootSignature'", "'GlobalRootSignature'", "'SubobjectToExportsAssociation'", 
+  "'RaytracingShaderConfig'", "'RaytracingPipelineConfig'", "'RaytracingPipelineConfig1'", 
+  "'TriangleHitGroup'", "'ProceduralPrimitiveHitGroup'", "'AddressU'", "'AddressV'", 
+  "'AddressW'", "'BorderColor'", "'MinFilter'", "'MagFilter'", "'MipFilter'", 
+  "'MaxAnisotropy'", "'MaxLOD'", "'MinLOD'", "'MipLODBias'", "'ComparisonFunc'", 
+  "'ReductionType'", "'Point'", "'Linear'", "'Filter'", "'Comparison'", 
+  "'Minimum'", "'Maximum'", "'Wrap'", "'Mirror'", "'Clamp'", "'Border'", 
+  "'MirrorOnce'", "'Never'", "'Less'", "'Equal'", "'LessEqual'", "'Greater'", 
+  "'NotEqual'", "'GreaterEqual'", "'Always'", "'OpaqueBlack'", "'TransparentBlack'", 
+  "'OpaqueWhite'", "'('", "')'", "'['", "']'", "'{'", "'}'", "'[['", "'<'", 
+  "'<='", "'>'", "'>='", "'<<'", "'>>'", "'+'", "'++'", "'-'", "'--'", "'*'", 
+  "'/'", "'%'", "'&'", "'|'", "'&&'", "'||'", "'^'", "'!'", "'~'", "'\u003F'", 
+  "':'", "'::'", "';'", "','", "'='", "'*='", "'/='", "'%='", "'+='", "'-='", 
+  "'<<='", "'>>='", "'&='", "'^='", "'|='", "'=='", "'!='", "'.'", "'true'", 
+  "'false'", "'associatedtype'", "'typealias'", "'typedef'", "'fundamental'", 
+  "'typeof'", "'__azslc_print_message'", "'__azslc_print_symbol'", "'__azslc_prtsym_fully_qualified'", 
+  "'__azslc_prtsym_least_qualified'", "'__azslc_prtsym_constint_value'", 
+  "'FrequencyId'", "'ShaderVariantFallback'", "'ShaderResourceGroupSemantic'", 
+  "'ShaderResourceGroup'"
 };
 
 std::vector<std::string> azslLexer::_symbolicNames = {
-  "", u8"AppendStructuredBuffer", u8"Bool", u8"Bool1", u8"Bool2", u8"Bool3", 
-  u8"Bool4", u8"Bool1x1", u8"Bool1x2", u8"Bool1x3", u8"Bool1x4", u8"Bool2x1", 
-  u8"Bool2x2", u8"Bool2x3", u8"Bool2x4", u8"Bool3x1", u8"Bool3x2", u8"Bool3x3", 
-  u8"Bool3x4", u8"Bool4x1", u8"Bool4x2", u8"Bool4x3", u8"Bool4x4", u8"Buffer", 
-  u8"BuiltInTriangleIntersectionAttributes", u8"ByteAddressBuffer", u8"Break", 
-  u8"Case", u8"CBuffer", u8"ConstantBuffer", u8"ConstantBufferCamel", u8"Centroid", 
-  u8"Class", u8"ColumnMajor", u8"Const", u8"ConsumeStructuredBuffer", u8"Continue", 
-  u8"Default", u8"Discard", u8"Do", u8"Double", u8"Double1", u8"Double2", 
-  u8"Double3", u8"Double4", u8"Double1x1", u8"Double1x2", u8"Double1x3", 
-  u8"Double1x4", u8"Double2x1", u8"Double2x2", u8"Double2x3", u8"Double2x4", 
-  u8"Double3x1", u8"Double3x2", u8"Double3x3", u8"Double3x4", u8"Double4x1", 
-  u8"Double4x2", u8"Double4x3", u8"Double4x4", u8"Else", u8"Enum", u8"Extern", 
-  u8"FeedbackTexture2D", u8"FeedbackTexture2DArray", u8"Float", u8"Float1", 
-  u8"Float2", u8"Float3", u8"Float4", u8"Float1x1", u8"Float1x2", u8"Float1x3", 
-  u8"Float1x4", u8"Float2x1", u8"Float2x2", u8"Float2x3", u8"Float2x4", 
-  u8"Float3x1", u8"Float3x2", u8"Float3x3", u8"Float3x4", u8"Float4x1", 
-  u8"Float4x2", u8"Float4x3", u8"Float4x4", u8"For", u8"Groupshared", u8"Global", 
-  u8"Half", u8"Half1", u8"Half2", u8"Half3", u8"Half4", u8"Half1x1", u8"Half1x2", 
-  u8"Half1x3", u8"Half1x4", u8"Half2x1", u8"Half2x2", u8"Half2x3", u8"Half2x4", 
-  u8"Half3x1", u8"Half3x2", u8"Half3x3", u8"Half3x4", u8"Half4x1", u8"Half4x2", 
-  u8"Half4x3", u8"Half4x4", u8"If", u8"In", u8"Inline", u8"Rootconstant", 
-  u8"Inout", u8"InputPatch", u8"Int", u8"Int1", u8"Int2", u8"Int3", u8"Int4", 
-  u8"Int1x1", u8"Int1x2", u8"Int1x3", u8"Int1x4", u8"Int2x1", u8"Int2x2", 
-  u8"Int2x3", u8"Int2x4", u8"Int3x1", u8"Int3x2", u8"Int3x3", u8"Int3x4", 
-  u8"Int4x1", u8"Int4x2", u8"Int4x3", u8"Int4x4", u8"Interface", u8"Line_", 
-  u8"LineAdj", u8"Linear", u8"LineStream", u8"Long", u8"Matrix", u8"Nointerpolation", 
-  u8"Noperspective", u8"Option", u8"Out", u8"OutputPatch", u8"Override", 
-  u8"Partial", u8"Packoffset", u8"Point", u8"PointStream", u8"Precise", 
-  u8"RasterizerOrderedBuffer", u8"RasterizerOrderedByteAddressBuffer", u8"RasterizerOrderedStructuredBuffer", 
-  u8"RasterizerOrderedTexture1D", u8"RasterizerOrderedTexture1DArray", u8"RasterizerOrderedTexture2D", 
-  u8"RasterizerOrderedTexture2DArray", u8"RasterizerOrderedTexture3D", u8"RayDesc", 
-  u8"RaytracingAccelerationStructure", u8"Register", u8"Return", u8"RowMajor", 
-  u8"RWBuffer", u8"RWByteAddressBuffer", u8"RWStructuredBuffer", u8"RWTexture1D", 
-  u8"RWTexture1DArray", u8"RWTexture2D", u8"RWTexture2DArray", u8"RWTexture3D", 
-  u8"Sample", u8"Sampler", u8"SamplerCapitalS", u8"SamplerComparisonState", 
-  u8"SamplerState", u8"Shared", u8"Static", u8"Struct", u8"StructuredBuffer", 
-  u8"SubpassInput", u8"SubpassInputMS", u8"Switch", u8"Texture1D", u8"Texture1DArray", 
-  u8"Texture2D", u8"Texture2DArray", u8"Texture2DMS", u8"Texture2DMSArray", 
-  u8"Texture3D", u8"TextureCube", u8"TextureCubeArray", u8"Triangle", u8"TriangleAdj", 
-  u8"TriangleStream", u8"Uniform", u8"Uint", u8"UnsignedInt", u8"Uint1", 
-  u8"Uint2", u8"Uint3", u8"Uint4", u8"Uint1x1", u8"Uint1x2", u8"Uint1x3", 
-  u8"Uint1x4", u8"Uint2x1", u8"Uint2x2", u8"Uint2x3", u8"Uint2x4", u8"Uint3x1", 
-  u8"Uint3x2", u8"Uint3x3", u8"Uint3x4", u8"Uint4x1", u8"Uint4x2", u8"Uint4x3", 
-  u8"Uint4x4", u8"Dword", u8"Dword1", u8"Dword2", u8"Dword3", u8"Dword4", 
-  u8"Dword1x1", u8"Dword1x2", u8"Dword1x3", u8"Dword1x4", u8"Dword2x1", 
-  u8"Dword2x2", u8"Dword2x3", u8"Dword2x4", u8"Dword3x1", u8"Dword3x2", 
-  u8"Dword3x3", u8"Dword3x4", u8"Dword4x1", u8"Dword4x2", u8"Dword4x3", 
-  u8"Dword4x4", u8"Vector", u8"Volatile", u8"Void", u8"While", u8"StateObjectConfig", 
-  u8"LocalRootSignature", u8"GlobalRootSignature", u8"SubobjectToExportsAssociation", 
-  u8"RaytracingShaderConfig", u8"RaytracingPipelineConfig", u8"RaytracingPipelineConfig1", 
-  u8"TriangleHitGroup", u8"ProceduralPrimitiveHitGroup", u8"ADDRESS_U", 
-  u8"ADDRESS_V", u8"ADDRESS_W", u8"BORDER_COLOR", u8"MIN_FILTER", u8"MAG_FILTER", 
-  u8"MIP_FILTER", u8"MAX_ANISOTROPY", u8"MAX_LOD", u8"MIN_LOD", u8"MIP_LOD_BIAS", 
-  u8"COMPARISON_FUNC", u8"REDUCTION_TYPE", u8"FILTER_MODE_POINT", u8"FILTER_MODE_LINEAR", 
-  u8"REDUCTION_TYPE_FILTER", u8"REDUCTION_TYPE_COMPARISON", u8"REDUCTION_TYPE_MINIMUM", 
-  u8"REDUCTION_TYPE_MAXIMUM", u8"ADDRESS_MODE_WRAP", u8"ADDRESS_MODE_MIRROR", 
-  u8"ADDRESS_MODE_CLAMP", u8"ADDRESS_MODE_BORDER", u8"ADDRESS_MODE_MIRROR_ONCE", 
-  u8"COMPARISON_FUNCTION_NEVER", u8"COMPARISON_FUNCTION_LESS", u8"COMPARISON_FUNCTION_EQUAL", 
-  u8"COMPARISON_FUNCTION_LESS_EQUAL", u8"COMPARISON_FUNCTION_GREATER", u8"COMPARISON_FUNCTION_NOT_EQUAL", 
-  u8"COMPARISON_FUNCTION_GREATER_EQUAL", u8"COMPARISON_FUNCTION_ALWAYS", 
-  u8"BORDER_COLOR_OPAQUE_BLACK", u8"BORDER_COLOR_TRANSPARENT_BLACK", u8"BORDER_COLOR_OPAQUE_WHITE", 
-  u8"LeftParen", u8"RightParen", u8"LeftBracket", u8"RightBracket", u8"LeftBrace", 
-  u8"RightBrace", u8"LeftDoubleBracket", u8"Less", u8"LessEqual", u8"Greater", 
-  u8"GreaterEqual", u8"LeftShift", u8"RightShift", u8"Plus", u8"PlusPlus", 
-  u8"Minus", u8"MinusMinus", u8"Star", u8"Div", u8"Mod", u8"And", u8"Or", 
-  u8"AndAnd", u8"OrOr", u8"Caret", u8"Not", u8"Tilde", u8"Question", u8"Colon", 
-  u8"ColonColon", u8"Semi", u8"Comma", u8"Assign", u8"StarAssign", u8"DivAssign", 
-  u8"ModAssign", u8"PlusAssign", u8"MinusAssign", u8"LeftShiftAssign", u8"RightShiftAssign", 
-  u8"AndAssign", u8"XorAssign", u8"OrAssign", u8"Equal", u8"NotEqual", u8"Dot", 
-  u8"True", u8"False", u8"KW_AssociatedType", u8"KW_TypeAlias", u8"KW_Typedef", 
-  u8"KW_Fundamental", u8"KW_Typeof", u8"KW_ext_print_message", u8"KW_ext_print_symbol", 
-  u8"KW_ext_prtsym_fully_qualified", u8"KW_ext_prtsym_least_qualified", 
-  u8"KW_ext_prtsym_constint_value", u8"FrequencyId", u8"ShaderVariantFallback", 
-  u8"ShaderResourceGroupSemantic", u8"ShaderResourceGroup", u8"HLSLSemanticStream", 
-  u8"HLSLSemanticSystem", u8"Identifier", u8"IntegerLiteral", u8"FloatLiteral", 
-  u8"StringLiteral", u8"PragmaDirective", u8"LineDirective", u8"Whitespace", 
-  u8"Newline", u8"BlockComment", u8"LineComment"
+  "", "AppendStructuredBuffer", "Bool", "Bool1", "Bool2", "Bool3", "Bool4", 
+  "Bool1x1", "Bool1x2", "Bool1x3", "Bool1x4", "Bool2x1", "Bool2x2", "Bool2x3", 
+  "Bool2x4", "Bool3x1", "Bool3x2", "Bool3x3", "Bool3x4", "Bool4x1", "Bool4x2", 
+  "Bool4x3", "Bool4x4", "Buffer", "BuiltInTriangleIntersectionAttributes", 
+  "ByteAddressBuffer", "Break", "Case", "CBuffer", "ConstantBuffer", "ConstantBufferCamel", 
+  "Centroid", "Class", "ColumnMajor", "Const", "ConsumeStructuredBuffer", 
+  "Continue", "Default", "Discard", "Do", "Double", "Double1", "Double2", 
+  "Double3", "Double4", "Double1x1", "Double1x2", "Double1x3", "Double1x4", 
+  "Double2x1", "Double2x2", "Double2x3", "Double2x4", "Double3x1", "Double3x2", 
+  "Double3x3", "Double3x4", "Double4x1", "Double4x2", "Double4x3", "Double4x4", 
+  "Else", "Enum", "Extern", "FeedbackTexture2D", "FeedbackTexture2DArray", 
+  "Float", "Float1", "Float2", "Float3", "Float4", "Float1x1", "Float1x2", 
+  "Float1x3", "Float1x4", "Float2x1", "Float2x2", "Float2x3", "Float2x4", 
+  "Float3x1", "Float3x2", "Float3x3", "Float3x4", "Float4x1", "Float4x2", 
+  "Float4x3", "Float4x4", "For", "Groupshared", "Global", "Half", "Half1", 
+  "Half2", "Half3", "Half4", "Half1x1", "Half1x2", "Half1x3", "Half1x4", 
+  "Half2x1", "Half2x2", "Half2x3", "Half2x4", "Half3x1", "Half3x2", "Half3x3", 
+  "Half3x4", "Half4x1", "Half4x2", "Half4x3", "Half4x4", "If", "In", "Inline", 
+  "Rootconstant", "Inout", "InputPatch", "Int", "Int1", "Int2", "Int3", 
+  "Int4", "Int1x1", "Int1x2", "Int1x3", "Int1x4", "Int2x1", "Int2x2", "Int2x3", 
+  "Int2x4", "Int3x1", "Int3x2", "Int3x3", "Int3x4", "Int4x1", "Int4x2", 
+  "Int4x3", "Int4x4", "Interface", "Line_", "LineAdj", "Linear", "LineStream", 
+  "Long", "Matrix", "Nointerpolation", "Noperspective", "Option", "Out", 
+  "OutputPatch", "Override", "Partial", "Packoffset", "Point", "PointStream", 
+  "Precise", "RasterizerOrderedBuffer", "RasterizerOrderedByteAddressBuffer", 
+  "RasterizerOrderedStructuredBuffer", "RasterizerOrderedTexture1D", "RasterizerOrderedTexture1DArray", 
+  "RasterizerOrderedTexture2D", "RasterizerOrderedTexture2DArray", "RasterizerOrderedTexture3D", 
+  "RayDesc", "RaytracingAccelerationStructure", "Register", "Return", "RowMajor", 
+  "RWBuffer", "RWByteAddressBuffer", "RWStructuredBuffer", "RWTexture1D", 
+  "RWTexture1DArray", "RWTexture2D", "RWTexture2DArray", "RWTexture3D", 
+  "Sample", "Sampler", "SamplerCapitalS", "SamplerComparisonState", "SamplerState", 
+  "Shared", "Static", "Struct", "StructuredBuffer", "SubpassInput", "SubpassInputMS", 
+  "Switch", "Texture1D", "Texture1DArray", "Texture2D", "Texture2DArray", 
+  "Texture2DMS", "Texture2DMSArray", "Texture3D", "TextureCube", "TextureCubeArray", 
+  "Triangle", "TriangleAdj", "TriangleStream", "Uniform", "Uint", "UnsignedInt", 
+  "Uint1", "Uint2", "Uint3", "Uint4", "Uint1x1", "Uint1x2", "Uint1x3", "Uint1x4", 
+  "Uint2x1", "Uint2x2", "Uint2x3", "Uint2x4", "Uint3x1", "Uint3x2", "Uint3x3", 
+  "Uint3x4", "Uint4x1", "Uint4x2", "Uint4x3", "Uint4x4", "Dword", "Dword1", 
+  "Dword2", "Dword3", "Dword4", "Dword1x1", "Dword1x2", "Dword1x3", "Dword1x4", 
+  "Dword2x1", "Dword2x2", "Dword2x3", "Dword2x4", "Dword3x1", "Dword3x2", 
+  "Dword3x3", "Dword3x4", "Dword4x1", "Dword4x2", "Dword4x3", "Dword4x4", 
+  "Vector", "Volatile", "Void", "While", "StateObjectConfig", "LocalRootSignature", 
+  "GlobalRootSignature", "SubobjectToExportsAssociation", "RaytracingShaderConfig", 
+  "RaytracingPipelineConfig", "RaytracingPipelineConfig1", "TriangleHitGroup", 
+  "ProceduralPrimitiveHitGroup", "ADDRESS_U", "ADDRESS_V", "ADDRESS_W", 
+  "BORDER_COLOR", "MIN_FILTER", "MAG_FILTER", "MIP_FILTER", "MAX_ANISOTROPY", 
+  "MAX_LOD", "MIN_LOD", "MIP_LOD_BIAS", "COMPARISON_FUNC", "REDUCTION_TYPE", 
+  "FILTER_MODE_POINT", "FILTER_MODE_LINEAR", "REDUCTION_TYPE_FILTER", "REDUCTION_TYPE_COMPARISON", 
+  "REDUCTION_TYPE_MINIMUM", "REDUCTION_TYPE_MAXIMUM", "ADDRESS_MODE_WRAP", 
+  "ADDRESS_MODE_MIRROR", "ADDRESS_MODE_CLAMP", "ADDRESS_MODE_BORDER", "ADDRESS_MODE_MIRROR_ONCE", 
+  "COMPARISON_FUNCTION_NEVER", "COMPARISON_FUNCTION_LESS", "COMPARISON_FUNCTION_EQUAL", 
+  "COMPARISON_FUNCTION_LESS_EQUAL", "COMPARISON_FUNCTION_GREATER", "COMPARISON_FUNCTION_NOT_EQUAL", 
+  "COMPARISON_FUNCTION_GREATER_EQUAL", "COMPARISON_FUNCTION_ALWAYS", "BORDER_COLOR_OPAQUE_BLACK", 
+  "BORDER_COLOR_TRANSPARENT_BLACK", "BORDER_COLOR_OPAQUE_WHITE", "LeftParen", 
+  "RightParen", "LeftBracket", "RightBracket", "LeftBrace", "RightBrace", 
+  "LeftDoubleBracket", "Less", "LessEqual", "Greater", "GreaterEqual", "LeftShift", 
+  "RightShift", "Plus", "PlusPlus", "Minus", "MinusMinus", "Star", "Div", 
+  "Mod", "And", "Or", "AndAnd", "OrOr", "Caret", "Not", "Tilde", "Question", 
+  "Colon", "ColonColon", "Semi", "Comma", "Assign", "StarAssign", "DivAssign", 
+  "ModAssign", "PlusAssign", "MinusAssign", "LeftShiftAssign", "RightShiftAssign", 
+  "AndAssign", "XorAssign", "OrAssign", "Equal", "NotEqual", "Dot", "True", 
+  "False", "KW_AssociatedType", "KW_TypeAlias", "KW_Typedef", "KW_Fundamental", 
+  "KW_Typeof", "KW_ext_print_message", "KW_ext_print_symbol", "KW_ext_prtsym_fully_qualified", 
+  "KW_ext_prtsym_least_qualified", "KW_ext_prtsym_constint_value", "FrequencyId", 
+  "ShaderVariantFallback", "ShaderResourceGroupSemantic", "ShaderResourceGroup", 
+  "HLSLSemanticStream", "HLSLSemanticSystem", "Identifier", "IntegerLiteral", 
+  "FloatLiteral", "StringLiteral", "PragmaDirective", "LineDirective", "Whitespace", 
+  "Newline", "BlockComment", "LineComment"
 };
 
 dfa::Vocabulary azslLexer::_vocabulary(_literalNames, _symbolicNames);
@@ -328,7 +302,7 @@ azslLexer::Initializer::Initializer() {
     }
 	}
 
-  static uint16_t serializedATNSegment0[] = {
+  static const uint16_t serializedATNSegment0[] = {
     0x3, 0x608b, 0xa72a, 0x8133, 0xb9ed, 0x417c, 0x3be7, 0x7786, 0x5964, 
        0x2, 0x170, 0x11e7, 0x8, 0x1, 0x4, 0x2, 0x9, 0x2, 0x4, 0x3, 0x9, 
        0x3, 0x4, 0x4, 0x9, 0x4, 0x4, 0x5, 0x9, 0x5, 0x4, 0x6, 0x9, 0x6, 
@@ -2168,7 +2142,7 @@ azslLexer::Initializer::Initializer() {
        0x7, 0x6c, 0x2, 0x2, 0x7b0, 0x11a, 0x3, 0x2, 0x2, 0x2, 0x7b1, 0x7b2, 
        0x7, 0x6e, 0x2, 0x2, 0x7b2, 0x7b3, 0x7, 0x6b, 0x2, 0x2, 
   };
-  static uint16_t serializedATNSegment1[] = {
+  static const uint16_t serializedATNSegment1[] = {
     0x7b3, 0x7b4, 0x7, 0x70, 0x2, 0x2, 0x7b4, 0x7b5, 0x7, 0x67, 0x2, 0x2, 
        0x7b5, 0x7b6, 0x7, 0x63, 0x2, 0x2, 0x7b6, 0x7b7, 0x7, 0x74, 0x2, 
        0x2, 0x7b7, 0x11c, 0x3, 0x2, 0x2, 0x2, 0x7b8, 0x7b9, 0x7, 0x4e, 0x2, 

+ 2 - 2
src/generated/azslLexer.h

@@ -1,5 +1,5 @@
 
-// Generated from ../azslLexer.g4 by ANTLR 4.7.1
+// Generated from ../azslLexer.g4 by ANTLR 4.9.3
 
 #pragma once
 
@@ -104,7 +104,7 @@ public:
     PREPROCESSOR = 2
   };
 
-  azslLexer(antlr4::CharStream *input);
+  explicit azslLexer(antlr4::CharStream *input);
   ~azslLexer();
 
   virtual std::string getGrammarFileName() const override;

Файловите разлики са ограничени, защото са твърде много
+ 266 - 48
src/generated/azslParser.cpp


+ 120 - 70
src/generated/azslParser.h

@@ -1,5 +1,5 @@
 
-// Generated from ../azslParser.g4 by ANTLR 4.7.1
+// Generated from ../azslParser.g4 by ANTLR 4.9.3
 
 #pragma once
 
@@ -152,7 +152,7 @@ public:
     RuleBorderColorEnum = 137
   };
 
-  azslParser(antlr4::TokenStream *input);
+  explicit azslParser(antlr4::TokenStream *input);
   ~azslParser();
 
   virtual std::string getGrammarFileName() const override;
@@ -303,8 +303,8 @@ public:
 
   class  CompilationUnitContext : public antlr4::ParserRuleContext {
   public:
-    azslParser::TopLevelDeclarationContext *topLevelDeclarationContext = nullptr;;
-    std::vector<TopLevelDeclarationContext *> Declarations;;
+    azslParser::TopLevelDeclarationContext *topLevelDeclarationContext = nullptr;
+    std::vector<TopLevelDeclarationContext *> Declarations;
     CompilationUnitContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *EOF();
@@ -383,11 +383,13 @@ public:
 
   class  NestedNameSpecifierContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *GlobalSROToken = nullptr;;
+    antlr4::Token *GlobalSROToken = nullptr;
     NestedNameSpecifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     std::vector<antlr4::tree::TerminalNode *> Identifier();
     antlr4::tree::TerminalNode* Identifier(size_t i);
+    std::vector<antlr4::tree::TerminalNode *> ColonColon();
+    antlr4::tree::TerminalNode* ColonColon(size_t i);
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
@@ -412,8 +414,8 @@ public:
 
   class  ClassDefinitionContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *Name = nullptr;;
-    azslParser::BaseListContext *BaseListOpt = nullptr;;
+    antlr4::Token *Name = nullptr;
+    azslParser::BaseListContext *BaseListOpt = nullptr;
     ClassDefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *Class();
@@ -482,7 +484,7 @@ public:
 
   class  StructDefinitionContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *Name = nullptr;;
+    antlr4::Token *Name = nullptr;
     StructDefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *Struct();
@@ -549,8 +551,8 @@ public:
 
   class  EnumDefinitionContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *Name = nullptr;;
-    azslParser::EnumeratorListDefinitionContext *List = nullptr;;
+    antlr4::Token *Name = nullptr;
+    azslParser::EnumeratorListDefinitionContext *List = nullptr;
     EnumDefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     EnumKeyContext *enumKey();
@@ -570,7 +572,7 @@ public:
   public:
     EnumKeyContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    EnumKeyContext() : antlr4::ParserRuleContext() { }
+    EnumKeyContext() = default;
     void copyFrom(EnumKeyContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -603,12 +605,14 @@ public:
 
   class  EnumeratorListDefinitionContext : public antlr4::ParserRuleContext {
   public:
-    azslParser::EnumeratorDeclaratorContext *enumeratorDeclaratorContext = nullptr;;
-    std::vector<EnumeratorDeclaratorContext *> Enumerators;;
+    azslParser::EnumeratorDeclaratorContext *enumeratorDeclaratorContext = nullptr;
+    std::vector<EnumeratorDeclaratorContext *> Enumerators;
     EnumeratorListDefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     std::vector<EnumeratorDeclaratorContext *> enumeratorDeclarator();
     EnumeratorDeclaratorContext* enumeratorDeclarator(size_t i);
+    std::vector<antlr4::tree::TerminalNode *> Comma();
+    antlr4::tree::TerminalNode* Comma(size_t i);
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
@@ -619,11 +623,12 @@ public:
 
   class  EnumeratorDeclaratorContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *Name = nullptr;;
-    azslParser::ExpressionContext *Value = nullptr;;
+    antlr4::Token *Name = nullptr;
+    azslParser::ExpressionContext *Value = nullptr;
     EnumeratorDeclaratorContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *Identifier();
+    antlr4::tree::TerminalNode *Assign();
     ExpressionContext *expression();
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
@@ -665,7 +670,7 @@ public:
 
   class  InterfaceDefinitionContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *Name = nullptr;;
+    antlr4::Token *Name = nullptr;
     InterfaceDefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *Interface();
@@ -699,10 +704,12 @@ public:
 
   class  ConstantBufferTemplatedContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *CBCoreType = nullptr;;
-    azslParser::TypeContext *GenericTypeName = nullptr;;
+    antlr4::Token *CBCoreType = nullptr;
+    azslParser::TypeContext *GenericTypeName = nullptr;
     ConstantBufferTemplatedContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
+    antlr4::tree::TerminalNode *Less();
+    antlr4::tree::TerminalNode *Greater();
     TypeContext *type();
     antlr4::tree::TerminalNode *ConstantBuffer();
     antlr4::tree::TerminalNode *ConstantBufferCamel();
@@ -747,7 +754,7 @@ public:
 
   class  FunctionParamContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *Name = nullptr;;
+    antlr4::Token *Name = nullptr;
     FunctionParamContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     StorageFlagsContext *storageFlags();
@@ -766,7 +773,7 @@ public:
 
   class  HlslSemanticContext : public antlr4::ParserRuleContext {
   public:
-    azslParser::HlslSemanticNameContext *Name = nullptr;;
+    azslParser::HlslSemanticNameContext *Name = nullptr;
     HlslSemanticContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *Colon();
@@ -829,7 +836,7 @@ public:
   public:
     AttributeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    AttributeContext() : antlr4::ParserRuleContext() { }
+    AttributeContext() = default;
     void copyFrom(AttributeContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -887,8 +894,8 @@ public:
 
   class  AttributeSpecifierSequenceContext : public antlr4::ParserRuleContext {
   public:
-    azslParser::AttributeContext *attributeContext = nullptr;;
-    std::vector<AttributeContext *> Attributes;;
+    azslParser::AttributeContext *attributeContext = nullptr;
+    std::vector<AttributeContext *> Attributes;
     AttributeSpecifierSequenceContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *LeftDoubleBracket();
@@ -922,8 +929,8 @@ public:
 
   class  BlockContext : public antlr4::ParserRuleContext {
   public:
-    azslParser::StatementContext *statementContext = nullptr;;
-    std::vector<StatementContext *> Stmts;;
+    azslParser::StatementContext *statementContext = nullptr;
+    std::vector<StatementContext *> Stmts;
     BlockContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *LeftBrace();
@@ -971,7 +978,7 @@ public:
   public:
     SwitchLabelContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    SwitchLabelContext() : antlr4::ParserRuleContext() { }
+    SwitchLabelContext() = default;
     void copyFrom(SwitchLabelContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -1040,7 +1047,7 @@ public:
   public:
     EmbeddedStatementContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    EmbeddedStatementContext() : antlr4::ParserRuleContext() { }
+    EmbeddedStatementContext() = default;
     void copyFrom(EmbeddedStatementContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -1231,7 +1238,7 @@ public:
 
   class  ElseClauseContext : public antlr4::ParserRuleContext {
   public:
-    azslParser::EmbeddedStatementContext *Stmt = nullptr;;
+    azslParser::EmbeddedStatementContext *Stmt = nullptr;
     ElseClauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *Else();
@@ -1248,7 +1255,7 @@ public:
   public:
     ExpressionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    ExpressionContext() : antlr4::ParserRuleContext() { }
+    ExpressionContext() = default;
     void copyFrom(ExpressionContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -1427,7 +1434,7 @@ public:
   public:
     ExpressionExtContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    ExpressionExtContext() : antlr4::ParserRuleContext() { }
+    ExpressionExtContext() = default;
     void copyFrom(ExpressionExtContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -1597,8 +1604,8 @@ public:
 
   class  VariableDeclaratorsContext : public antlr4::ParserRuleContext {
   public:
-    azslParser::NamedVariableDeclaratorContext *namedVariableDeclaratorContext = nullptr;;
-    std::vector<NamedVariableDeclaratorContext *> VarDecls;;
+    azslParser::NamedVariableDeclaratorContext *namedVariableDeclaratorContext = nullptr;
+    std::vector<NamedVariableDeclaratorContext *> VarDecls;
     VariableDeclaratorsContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     std::vector<NamedVariableDeclaratorContext *> namedVariableDeclarator();
@@ -1615,10 +1622,10 @@ public:
 
   class  UnnamedVariableDeclaratorContext : public antlr4::ParserRuleContext {
   public:
-    azslParser::ArrayRankSpecifierContext *arrayRankSpecifierContext = nullptr;;
-    std::vector<ArrayRankSpecifierContext *> ArrayRankSpecifiers;;
-    azslParser::HlslSemanticContext *SemanticOpt = nullptr;;
-    azslParser::RegisterAllocationContext *RegisterAllocation = nullptr;;
+    azslParser::ArrayRankSpecifierContext *arrayRankSpecifierContext = nullptr;
+    std::vector<ArrayRankSpecifierContext *> ArrayRankSpecifiers;
+    azslParser::HlslSemanticContext *SemanticOpt = nullptr;
+    azslParser::RegisterAllocationContext *RegisterAllocation = nullptr;
     UnnamedVariableDeclaratorContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     PackOffsetNodeContext *packOffsetNode();
@@ -1637,7 +1644,7 @@ public:
 
   class  NamedVariableDeclaratorContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *Name = nullptr;;
+    antlr4::Token *Name = nullptr;
     NamedVariableDeclaratorContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     UnnamedVariableDeclaratorContext *unnamedVariableDeclarator();
@@ -1654,6 +1661,7 @@ public:
   public:
     VariableInitializerContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
+    antlr4::tree::TerminalNode *Assign();
     StandardVariableInitializerContext *standardVariableInitializer();
     SamplerBodyDeclarationContext *samplerBodyDeclaration();
 
@@ -1666,10 +1674,12 @@ public:
 
   class  StandardVariableInitializerContext : public antlr4::ParserRuleContext {
   public:
-    azslParser::ExpressionContext *Expr = nullptr;;
+    azslParser::ExpressionContext *Expr = nullptr;
     StandardVariableInitializerContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
+    antlr4::tree::TerminalNode *LeftBrace();
     ArrayElementInitializersContext *arrayElementInitializers();
+    antlr4::tree::TerminalNode *RightBrace();
     ExpressionContext *expression();
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
@@ -1697,7 +1707,7 @@ public:
 
   class  ArrayRankSpecifierContext : public antlr4::ParserRuleContext {
   public:
-    azslParser::ExpressionContext *Dimension = nullptr;;
+    azslParser::ExpressionContext *Dimension = nullptr;
     ArrayRankSpecifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *LeftBracket();
@@ -1713,9 +1723,9 @@ public:
 
   class  PackOffsetNodeContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *PackoffsetKeyword = nullptr;;
-    antlr4::Token *PackOffsetRegister = nullptr;;
-    antlr4::Token *PackOffsetComponent = nullptr;;
+    antlr4::Token *PackoffsetKeyword = nullptr;
+    antlr4::Token *PackOffsetRegister = nullptr;
+    antlr4::Token *PackOffsetComponent = nullptr;
     PackOffsetNodeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *Colon();
@@ -1926,8 +1936,8 @@ public:
 
   class  PatchPredefinedTypeContext : public antlr4::ParserRuleContext {
   public:
-    azslParser::UserDefinedTypeContext *Name = nullptr;;
-    antlr4::Token *ControlPoints = nullptr;;
+    azslParser::UserDefinedTypeContext *Name = nullptr;
+    antlr4::Token *ControlPoints = nullptr;
     PatchPredefinedTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     PatchTypeContext *patchType();
@@ -2134,7 +2144,7 @@ public:
 
   class  MsTexturePredefinedTypeContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *Samples = nullptr;;
+    antlr4::Token *Samples = nullptr;
     MsTexturePredefinedTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     TextureTypeMSContext *textureTypeMS();
@@ -2194,7 +2204,7 @@ public:
 
   class  GenericVectorTypeContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *Size_ = nullptr;;
+    antlr4::Token *Size_ = nullptr;
     GenericVectorTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *Vector();
@@ -2367,8 +2377,8 @@ public:
 
   class  GenericMatrixPredefinedTypeContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *Rows_ = nullptr;;
-    antlr4::Token *Cols_ = nullptr;;
+    antlr4::Token *Rows_ = nullptr;
+    antlr4::Token *Cols_ = nullptr;
     GenericMatrixPredefinedTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *Matrix();
@@ -2389,7 +2399,7 @@ public:
 
   class  RegisterAllocationContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *Address = nullptr;;
+    antlr4::Token *Address = nullptr;
     RegisterAllocationContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *Colon();
@@ -2407,9 +2417,9 @@ public:
 
   class  SamplerStatePropertyContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *Name = nullptr;;
-    antlr4::Token *EqualsToken = nullptr;;
-    azslParser::ExpressionContext *Expr = nullptr;;
+    antlr4::Token *Name = nullptr;
+    antlr4::Token *EqualsToken = nullptr;
+    azslParser::ExpressionContext *Expr = nullptr;
     SamplerStatePropertyContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *Semi();
@@ -2444,8 +2454,8 @@ public:
 
   class  LeadingTypeFunctionSignatureContext : public antlr4::ParserRuleContext {
   public:
-    azslParser::UserDefinedTypeContext *ClassName = nullptr;;
-    antlr4::Token *Name = nullptr;;
+    azslParser::UserDefinedTypeContext *ClassName = nullptr;
+    antlr4::Token *Name = nullptr;
     LeadingTypeFunctionSignatureContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     StorageFlagsContext *storageFlags();
@@ -2525,7 +2535,7 @@ public:
 
   class  AssociatedTypeDeclarationContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *Name = nullptr;;
+    antlr4::Token *Name = nullptr;
     AssociatedTypeDeclarationContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *KW_AssociatedType();
@@ -2542,8 +2552,8 @@ public:
 
   class  TypedefStatementContext : public antlr4::ParserRuleContext {
   public:
-    azslParser::FunctionTypeContext *ExistingType = nullptr;;
-    antlr4::Token *NewTypeName = nullptr;;
+    azslParser::FunctionTypeContext *ExistingType = nullptr;
+    antlr4::Token *NewTypeName = nullptr;
     TypedefStatementContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *KW_Typedef();
@@ -2560,11 +2570,12 @@ public:
 
   class  TypealiasStatementContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *NewTypeName = nullptr;;
-    azslParser::FunctionTypeContext *ExistingType = nullptr;;
+    antlr4::Token *NewTypeName = nullptr;
+    azslParser::FunctionTypeContext *ExistingType = nullptr;
     TypealiasStatementContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *KW_TypeAlias();
+    antlr4::tree::TerminalNode *Assign();
     antlr4::tree::TerminalNode *Semi();
     antlr4::tree::TerminalNode *Identifier();
     FunctionTypeContext *functionType();
@@ -2592,13 +2603,16 @@ public:
 
   class  TypeofExpressionContext : public antlr4::ParserRuleContext {
   public:
-    azslParser::ExpressionExtContext *Expr = nullptr;;
-    azslParser::IdExpressionContext *SubQualification = nullptr;;
+    azslParser::ExpressionExtContext *Expr = nullptr;
+    azslParser::IdExpressionContext *SubQualification = nullptr;
     TypeofExpressionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *KW_Typeof();
+    antlr4::tree::TerminalNode *LeftParen();
+    antlr4::tree::TerminalNode *RightParen();
     FunctionTypeContext *functionType();
     ExpressionExtContext *expressionExt();
+    antlr4::tree::TerminalNode *ColonColon();
     IdExpressionContext *idExpression();
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
@@ -2612,8 +2626,12 @@ public:
   public:
     GenericParameterListContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
+    antlr4::tree::TerminalNode *Less();
     std::vector<GenericTypeDefinitionContext *> genericTypeDefinition();
     GenericTypeDefinitionContext* genericTypeDefinition(size_t i);
+    antlr4::tree::TerminalNode *Greater();
+    std::vector<antlr4::tree::TerminalNode *> Comma();
+    antlr4::tree::TerminalNode* Comma(size_t i);
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
@@ -2624,7 +2642,7 @@ public:
 
   class  GenericTypeDefinitionContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *GenericTypeName = nullptr;;
+    antlr4::Token *GenericTypeName = nullptr;
     GenericTypeDefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *Identifier();
@@ -2641,6 +2659,7 @@ public:
   public:
     GenericConstraintContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
+    antlr4::tree::TerminalNode *Colon();
     UserDefinedTypeContext *userDefinedType();
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
@@ -2721,13 +2740,16 @@ public:
 
   class  CompilerExtensionStatementContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *Message = nullptr;;
+    antlr4::Token *Message = nullptr;
     CompilerExtensionStatementContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *KW_ext_print_message();
+    antlr4::tree::TerminalNode *LeftParen();
+    antlr4::tree::TerminalNode *RightParen();
     antlr4::tree::TerminalNode *Semi();
     antlr4::tree::TerminalNode *StringLiteral();
     antlr4::tree::TerminalNode *KW_ext_print_symbol();
+    antlr4::tree::TerminalNode *Comma();
     antlr4::tree::TerminalNode *KW_ext_prtsym_fully_qualified();
     antlr4::tree::TerminalNode *KW_ext_prtsym_least_qualified();
     antlr4::tree::TerminalNode *KW_ext_prtsym_constint_value();
@@ -2743,8 +2765,8 @@ public:
 
   class  SrgDefinitionContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *Name = nullptr;;
-    antlr4::Token *Semantic = nullptr;;
+    antlr4::Token *Name = nullptr;
+    antlr4::Token *Semantic = nullptr;
     SrgDefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *ShaderResourceGroup();
@@ -2753,6 +2775,7 @@ public:
     std::vector<antlr4::tree::TerminalNode *> Identifier();
     antlr4::tree::TerminalNode* Identifier(size_t i);
     antlr4::tree::TerminalNode *Partial();
+    antlr4::tree::TerminalNode *Colon();
     std::vector<SrgMemberDeclarationContext *> srgMemberDeclaration();
     SrgMemberDeclarationContext* srgMemberDeclaration(size_t i);
 
@@ -2799,7 +2822,7 @@ public:
 
   class  SrgSemanticContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *Name = nullptr;;
+    antlr4::Token *Name = nullptr;
     SrgSemanticContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *ShaderResourceGroupSemantic();
@@ -2846,12 +2869,13 @@ public:
 
   class  SrgSemanticMemberDeclarationContext : public antlr4::ParserRuleContext {
   public:
-    antlr4::Token *Frequency = nullptr;;
-    azslParser::LiteralContext *FrequencyValue = nullptr;;
-    antlr4::Token *VariantFallback = nullptr;;
-    azslParser::LiteralContext *VariantFallbackValue = nullptr;;
+    antlr4::Token *Frequency = nullptr;
+    azslParser::LiteralContext *FrequencyValue = nullptr;
+    antlr4::Token *VariantFallback = nullptr;
+    azslParser::LiteralContext *VariantFallbackValue = nullptr;
     SrgSemanticMemberDeclarationContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
+    antlr4::tree::TerminalNode *Assign();
     antlr4::tree::TerminalNode *Semi();
     antlr4::tree::TerminalNode *FrequencyId();
     LiteralContext *literal();
@@ -2910,7 +2934,9 @@ public:
     MaxAnisotropyOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *MAX_ANISOTROPY();
+    antlr4::tree::TerminalNode *Assign();
     antlr4::tree::TerminalNode *IntegerLiteral();
+    antlr4::tree::TerminalNode *Semi();
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
@@ -2924,7 +2950,9 @@ public:
     MinFilterOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *MIN_FILTER();
+    antlr4::tree::TerminalNode *Assign();
     FilterModeEnumContext *filterModeEnum();
+    antlr4::tree::TerminalNode *Semi();
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
@@ -2938,7 +2966,9 @@ public:
     MagFilterOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *MAG_FILTER();
+    antlr4::tree::TerminalNode *Assign();
     FilterModeEnumContext *filterModeEnum();
+    antlr4::tree::TerminalNode *Semi();
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
@@ -2952,7 +2982,9 @@ public:
     MipFilterOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *MIP_FILTER();
+    antlr4::tree::TerminalNode *Assign();
     FilterModeEnumContext *filterModeEnum();
+    antlr4::tree::TerminalNode *Semi();
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
@@ -2966,7 +2998,9 @@ public:
     ReductionTypeOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *REDUCTION_TYPE();
+    antlr4::tree::TerminalNode *Assign();
     ReductionTypeEnumContext *reductionTypeEnum();
+    antlr4::tree::TerminalNode *Semi();
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
@@ -2980,7 +3014,9 @@ public:
     ComparisonFunctionOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *COMPARISON_FUNC();
+    antlr4::tree::TerminalNode *Assign();
     ComparisonFunctionEnumContext *comparisonFunctionEnum();
+    antlr4::tree::TerminalNode *Semi();
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
@@ -2994,7 +3030,9 @@ public:
     AddressUOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *ADDRESS_U();
+    antlr4::tree::TerminalNode *Assign();
     AddressModeEnumContext *addressModeEnum();
+    antlr4::tree::TerminalNode *Semi();
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
@@ -3008,7 +3046,9 @@ public:
     AddressVOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *ADDRESS_V();
+    antlr4::tree::TerminalNode *Assign();
     AddressModeEnumContext *addressModeEnum();
+    antlr4::tree::TerminalNode *Semi();
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
@@ -3022,7 +3062,9 @@ public:
     AddressWOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *ADDRESS_W();
+    antlr4::tree::TerminalNode *Assign();
     AddressModeEnumContext *addressModeEnum();
+    antlr4::tree::TerminalNode *Semi();
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
@@ -3036,7 +3078,9 @@ public:
     MinLodOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *MIN_LOD();
+    antlr4::tree::TerminalNode *Assign();
     antlr4::tree::TerminalNode *FloatLiteral();
+    antlr4::tree::TerminalNode *Semi();
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
@@ -3050,7 +3094,9 @@ public:
     MaxLodOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *MAX_LOD();
+    antlr4::tree::TerminalNode *Assign();
     antlr4::tree::TerminalNode *FloatLiteral();
+    antlr4::tree::TerminalNode *Semi();
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
@@ -3064,7 +3110,9 @@ public:
     MipLodBiasOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *MIP_LOD_BIAS();
+    antlr4::tree::TerminalNode *Assign();
     antlr4::tree::TerminalNode *FloatLiteral();
+    antlr4::tree::TerminalNode *Semi();
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
@@ -3078,7 +3126,9 @@ public:
     BorderColorOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
     virtual size_t getRuleIndex() const override;
     antlr4::tree::TerminalNode *BORDER_COLOR();
+    antlr4::tree::TerminalNode *Assign();
     BorderColorEnumContext *borderColorEnum();
+    antlr4::tree::TerminalNode *Semi();
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;

+ 1 - 1
src/generated/azslParserBaseListener.cpp

@@ -1,5 +1,5 @@
 
-// Generated from ../azslParser.g4 by ANTLR 4.7.1
+// Generated from ../azslParser.g4 by ANTLR 4.9.3
 
 
 #include "azslParserBaseListener.h"

+ 1 - 1
src/generated/azslParserBaseListener.h

@@ -1,5 +1,5 @@
 
-// Generated from ../azslParser.g4 by ANTLR 4.7.1
+// Generated from ../azslParser.g4 by ANTLR 4.9.3
 
 #pragma once
 

+ 1 - 1
src/generated/azslParserListener.cpp

@@ -1,5 +1,5 @@
 
-// Generated from ../azslParser.g4 by ANTLR 4.7.1
+// Generated from ../azslParser.g4 by ANTLR 4.9.3
 
 
 #include "azslParserListener.h"

+ 1 - 1
src/generated/azslParserListener.h

@@ -1,5 +1,5 @@
 
-// Generated from ../azslParser.g4 by ANTLR 4.7.1
+// Generated from ../azslParser.g4 by ANTLR 4.9.3
 
 #pragma once
 

+ 5 - 5
src/regenerate_azsl_antlr.bat

@@ -2,10 +2,10 @@
 setlocal
 cd %~dp0
 cd generated
-java -cp "../external/antlr-4.7.1-complete.jar" org.antlr.v4.Tool ../azslLexer.g4 -o java
-java -cp "../external/antlr-4.7.1-complete.jar" org.antlr.v4.Tool ../azslParser.g4 -o java
-java -cp "../external/antlr-4.7.1-complete.jar" org.antlr.v4.Tool ../azslLexer.g4 -Dlanguage=Cpp
-java -cp "../external/antlr-4.7.1-complete.jar" org.antlr.v4.Tool ../azslParser.g4 -Dlanguage=Cpp
+java -cp "../external/antlr-4.9.3-complete.jar" org.antlr.v4.Tool ../azslLexer.g4 -o java
+java -cp "../external/antlr-4.9.3-complete.jar" org.antlr.v4.Tool ../azslParser.g4 -o java
+java -cp "../external/antlr-4.9.3-complete.jar" org.antlr.v4.Tool ../azslLexer.g4 -Dlanguage=Cpp
+java -cp "../external/antlr-4.9.3-complete.jar" org.antlr.v4.Tool ../azslParser.g4 -Dlanguage=Cpp
 cd java
 @REM for grun
-javac -cp "../../external/antlr-4.7.1-complete.jar" azsl*.java
+javac -cp "../../external/antlr-4.9.3-complete.jar" azsl*.java

Някои файлове не бяха показани, защото твърде много файлове са промени