public override string Output(LinqParser parser) { var result = string.Format("{0}{1} {2}", parser.MapType(Type), Kind == KernelArgumentKind.Buffer ? "*" : "", Name); switch (Access) { case KernelArgumentAccess.Read: result = "read_only " + result; break; case KernelArgumentAccess.Write: result = "write_only " + result; break; default: break; } switch (Memory) { case KernelArgumentMemory.Global: result = "global " + result; break; case KernelArgumentMemory.Local: result = "local " + result; break; default: break; } return(result); }
public RuleCollection(ILinqMethodScope linqMethods = null) { linqParser = new LinqParser(linqMethods); parser = new Parser(); rules = new List <Rule>(); }
public override string Output(LinqParser parser) { return(string.Format("typedef {0} __attribute__ ((aligned (4))) tag_{1}\n{{\n{2}\n}} {1};\n", IsUnion ? "union" : "struct", Name, Fields.Select(f => string.Format(" {0};", f.Output(parser))) .SeparateWith("\n"))); }
public override string Output(LinqParser parser) { var kindDecl = Kind == VaryingKind.In ? "in" : "out"; return(string.IsNullOrEmpty(Qualifiers) ? string.Format("{0} {1};", kindDecl, Definition.Output(parser)) : string.Format("{0} {1} {2};", Qualifiers, kindDecl, Definition.Output(parser))); }
public override string Output(LinqParser parser) { return(string.Format("({0}) {{ {1} }}", parser.MapType(StructType), InitFields.Select(t => (StructType.IsCLUnion() ? string.Format(".{0} = {1}", t.Item1.Output(parser), t.Item2.Output(parser)) : t.Item2.Output(parser))) .SeparateWith(", "))); }
public override string Output(LinqParser parser) { return(string.Format("kernel void {0} ({1})\n{2}", Name, Arguments.Select(v => v.Output(parser)).SeparateWith(", "), Body.Output(parser))); }
public override string Output(LinqParser parser) { return("constant " + Definition.Output(parser) + ";\n"); }
public override string Output(LinqParser parser) { return(string.Format("{{ {0} }}", Items.Select(e => e.Output(parser)).SeparateWith(", "))); }
public override string Output(LinqParser parser) { return(string.Format("{0}[{1}] ( {2} )", parser.MapType(ItemType), ItemCount, Items.Select(e => e.Output(parser)).SeparateWith(",\n\t"))); }
public override string Output(LinqParser parser) { return(string.Format("struct {0}\n{{\n{1}\n}};", Name, Fields.Select(f => string.Format(" {0};", f.Output(parser))) .SeparateWith("\n"))); }
public override string Output(LinqParser parser) { return(string.Format("uniform {0};", Definition.Output(parser))); }
public override string Output(LinqParser parser) { return(string.Format("{0} ({1})", InitFields.Select(t => t.Item2.Output(parser)) .SeparateWith(", "))); }
public static Expression FromLinq(Linq.Expression linqExpression) { LinqParser parser = new LinqParser(linqExpression); return(parser.Result); }
public static Entity FromLinq(Expression expr) => LinqParser.FromLinq(expr);