コード例 #1
0
 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),
     }));
コード例 #2
0
        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>(),
            });
コード例 #3
0
 public LuaStatementSyntax Transpile(JassEmptyDeclarationSyntax emptyDeclaration)
 {
     return(LuaBlankLinesStatement.One);
 }