private ShaderPropertyDefaultValueSyntax ParseUnityShaderPropertyDefaultValue(ShaderPropertyTypeSyntax propertyType) { switch (propertyType.TypeKind) { case SyntaxKind.RangeKeyword: case SyntaxKind.FloatKeyword: case SyntaxKind.IntKeyword: return ParseUnityShaderPropertyNumericDefaultValue(propertyType.TypeKind); case SyntaxKind.ColorKeyword: case SyntaxKind.VectorKeyword: return ParseUnityShaderPropertyVectorDefaultValue(); case SyntaxKind._2DKeyword: case SyntaxKind._3DKeyword: case SyntaxKind.CubeKeyword: case SyntaxKind.AnyKeyword: return ParseUnityShaderPropertyTextureDefaultValue(); default: throw new ArgumentOutOfRangeException(); } }
public ShaderPropertySyntax(List <ShaderPropertyAttributeSyntax> attributes, SyntaxToken nameToken, SyntaxToken openParenToken, SyntaxToken displayNameToken, SyntaxToken commaToken, ShaderPropertyTypeSyntax propertyType, SyntaxToken closeParenToken, SyntaxToken equalsToken, ShaderPropertyDefaultValueSyntax defaultValue) : base(SyntaxKind.ShaderProperty) { RegisterChildNodes(out Attributes, attributes); RegisterChildNode(out NameToken, nameToken); RegisterChildNode(out OpenParenToken, openParenToken); RegisterChildNode(out DisplayNameToken, displayNameToken); RegisterChildNode(out CommaToken, commaToken); RegisterChildNode(out PropertyType, propertyType); RegisterChildNode(out CloseParenToken, closeParenToken); RegisterChildNode(out EqualsToken, equalsToken); RegisterChildNode(out DefaultValue, defaultValue); }