Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
Ast.Extensions.cs
Go to the documentation of this file.
1 // Copyright (c) 2014 Silicon Studio Corp. (http://siliconstudio.co.jp)
2 // This file is distributed under GPL v3. See LICENSE.md for details.
3 using System.Collections.Generic;
4 using System.Linq;
5 using SiliconStudio.Shaders.Ast;
6 using SiliconStudio.Shaders.Ast.Hlsl;
7 
8 namespace SiliconStudio.Shaders.Convertor
9 {
10 
11  internal static class AstExtensions
12  {
13  public static Semantic Semantic(this Variable declarator)
14  {
15  return declarator.Qualifiers.OfType<Semantic>().LastOrDefault();
16  }
17 
18  public static Semantic Semantic(this MethodDeclaration methodDeclaration)
19  {
20  return methodDeclaration.Qualifiers.OfType<Semantic>().LastOrDefault();
21  }
22 
23  public static IEnumerable<AttributeDeclaration> Attributes(this MethodDeclaration methodDeclaration)
24  {
25  return methodDeclaration.Attributes.OfType<AttributeDeclaration>();
26  }
27 
28  public static IEnumerable<Variable> Fields(this StructType structType)
29  {
30  return structType.Fields.SelectMany(variable => variable.Instances());
31  }
32  }
33 }
A variable declaration.
Definition: Variable.cs:11