aboutsummaryrefslogtreecommitdiff
path: root/hlsl/hlslGrammar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'hlsl/hlslGrammar.cpp')
-rwxr-xr-xhlsl/hlslGrammar.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp
index e6f4b603..079a4690 100755
--- a/hlsl/hlslGrammar.cpp
+++ b/hlsl/hlslGrammar.cpp
@@ -85,6 +85,19 @@ bool HlslGrammar::acceptIdentifier(HlslToken& idToken)
return true;
}
+ // Even though "sample" is a keyword (for interpolation modifiers), it IS still accepted as
+ // an identifier. This appears to be a solitary exception: other interp modifier keywords such
+ // as "linear" or "centroid" NOT valid identifiers. This code special cases "sample",
+ // so e.g, "int sample;" is accepted.
+ if (peekTokenClass(EHTokSample)) {
+ idToken.string = NewPoolTString("sample");
+ idToken.tokenClass = EHTokIdentifier;
+ idToken.symbol = nullptr;
+ idToken.loc = token.loc;
+ advanceToken();
+ return true;
+ }
+
return false;
}