Beispiel #1
0
 internal void AddDocument(LuaDocumentStatement document)
 {
     if (document != null)
     {
         document_.Add(document);
     }
 }
Beispiel #2
0
 public void SetStaticCtor(LuaConstructorAdapterExpressionSyntax function, LuaDocumentStatement document)
 {
     Contract.Assert(staticCtor_ == null);
     staticCtor_ = new LuaConstructorDeclaration()
     {
         Function = function,
         Document = document,
     };
 }
Beispiel #3
0
 public void AddCtor(LuaConstructorAdapterExpressionSyntax function, bool insertFirst, LuaDocumentStatement document = null)
 {
     if (insertFirst)
     {
         ctors_.Insert(0, new LuaConstructorDeclaration()
         {
             Function = function,
             Document = document,
         });
     }
     else
     {
         ctors_.Add(new LuaConstructorDeclaration()
         {
             Function = function,
             Document = document,
         });
     }
 }
Beispiel #4
0
        public void AddMethod(LuaIdentifierNameSyntax name, LuaFunctionExpressionSyntax method, bool isPrivate, LuaDocumentStatement document = null, bool isMoreThanLocalVariables = false, bool isInterfaceDefaultMethod = false)
        {
            if (document != null && document.HasIgnoreAttribute)
            {
                return;
            }

            if (isMoreThanLocalVariables)
            {
                CheckTooManyVariables(true);
                if (document != null && !document.IsEmpty)
                {
                    methodList_.Statements.Add(document);
                }
                var left = LuaIdentifierNameSyntax.MorenManyLocalVarTempTable.MemberAccess(name);
                methodList_.Statements.Add(left.Assignment(method));
                if (isInterfaceDefaultMethod)
                {
                    AddInterfaceDefaultMethod(name, left);
                }
                else
                {
                    AddResultTable(name, left);
                }
            }
            else
            {
                local_.Variables.Add(name);
                if (document != null && !document.IsEmpty)
                {
                    methodList_.Statements.Add(document);
                }
                methodList_.Statements.Add(name.Assignment(method));
                if (!isPrivate)
                {
                    if (isInterfaceDefaultMethod)
                    {
                        AddInterfaceDefaultMethod(name);
                    }
                    else
                    {
                        AddResultTable(name);
                    }
                }
            }
        }
 public void Add(LuaDocumentStatement document)
 {
     Statements.AddRange(document.Statements);
     attr_ |= document.attr_;
 }
Beispiel #6
0
        public void AddMethod(LuaIdentifierNameSyntax name, LuaFunctionExpressionSyntax method, bool isPrivate, LuaDocumentStatement document = null)
        {
            if (document != null && document.HasIgnoreAttribute)
            {
                return;
            }

            local_.Variables.Add(name);
            LuaAssignmentExpressionSyntax assignment = new LuaAssignmentExpressionSyntax(name, method);

            if (document != null && !document.IsEmpty)
            {
                methodList_.Statements.Add(document);
            }
            methodList_.Statements.Add(new LuaExpressionStatementSyntax(assignment));
            if (!isPrivate)
            {
                AddResultTable(name);
            }
        }
Beispiel #7
0
 public LuaLocalFunctionSyntx(LuaIdentifierNameSyntax identifierName, LuaFunctionExpressionSyntax functionExpression, LuaDocumentStatement documentation = null)
 {
     IdentifierName     = identifierName ?? throw new ArgumentNullException(nameof(identifierName));
     FunctionExpression = functionExpression ?? throw new ArgumentNullException(nameof(functionExpression));
     if (documentation != null)
     {
         Comments.Statements.Add(documentation);
     }
 }
        public void AddMethod(LuaIdentifierNameSyntax name, LuaFunctionExpressionSyntax method, bool isPrivate, LuaDocumentStatement document = null, bool isMoreThanLocalVariables = false)
        {
            if (document != null && document.HasIgnoreAttribute)
            {
                return;
            }

            if (isMoreThanLocalVariables)
            {
                if (!hasTooManyLocalVariables_)
                {
                    methodList_.Statements.Add(new LuaShortCommentStatement(" too many local variables (limit is 200)"));
                    methodList_.Statements.Add(new LuaLocalVariableDeclaratorSyntax(LuaIdentifierNameSyntax.MorenManyLocalVarTempTable, LuaTableExpression.Empty));
                    hasTooManyLocalVariables_ = true;
                }
                if (document != null && !document.IsEmpty)
                {
                    methodList_.Statements.Add(document);
                }
                var left = new LuaMemberAccessExpressionSyntax(LuaIdentifierNameSyntax.MorenManyLocalVarTempTable, name);
                methodList_.Statements.Add(new LuaAssignmentExpressionSyntax(left, method));
                AddResultTable(name, left);
            }
            else
            {
                local_.Variables.Add(name);
                if (document != null && !document.IsEmpty)
                {
                    methodList_.Statements.Add(document);
                }
                methodList_.Statements.Add(new LuaAssignmentExpressionSyntax(name, method));
                if (!isPrivate)
                {
                    AddResultTable(name);
                }
            }
        }