SND\AstrorEnales_cp 9eca0e4bcd - Fixed a small issue with comment out multiline comments parsing
- Started refactoring some code in the hlsl parser
- Brought the test coverage of the hlsl parser back to 100%
2012-08-17 10:07:35 +00:00

60 lines
1.2 KiB
C#

using System;
// This file is part of the ANX.Framework created by the
// "ANX.Framework developer group" and released under the Ms-PL license.
// For details see: http://anxframework.codeplex.com/license
namespace HLSLParser
{
public class EffectBuffer : IShaderElement
{
#region Public
public string Name
{
get;
private set;
}
public string Type
{
get;
private set;
}
#endregion
#region Constructor
public EffectBuffer(ParseTextWalker walker)
{
string text = walker.Text;
int typeStartIndex = text.IndexOf('<') + 1;
int typeEndIndex = text.IndexOf('>');
Type = text.Substring(typeStartIndex, typeEndIndex - typeStartIndex);
typeEndIndex++;
int semicolonIndex = text.IndexOf(';');
Name = text.Substring(typeEndIndex, semicolonIndex - typeEndIndex).Trim();
walker.Seek(semicolonIndex + 1);
}
#endregion
#region TryParse
public static EffectBuffer TryParse(ParseTextWalker walker)
{
return walker.Text.StartsWith("Buffer") ?
new EffectBuffer(walker) :
null;
}
#endregion
#region ToString
public override string ToString()
{
return "Buffer<" + Type + "> " + Name + ";";
}
#endregion
}
}