private BoundVariableQualifier BindVariableQualifier(VariableDeclaratorQualifierSyntax syntax)
{
switch (syntax.Kind)
{
case SyntaxKind.SemanticName:
var semanticSyntax = (SemanticSyntax) syntax;
var semanticSymbol = IntrinsicSemantics.AllSemantics.FirstOrDefault(x => string.Equals(x.Name, semanticSyntax.Semantic.Text, StringComparison.OrdinalIgnoreCase))
?? new SemanticSymbol(semanticSyntax.Semantic.Text, string.Empty, false, SemanticUsages.AllShaders);
return new BoundSemantic(semanticSymbol);
case SyntaxKind.RegisterLocation:
return new BoundRegisterLocation();
case SyntaxKind.PackOffsetLocation:
return new BoundPackOffsetLocation();
default:
throw new ArgumentOutOfRangeException(syntax.Kind.ToString());
}
}