/// <summary> /// Translates the invocated name to lower case /// </summary> protected StringBuilder ToLower(MethodDefinition m, InvocationExpression i) { var result = new StringBuilder(); var lowerName = Char.ToLowerInvariant(m.Name[0]) + m.Name.Substring(1); return(result.Append(lowerName).Append("(").Append(ArgsToString(i.Arguments)).Append(")")); }
// Dispatcher protected StringBuilder VisitShaderDefCall(MethodDefinition m, InvocationExpression invocationExpression) { var tok = m.Resolve().MetadataToken.ToInt32(); Func <MethodDefinition, InvocationExpression, StringBuilder> handler; var etok = Expression.Lambda <Action>(Expression.Constant(tok)); return(Handlers.TryGetValue(etok, out handler) ? handler(m, invocationExpression) : PassThrough(m, invocationExpression)); }
/// <summary> /// Translates the invocated name without any modifications /// </summary> protected StringBuilder PassThrough(MethodDefinition m, InvocationExpression i) { var result = new StringBuilder(); return(result.Append(m.Name).Append("(").Append(ArgsToString(i.Arguments)).Append(")")); }
private StringBuilder KeywordDiscard(MethodDefinition unused1, InvocationExpression unused2) { return new StringBuilder("discard"); }