static public void GenerateCode(string base_filename, Process <CSTextDocumentBuilder> process, GeneratedCodeType type) { CSTextDocument document = new CSTextDocument(new CSHeader_SimpleStatement()); CSTextDocumentBuilder builder = document.CreateCSTextBuilder(); CSTextDocumentWriter writer = builder.CreateWriterWithVariablePairs(); writer.Write("using System;"); writer.Write("using System.Collections;"); writer.Write("using System.Collections.Generic;"); writer.Write("using UnityEngine;"); writer.Write("#if UNITY_EDITOR"); writer.Write("using UnityEditor;"); writer.Write("using Crunchy.SandwichBag;"); writer.Write("#endif"); writer.Write("using Crunchy.Dough;"); writer.Write("using Crunchy.Salt;"); writer.Write("using Crunchy.Noodle;"); writer.Write("using Crunchy.Bread;"); writer.Write("using Crunchy.Sandwich;"); process(builder); if (document.RenderDocument().SaveChanges(type.GetDirectory(), base_filename + ".cs", true)) { REGENERATION_COUNT++; } }
private void GenerateStubClasses() { foreach (DOMEClass_Generated @class in this.GetDeepChildren <DOMEClass_Generated>()) { CSTextDocument document = new CSTextDocument(); CSTextDocumentBuilder text = document.CreateCSTextBuilder(); CSTextDocumentWriter code = text.CreateWriterWithVariablePairs( "NAMESPACE", settings.GetNamespaceName() ); code.Write("using System;"); code.Write("using System.Collections;"); code.Write("using System.Collections.Generic;"); code.SkipLine(); code.Write("using Crunchy.Dough;"); code.Write("using Crunchy.Salt;"); code.Write("using Crunchy.Noodle;"); code.SkipLine(); if (code.Write("namespace ?NAMESPACE", delegate() { return(@class.GenerateStubClass(text)); })) { document.RenderDocument().SaveClass(settings.GetOutputDirectory(), @class.GetTypeName(), false); } } }
public void GenerateCode(string filename) { CSTextDocument document = new CSTextDocument(new CSHeader_SimpleDated("MMMM dd, yyyy")); CSTextDocumentBuilder builder = document.CreateCSTextBuilder(); CSTextDocumentWriter writer = builder.CreateWriterWithVariablePairs(); writer.Write("using System;"); writer.Write("using System.Collections;"); writer.Write("using System.Collections.Generic;"); writer.Write("using Crunchy.Dough;"); writer.Write("using Crunchy.Salt;"); writer.Write("using Crunchy.Noodle;"); writer.Write("using Crunchy.Bread;"); writer.Write("using Crunchy.Sandwich;"); GenerateSatelliteClass(builder); typeof(GamepadComponentType).GetEnumValues <GamepadComponentType>() .Process(t => GenerateInputDeviceIds(builder, t)); GenerateClass(builder); document.RenderDocument().Save(filename, true); }
private void GenerateMainFile() { CSTextDocument document = new CSTextDocument(); CSTextDocumentBuilder text = document.CreateCSTextBuilder(); CSTextDocumentWriter code = text.CreateWriterWithVariablePairs( "NAMESPACE", settings.GetNamespaceName() ); code.Write("using System;"); code.Write("using System.IO;"); code.Write("using System.Collections;"); code.Write("using System.Collections.Generic;"); code.SkipLine(); code.Write("using Crunchy.Dough;"); code.Write("using Crunchy.Salt;"); code.Write("using Crunchy.Noodle;"); code.SkipLine(); code.Write("using Antlr4.Runtime;"); code.Write("using Antlr4.Runtime.Tree;"); code.SkipLine(); code.Write("namespace ?NAMESPACE", delegate() { this.GetDeepChildren <DOMEClass_Generated>().Process(g => g.GenerateMainClass(text)); }); document.RenderDocument().Save(settings.GetOutputDirectory(), GetMainFilename(), true); }