Exemple #1
0
        public override object VisitStatement(StatementContext context)
        {
            var obj     = "";
            var imports = "";
            var ns      = (Namespace)(Visit(context.exportStatement()));

            if (context.annotationSupport() != null)
            {
                obj += Visit(context.annotationSupport());
            }
            obj += (new System.Text.StringBuilder().Append("namespace ").Append(ns.name).Append(Wrap).Append(BlockLeft).Append(Wrap)).to_str();
            var content       = "";
            var contentStatic = "";

            this.add_current_set();
            foreach (var item in context.namespaceSupportStatement())
            {
                var child = item.GetChild(0);
                var type  = child.GetType();
                if (type == typeof(PackageStatementContext))
                {
                    var childContext = (PackageStatementContext)(child);
                    var id           = (Result)(Visit(childContext.id()));
                    this.add_type(id.text);
                }
                else if (type == typeof(TypeTagStatementContext))
                {
                    var childContext = (TypeTagStatementContext)(child);
                    this.add_type(childContext.Comment_Tag().GetText().sub_str(2));
                }
            }
            foreach (var item in context.namespaceSupportStatement())
            {
                var type = item.GetChild(0).GetType();
                if (type == typeof(NamespaceVariableStatementContext) || type == typeof(NamespaceFunctionStatementContext) || type == typeof(NamespaceConstantStatementContext))
                {
                    contentStatic += Visit(item);
                }
                else if (type == typeof(ImportStatementContext))
                {
                    imports += Visit(item);
                }
                else
                {
                    content += Visit(item);
                }
            }
            obj += content;
            if (contentStatic != "")
            {
                obj += (new System.Text.StringBuilder().Append("public partial class ").Append(ns.name.sub_str(ns.name.last_index_of(".") + 1)).Append("_static ").Append(BlockLeft).Append(Wrap).Append(contentStatic).Append(BlockRight).Append(Wrap)).to_str();
            }
            this.delete_current_set();
            obj += BlockRight + Wrap;
            obj  = (new System.Text.StringBuilder().Append("using Library;").Append(Wrap).Append("using static Library.Lib;").Append(Wrap).Append(imports).Append(Wrap)).to_str() + obj;
            return(obj);
        }
Exemple #2
0
        public override object VisitStatement([NotNull] StatementContext context)
        {
            var obj = "";
            var ns  = (Namespace)Visit(context.exportStatement());

            // import library
            obj += $"using Library;{Wrap}using static Library.lib;{Wrap}";
            obj += ns.imports + Wrap;
            if (context.annotationSupport() != null)
            {
                obj += Visit(context.annotationSupport());
            }
            obj += $"namespace {ns.name + Wrap + BlockLeft + Wrap}";

            var content = "";

            foreach (var item in context.namespaceSupportStatement())
            {
                content += Visit(item);
            }
            obj += content;
            obj += BlockRight + Wrap;
            return(obj);
        }