Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
HlslParser.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 SiliconStudio.Shaders.Ast;
4 using SiliconStudio.Shaders.Grammar.Hlsl;
5 
6 namespace SiliconStudio.Shaders.Parser.Hlsl
7 {
8  /// <summary>
9  /// HlslParser.
10  /// </summary>
11  public class HlslParser
12  {
13  /// <summary>
14  /// Initializes this instance.
15  /// </summary>
16  static HlslParser()
17  {
18  // Call get parser to force an initialization
19  ShaderParser.GetParser<HlslGrammar>();
20  }
21 
22  /// <summary>
23  /// Initializes this instance.
24  /// </summary>
25  public static void Initialize()
26  {
27  // Call get parser to force an initialization
28  ShaderParser.GetParser<HlslGrammar>();
29  }
30 
31  /// <summary>
32  /// Parses the specified source.
33  /// </summary>
34  /// <param name="source">The source.</param>
35  /// <param name="sourceFileName">Name of the source file.</param>
36  /// <param name="macros">The macros defined for the preprocessor.</param>
37  /// <param name="includeDirectories">The include directories used by the preprocessor..</param>
38  /// <returns>Result of parsing</returns>
39  public static ParsingResult TryPreProcessAndParse(string source, string sourceFileName, ShaderMacro[] macros = null, params string[] includeDirectories)
40  {
41  return ShaderParser.GetParser<HlslGrammar>().TryPreProcessAndParse(source, sourceFileName, macros, includeDirectories);
42  }
43 
44  /// <summary>
45  /// Parses the specified source.
46  /// </summary>
47  /// <param name="source">The source.</param>
48  /// <param name="sourceFileName">Name of the source file.</param>
49  /// <param name="macros">The macros defined for the preprocessor.</param>
50  /// <param name="includeDirectories">The include directories used by the preprocessor..</param>
51  /// <returns>Result of parsing</returns>
52  public static Shader Parse(string source, string sourceFileName, ShaderMacro[] macros = null, params string[] includeDirectories)
53  {
54  return ShaderParser.GetParser<HlslGrammar>().PreProcessAndParse(source, sourceFileName, macros, includeDirectories);
55  }
56  }
57 }
Macro to be used with PreProcessor.
Definition: ShaderMacro.cs:11
static ParsingResult TryPreProcessAndParse(string source, string sourceFileName, ShaderMacro[] macros=null, params string[] includeDirectories)
Parses the specified source.
Definition: HlslParser.cs:39
static Shader Parse(string source, string sourceFileName, ShaderMacro[] macros=null, params string[] includeDirectories)
Parses the specified source.
Definition: HlslParser.cs:52
static void Initialize()
Initializes this instance.
Definition: HlslParser.cs:25
Toplevel container of a shader parsing result.
Definition: Shader.cs:12
Methods used to create the Abstract Syntax Tree..