public IEnumerable <LuaStatementSyntax> Transpile(JassGlobalDeclarationListSyntax globalDeclarationList) { return(globalDeclarationList.Globals .Where(declaration => !(declaration is JassCommentDeclarationSyntax && IgnoreComments)) .Where(declaration => !(declaration is JassEmptyDeclarationSyntax && IgnoreEmptyDeclarations)) .Select(declaration => declaration switch { JassEmptyDeclarationSyntax emptyDeclaration => Transpile(emptyDeclaration), JassCommentDeclarationSyntax commentDeclaration => Transpile(commentDeclaration), JassGlobalDeclarationSyntax globalDeclaration => Transpile(globalDeclaration), }));
public IEnumerable <LuaStatementSyntax> Transpile(IDeclarationSyntax declaration) { if (declaration is JassNativeFunctionDeclarationSyntax nativeFunctionDeclaration) { RegisterFunctionReturnType(nativeFunctionDeclaration.FunctionDeclarator); } return(declaration switch { JassEmptyDeclarationSyntax emptyDeclaration => IgnoreEmptyDeclarations?Array.Empty <LuaStatementSyntax>() : new[] { Transpile(emptyDeclaration) }, JassCommentDeclarationSyntax commentDeclaration => IgnoreComments?Array.Empty <LuaStatementSyntax>() : new[] { Transpile(commentDeclaration) }, JassGlobalDeclarationListSyntax globalDeclarationList => Transpile(globalDeclarationList), JassGlobalDeclarationSyntax globalDeclaration => new[] { Transpile(globalDeclaration) }, JassFunctionDeclarationSyntax functionDeclaration => IgnoreEmptyDeclarations && KeepFunctionsSeparated ? new[] { Transpile(functionDeclaration), LuaBlankLinesStatement.One } : new[] { Transpile(functionDeclaration) }, _ => Array.Empty <LuaStatementSyntax>(), });
public LuaStatementSyntax Transpile(JassEmptyDeclarationSyntax emptyDeclaration) { return(LuaBlankLinesStatement.One); }