private BoundNode BindGlobalDeclaration(SyntaxNode declaration, Symbol parent)
{
switch (declaration.Kind)
{
case SyntaxKind.VariableDeclarationStatement:
return BindVariableDeclarationStatement((VariableDeclarationStatementSyntax) declaration, parent);
case SyntaxKind.FunctionDeclaration:
return BindFunctionDeclaration((FunctionDeclarationSyntax) declaration, parent);
case SyntaxKind.FunctionDefinition:
return BindFunctionDefinition((FunctionDefinitionSyntax) declaration, parent);
case SyntaxKind.ConstantBufferDeclaration:
return BindConstantBufferDeclaration((ConstantBufferSyntax) declaration);
case SyntaxKind.TypeDeclarationStatement:
return BindTypeDeclaration((TypeDeclarationStatementSyntax) declaration, parent);
case SyntaxKind.Namespace:
return BindNamespace((NamespaceSyntax) declaration);
case SyntaxKind.TechniqueDeclaration:
return BindTechniqueDeclaration((TechniqueSyntax) declaration);
case SyntaxKind.TypedefStatement:
return BindTypedefStatement((TypedefStatementSyntax) declaration);
case SyntaxKind.EmptyStatement:
return BindEmptyStatement((EmptyStatementSyntax) declaration);
default:
throw new ArgumentOutOfRangeException(declaration.Kind.ToString());
}
}