protected virtual bool VisitFieldDeclaration(FieldDeclarationContext ctx)
        {
            var fieldNameNodes = ctx.Descendants().OfType <VariableDeclaratorIdContext>().ToList();

            foreach (var node in fieldNameNodes)
            {
                var identifier = node.Identifier();
                _rewriter.Replace(identifier.Symbol, identifier.GetText().Pascalize());
            }

            return(true);
        }
Ejemplo n.º 2
0
        private void ParseNode(IParseTree node)
        {
            if (node is PackageDeclarationContext packageContext)
            {
                string name = this.GetNodeName(packageContext);

                this.WriteKeyValue("Package", name);
            }
            else if (node is ImportDeclarationContext importContext)
            {
                string name = this.GetNodeName(importContext);

                this.WriteKeyValue("Import", name);
            }
            else if (node is TypeDeclarationContext typeContext)
            {
                foreach (var child in typeContext.children)
                {
                    if (child is InterfaceDeclarationContext)
                    {
                        InterfaceDeclarationContext interfaceContext = child as InterfaceDeclarationContext;

                        string name = interfaceContext.IDENTIFIER().GetText();

                        this.WriteLine();
                        this.WriteKeyValue("Interface", name);
                        this.WriteBeginBrace();

                        var members = interfaceContext.interfaceBody().interfaceBodyDeclaration().Select(item => item.interfaceMemberDeclaration());

                        foreach (InterfaceMemberDeclarationContext member in members)
                        {
                            var constContext = member.constDeclaration();
                            if (constContext != null)
                            {
                                string constName = constContext.constantDeclarator(0).IDENTIFIER().GetText();

                                this.WriteLine($"Const field:{constName}");
                            }

                            InterfaceMethodDeclarationContext method = member.interfaceMethodDeclaration();
                            if (method != null)
                            {
                                string methodName = method.IDENTIFIER().GetText();

                                this.WriteKeyValue("Method", methodName);
                            }
                        }
                        this.WriteEndBrace();
                    }
                    else if (child is ClassDeclarationContext)
                    {
                        ClassDeclarationContext classContext = child as ClassDeclarationContext;
                        string name = this.GetNodeName(classContext);

                        this.WriteLine();
                        this.WriteLine($"Class:{name}");
                        this.WriteBeginBrace();

                        var members = classContext.classBody().classBodyDeclaration().Select(item => item.memberDeclaration());

                        foreach (MemberDeclarationContext member in members)
                        {
                            FieldDeclarationContext field = member.fieldDeclaration();
                            if (field != null)
                            {
                                string fieldName = field.variableDeclarators().GetText();

                                this.WriteKeyValue("Field", fieldName);
                            }

                            MethodDeclarationContext method = member.methodDeclaration();
                            if (method != null)
                            {
                                string methodName = method.IDENTIFIER().GetText();

                                this.WriteKeyValue("Method", methodName);
                            }
                        }

                        this.WriteEndBrace();
                    }
                }
            }
        }