private static void WriteCppMethods(List <MethodInterpreter> closure, StringBuilder sb, ClosureEntities crRuntime) { var cppMethods = closure .Where(m => m.Kind == MethodKind.RuntimeCppMethod) .ToArray(); var methodInterpreter = cppMethods.FirstOrDefault(); if (methodInterpreter == null) { return; } foreach (var interpreter in cppMethods) { var cppInterpreter = (CppMethodInterpreter)interpreter; var runtimeLibrary = cppInterpreter.CppRepresentation; if (LinkingData.SetInclude(runtimeLibrary.Header)) { sb.AppendFormat("#include \"{0}\"", runtimeLibrary.Header).AppendLine(); } var sbDeclaration = CppWriteSignature.WriteSignature(interpreter, crRuntime, false); sb.Append(sbDeclaration); sb.AppendFormat("{{\n{0}\n}}", runtimeLibrary.Source).AppendLine(); } }
static void WriteCppMethods(List <MethodInterpreter> closure, CodeOutput sb, ClosureEntities crRuntime) { var cppMethods = closure .Where(m => m.Kind == MethodKind.RuntimeCppMethod) .ToArray(); var methodInterpreter = cppMethods.FirstOrDefault(); if (methodInterpreter == null) { return; } foreach (var interpreter in cppMethods) { var cppInterpreter = (CppMethodInterpreter)interpreter; var runtimeLibrary = cppInterpreter.CppRepresentation; if (LinkingData.SetInclude(runtimeLibrary.Header)) { sb.AppendFormat("#include \"{0}\"\n", runtimeLibrary.Header); } CppWriteSignature.WriteSignature(sb, interpreter, crRuntime, false); sb.BracketOpen() .Append(runtimeLibrary.Source) .BracketClose(); } }
public static string WriteMethodSignature(MethodInterpreter interpreter, CrRuntimeLibrary crRuntime) { if (interpreter.Method == null) { Console.WriteLine("Should not be null"); return(""); } var sb = CppWriteSignature.WriteSignature(interpreter, crRuntime, true); return(sb.ToString()); }
public static string WriteMethodSignature(MethodInterpreter interpreter, ClosureEntities closureEntities) { if (interpreter.Method == null) { Console.WriteLine("Should not be null"); return(""); } var sb = CppWriteSignature.WriteSignature(interpreter, closureEntities, true); return(sb.ToString()); }
public static void WriteMethodSignature(CodeOutput codeOutput, MethodInterpreter interpreter, ClosureEntities closureEntities) { if (interpreter.Method == null) { Console.WriteLine("Should not be null"); return; } CppWriteSignature.WriteSignature(codeOutput, interpreter, closureEntities, true); }
public static string WriteCode(MethodInterpreter midRepresentation) { var operations = midRepresentation.MidRepresentation.LocalOperations; var headerSb = new StringBuilder(); var sb = CppWriteSignature.WriteSignature(midRepresentation); headerSb.AppendLine(sb.ToString()); headerSb.Append("{"); var bodySb = ComputeBodySb(operations, midRepresentation.MidRepresentation.Vars); var variablesSb = ComputeVariableSb(midRepresentation.MidRepresentation); var finalSb = new StringBuilder(); finalSb.AppendLine(headerSb.ToString()); finalSb.AppendLine(variablesSb.ToString()); finalSb.AppendLine(bodySb.ToString()); return(finalSb.ToString()); }
public static string WriteCode(MethodInterpreter interpreter, TypeDescriptionTable typeTable, CrRuntimeLibrary crRuntime) { var operations = interpreter.MidRepresentation.LocalOperations; var headerSb = new StringBuilder(); var sb = CppWriteSignature.WriteSignature(interpreter, crRuntime); headerSb.AppendLine(sb.ToString()); headerSb.Append("{"); var bodySb = ComputeBodySb(operations, interpreter.MidRepresentation.Vars, typeTable, interpreter, crRuntime); var variablesSb = ComputeVariableSb(interpreter.MidRepresentation, interpreter); var finalSb = new StringBuilder(); finalSb.AppendLine(headerSb.ToString()); finalSb.AppendLine(variablesSb.ToString()); finalSb.AppendLine(bodySb.ToString()); return(finalSb.ToString()); }