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("}"); }
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); }
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); } }
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 }