Example #1
0
        public override void VisitMethodImplementationNode(MethodImplementationNode node)
        {
            //TODO: static only for unit methods
            if (IsPublicUnitMethod(node))
            {
                AddIndentCode("public static ");
            }
            else
            {
                AddIndentCode("private static ");
            }
            //node.MethodHeadingNode.MethodTypeNode.Text

            AddLineCodeFormat("{0} {1}()", ReturnType(node.MethodHeadingNode), ((Token)node.MethodHeadingNode.NameNode).Text);
            AddFullLineCode("{");
            Indent();
            if (node.MethodHeadingNode.ReturnTypeNode != null)
            {
                AddFullLineCodeFormat("{0} result;", ReturnType(node.MethodHeadingNode));
            }
            base.Visit(node.FancyBlockNode);
            if (node.MethodHeadingNode.ReturnTypeNode != null)
            {
                AddFullLineCode("return result;");
            }
            UnIndent();
            AddFullLineCode("}");
        }
Example #2
0
        private bool IsPublicUnitMethod(MethodImplementationNode node)
        {
            //public is present in interface
            var unitNode     = node.ParentNodeOfType <UnitNode>();
            var expectedName = ((Token)node.MethodHeadingNode.NameNode).Text;

            var query = node.ParentNodeOfType <UnitNode>().InterfaceSectionNode.ContentListNode.Items.OfType <MethodHeadingNode>().Where(x => ((Token)x.NameNode).Text == expectedName);

            //TODO: equality should be check parameters & overloading
            return(query.FirstOrDefault() != null);
        }
Example #3
0
 public override void VisitMethodImplementationNode(MethodImplementationNode node)
 {
     _methodHierarchy.Add(node.MethodHeadingNode.NameNode.ToCode());
     try {
         if (_methodHierarchy.Count > 1)
         {
             string path = String.Join(" -> ", _methodHierarchy.ToArray());
             AddHit(node, path);
         }
         base.VisitMethodImplementationNode(node);
     } finally {
         _methodHierarchy.RemoveAt(_methodHierarchy.Count - 1);
     }
 }
Example #4
0
 public virtual void VisitMethodImplementationNode(MethodImplementationNode node)
 {
     Visit(node.MethodHeadingNode);
     Visit(node.FancyBlockNode);
     Visit(node.SemicolonNode);
 }
 public override void VisitMethodImplementationNode(MethodImplementationNode node)
 {
     // do not visit children
 }