Exemple #1
0
        public override object VisitNamespaceVariableStatement([NotNull] NamespaceVariableStatementContext context)
        {
            var    r1        = (Result)Visit(context.id());
            var    isMutable = context.m != null;
            var    typ       = "";
            Result r2        = null;

            if (context.expression() != null)
            {
                r2  = (Result)Visit(context.expression());
                typ = (string)r2.data;
            }
            if (context.type() != null)
            {
                typ = (string)Visit(context.type());
            }
            var obj = "";

            if (context.annotationSupport() != null)
            {
                obj += Visit(context.annotationSupport());
            }

            obj += $"{r1.permission} static {typ} {r1.text}";
            if (r2 != null)
            {
                obj += $" = {r2.text} {Terminate} {Wrap}";
            }
            else
            {
                obj += Terminate + Wrap;
            }
            return(obj);
        }
Exemple #2
0
        public override object VisitNamespaceVariableStatement(NamespaceVariableStatementContext context)
        {
            var r1 = ((Result)Visit(context.id()));

            Add_ID(r1.text);
            var    is_mutable = r1.is_virtual;
            var    typ        = "";
            Result?r2         = null;

            if (context.expression() != null)
            {
                r2  = ((Result)Visit(context.expression()));
                typ = ((string)r2.data);
            }
            if (context.typeType() != null)
            {
                typ = ((string)Visit(context.typeType()));
            }
            var isMutable = true;

            if (!r1.isMutable)
            {
                switch (typ)
                {
                case "int":
                { isMutable = false; } break;

                case "uint":
                { isMutable = false; } break;

                case "long":
                { isMutable = false; } break;

                case "ulong":
                { isMutable = false; } break;

                case "ushort":
                { isMutable = false; } break;

                case "short":
                { isMutable = false; } break;

                case "byte":
                { isMutable = false; } break;

                case "sbyte":
                { isMutable = false; } break;

                case "float":
                { isMutable = false; } break;

                case "double":
                { isMutable = false; } break;

                case "bool":
                { isMutable = false; } break;

                case "char":
                { isMutable = false; } break;

                case "string":
                { isMutable = false; } break;
                }
            }
            var obj = "";

            if (context.annotationSupport() != null)
            {
                obj += Visit(context.annotationSupport());
            }
            if (self_property_content.Size() > 0)
            {
                obj += (new System.Text.StringBuilder().Append(r1.permission).Append(" static ").Append(typ).Append(" ").Append(r1.text).Append(BlockLeft)).To_Str();
                foreach (var v in self_property_content)
                {
                    obj += v;
                }
                obj += BlockRight + Wrap;
                self_property_content.Clear();
            }
            else if (isMutable || r2 == null)
            {
                obj += (new System.Text.StringBuilder().Append(r1.permission).Append(" static ").Append(typ).Append(" ").Append(r1.text)).To_Str();
                if (r2 != null)
                {
                    obj += (new System.Text.StringBuilder().Append(" = ").Append(r2.text).Append(Terminate).Append(Wrap)).To_Str();
                }
                else
                {
                    obj += Terminate + Wrap;
                }
            }
            else
            {
                obj += (new System.Text.StringBuilder().Append(r1.permission).Append(" const ").Append(typ).Append(" ").Append(r1.text).Append(" = ").Append(r2.text).Append(Terminate).Append(Wrap)).To_Str();
            }
            return(obj);
        }
Exemple #3
0
        public override object VisitNamespaceVariableStatement(NamespaceVariableStatementContext context)
        {
            var r1 = (Result)(Visit(context.id()));

            this.add_id(r1.text);
            var    isMutable = r1.isVirtual;
            var    typ       = "";
            Result r2        = null;

            if (context.expression() != null)
            {
                r2  = (Result)(Visit(context.expression()));
                typ = (string)(r2.data);
            }
            if (context.typeType() != null)
            {
                typ = (string)(Visit(context.typeType()));
            }
            var obj = "";

            if (context.annotationSupport() != null)
            {
                this.selfPropertyID = r1.text;
                obj += Visit(context.annotationSupport());
            }
            if (this.selfPropertyContent.len > 0)
            {
                var pri = "";
                if (this.selfPropertyVariable)
                {
                    pri = (new System.Text.StringBuilder().Append("private static ").Append(typ).Append(" _").Append(r1.text)).to_str();
                    if (r2 != null)
                    {
                        pri += " = " + r2.text;
                    }
                    pri += Terminate + Wrap;
                }
                obj  = pri + obj;
                obj += (new System.Text.StringBuilder().Append(r1.permission).Append(" static ").Append(typ).Append(" ").Append(r1.text).Append(BlockLeft)).to_str();
                foreach (var v in this.selfPropertyContent)
                {
                    obj += v;
                }
                obj += BlockRight + Wrap;
                this.selfPropertyContent.clear();
                this.selfPropertyID       = "";
                this.selfPropertyVariable = false;
            }
            else
            {
                obj += (new System.Text.StringBuilder().Append(r1.permission).Append(" static ").Append(typ).Append(" ").Append(r1.text)).to_str();
                if (r2 != null)
                {
                    obj += (new System.Text.StringBuilder().Append(" = ").Append(r2.text).Append(Terminate).Append(Wrap)).to_str();
                }
                else
                {
                    obj += Terminate + Wrap;
                }
            }
            return(obj);
        }