internal void Render(LuaCompilationUnitSyntax node) { foreach (var statement in node.Statements) { statement.Render(this); } }
private void Write(LuaCompilationUnitSyntax luaCompilationUnit, string outFile) { using (var writer = new StreamWriter(outFile, false, Encoding)) { LuaRenderer rener = new LuaRenderer(this, writer); luaCompilationUnit.Render(rener); } }
public override void BuildConfigFunction(string path, string mapName, string mapDescription, string lobbyMusic, params PlayerSlot[] playerSlots) { var fileSyntax = new LuaCompilationUnitSyntax(); fileSyntax.AddStatement(GetConfigFunctionSyntax(mapName, mapDescription, lobbyMusic, playerSlots)); RenderFunctionToFile(path, fileSyntax); }
public override void BuildMainFunction(string path, float left, float right, float top, float bottom, Tileset light, SoundEnvironment sound, params string[] initFunctions) { var fileSyntax = new LuaCompilationUnitSyntax(); fileSyntax.AddStatement(GetMainFunctionSyntax(left, right, top, bottom, light, sound, initFunctions)); RenderFunctionToFile(path, fileSyntax); }
public LuaCompilationUnitSyntax Transpile(JassCompilationUnitSyntax compilationUnit) { var luaCompilationUnit = new LuaCompilationUnitSyntax(hasGeneratedMark: false); luaCompilationUnit.Statements.AddRange(compilationUnit.Declarations.SelectMany(Transpile)); return(luaCompilationUnit); }
private void ExportManifestFile(List <string> modules, string outFolder) { const string kDir = "dir"; const string kDirInitCode = "dir = (dir and #dir > 0) and (dir .. '.') or \"\""; const string kRequire = "require"; const string kLoadCode = "local load = function(module) return require(dir .. module) end"; const string kLoad = "load"; const string kInit = "System.init"; const string kManifestFile = "manifest.lua"; if (modules.Count > 0) { modules.Sort(); var types = GetExportTypes(); if (types.Count > 0) { LuaFunctionExpressionSyntax functionExpression = new LuaFunctionExpressionSyntax(); functionExpression.AddParameter(new LuaIdentifierNameSyntax(kDir)); functionExpression.AddStatement(new LuaIdentifierNameSyntax(kDirInitCode)); LuaIdentifierNameSyntax requireIdentifier = new LuaIdentifierNameSyntax(kRequire); functionExpression.AddStatement(new LuaLocalVariableDeclaratorSyntax(requireIdentifier, requireIdentifier)); functionExpression.AddStatement(new LuaIdentifierNameSyntax(kLoadCode)); functionExpression.AddStatement(LuaBlankLinesStatement.One); LuaIdentifierNameSyntax loadIdentifier = new LuaIdentifierNameSyntax(kLoad); foreach (string module in modules) { var argument = new LuaStringLiteralExpressionSyntax(new LuaIdentifierNameSyntax(module)); var invocation = new LuaInvocationExpressionSyntax(loadIdentifier, argument); functionExpression.AddStatement(invocation); } functionExpression.AddStatement(LuaBlankLinesStatement.One); LuaTableInitializerExpression typeTable = new LuaTableInitializerExpression(); foreach (var type in types) { LuaIdentifierNameSyntax typeName = XmlMetaProvider.GetTypeShortName(type); typeTable.Items.Add(new LuaSingleTableItemSyntax(new LuaStringLiteralExpressionSyntax(typeName))); } LuaInvocationExpressionSyntax initInvocation = new LuaInvocationExpressionSyntax(new LuaIdentifierNameSyntax(kInit), typeTable); FillManifestInitConf(initInvocation); functionExpression.AddStatement(initInvocation); LuaCompilationUnitSyntax luaCompilationUnit = new LuaCompilationUnitSyntax(); luaCompilationUnit.Statements.Add(new LuaReturnStatementSyntax(functionExpression)); string outFile = Path.Combine(outFolder, kManifestFile); Write(luaCompilationUnit, outFile); } } }
private static void RenderFunctionToFile(string path, LuaCompilationUnitSyntax luaCompilationUnit) { using (var fileStream = File.Create(path)) { using (var writer = new StreamWriter(fileStream, new UTF8Encoding(false, true))) { var renderSettings = new LuaSyntaxGenerator.SettingInfo(); renderSettings.Indent = 4; var renderer = new LuaRenderer(renderSettings, writer); renderer.RenderCompilationUnit(luaCompilationUnit); } } }
private void RenderToFile(string path, IEnumerable <LuaVariableListDeclarationSyntax> functions) { using (var fileStream = FileProvider.OpenNewWrite(path)) { using (var writer = new StreamWriter(fileStream, new UTF8Encoding(false, true))) { var renderer = new LuaRenderer(_rendererOptions, writer); var compilationUnitSyntax = new LuaCompilationUnitSyntax(); foreach (var function in functions) { compilationUnitSyntax.AddStatement(function); } renderer.RenderCompilationUnit(compilationUnitSyntax); } } }
internal void Render(LuaCompilationUnitSyntax node) { WriteNodes(node.Statements); }
internal void AddPartialTypeDeclaration(INamedTypeSymbol typeSymbol, TypeDeclarationSyntax node, LuaTypeDeclarationSyntax luaNode, LuaCompilationUnitSyntax compilationUnit) { var list = partialTypes_.GetOrDefault(typeSymbol); if (list == null) { list = new List <PartialTypeDeclaration>(); partialTypes_.Add(typeSymbol, list); } list.Add(new PartialTypeDeclaration() { Symbol = typeSymbol, Node = node, TypeDeclaration = luaNode, CompilationUnit = compilationUnit, }); }
public LuaEnumDeclarationSyntax(string fullName, LuaIdentifierNameSyntax name, LuaCompilationUnitSyntax compilationUnit) { FullName = fullName; CompilationUnit = compilationUnit; UpdateIdentifiers(name, LuaIdentifierNameSyntax.Namespace, LuaIdentifierNameSyntax.Enum); }
public void RenderCompilationUnit(LuaCompilationUnitSyntax luaCompilationUnit) { luaCompilationUnit.Render(this); }