public override void Visit(IGlobalMethodDefinition globalMethodDefinition)
 {
     if (Process(globalMethodDefinition))
     {
         visitor.Visit(globalMethodDefinition);
     }
     base.Visit(globalMethodDefinition);
 }
Example #2
0
 public override void TraverseChildren(IGlobalMethodDefinition globalMethod)
 {
     if (!MemberHelper.IsVisibleOutsideAssembly(globalMethod))
     {
         return;
     }
     _assembly.EnrollApi(globalMethod);
 }
Example #3
0
File: Units.cs Project: tupipa/vcc
 public override void Visit(IGlobalMethodDefinition method)
 {
     if (method.Name.Value == "main" && method.IsStatic &&
         (TypeHelper.TypesAreEquivalent(method.Type.ResolvedType, this.compilation.PlatformType.SystemInt32) ||
          TypeHelper.TypesAreEquivalent(method.Type.ResolvedType, this.compilation.PlatformType.SystemVoid)) &&
         ParametersAreOkForMainMethod(method.Parameters))
     {
         this.entryPoints.Add(method);
     }
 }
Example #4
0
        private IMethodDefinition GetPointerValidator() //TODO: rename __vcValid to __pointerIsValid
        {
            IMethodDefinition result = Dummy.Method;

            foreach (INamespaceMember member in this.unitSet.UnitSetNamespaceRoot.GetMembersNamed(this.nameTable.GetNameFor("__vcValid"), false))
            {
                IGlobalMethodDefinition /*?*/ glob = member as IGlobalMethodDefinition;
                if (glob == null)
                {
                    continue;
                }
                result = glob;
                break;
            }
            return(result);
        }
Example #5
0
 /// <summary>
 /// Traverses the global method definition.
 /// </summary>
 public void Traverse(IGlobalMethodDefinition globalMethodDefinition)
 {
     Contract.Requires(globalMethodDefinition != null);
       if (this.preorderVisitor != null) this.preorderVisitor.Visit(globalMethodDefinition);
       if (this.stopTraversal) return;
       this.TraverseChildren(globalMethodDefinition);
       if (this.stopTraversal) return;
       if (this.postorderVisitor != null) this.postorderVisitor.Visit(globalMethodDefinition);
 }
Example #6
0
 /// <summary>
 /// Traverses the children of the global method definition.
 /// </summary>
 public virtual void TraverseChildren(IGlobalMethodDefinition globalMethodDefinition)
 {
     Contract.Requires(globalMethodDefinition != null);
       this.TraverseChildren((IMethodDefinition)globalMethodDefinition);
 }
Example #7
0
 public override void TraverseChildren(IGlobalMethodDefinition globalMethod)
 {
     if (!MemberHelper.IsVisibleOutsideAssembly(globalMethod))
         return;
     _assembly.EnrollApi(globalMethod);
 }
Example #8
0
 /// <summary>
 /// Performs some computation with the given global method definition.
 /// </summary>
 public virtual void Visit(IGlobalMethodDefinition globalMethodDefinition)
 {
 }
        public override void TraverseChildren(IGlobalMethodDefinition globalMethodDefinition)
{ MethodEnter(globalMethodDefinition);
            base.TraverseChildren(globalMethodDefinition);
     MethodExit();   }
Example #10
0
 public void Visit(IGlobalMethodDefinition globalMethodDefinition)
 {
     throw new NotImplementedException();
 }
 public virtual void onMetadataElement(IGlobalMethodDefinition globalMethodDefinition) { }
 /// <summary>
 /// Rewrites the specified global method definition.
 /// </summary>
 public virtual IGlobalMethodDefinition Rewrite(IGlobalMethodDefinition globalMethodDefinition)
 {
     return globalMethodDefinition;
 }
Example #13
0
 /// <summary>
 /// Performs some computation with the given global method definition.
 /// </summary>
 /// <param name="globalMethodDefinition"></param>
 public virtual void Visit(IGlobalMethodDefinition globalMethodDefinition)
   //^ ensures this.path.Count == old(this.path.Count);
 {
   this.Visit((IMethodDefinition)globalMethodDefinition);
 }
Example #14
0
 /// <summary>
 /// Performs some computation with the given global method definition.
 /// </summary>
 public void Visit(IGlobalMethodDefinition globalMethodDefinition)
 {
     this.Visit((IMethodDefinition)globalMethodDefinition);
     switch (globalMethodDefinition.Visibility) {
       case TypeMemberVisibility.Public:
       case TypeMemberVisibility.Private:
       case TypeMemberVisibility.Other:
     break;
       default:
     this.ReportError(MetadataError.InvalidGlobalFieldVisibility, globalMethodDefinition);
     break;
     }
     if (!globalMethodDefinition.IsStatic)
       this.ReportError(MetadataError.GlobalFieldNotStatic, globalMethodDefinition);
 }
 public override void Visit(IGlobalMethodDefinition globalMethodDefinition)
 {
     if(Process(globalMethodDefinition)){visitor.Visit(globalMethodDefinition);}
     base.Visit(globalMethodDefinition);
 }
 /// <summary>
 /// Performs some computation with the given global method definition.
 /// </summary>
 public virtual void Visit(IGlobalMethodDefinition globalMethodDefinition)
 {
 }
Example #17
0
 public override void Visit(IGlobalMethodDefinition method)
 {
     if (method.Name.Value == "main" && method.IsStatic &&
     (TypeHelper.TypesAreEquivalent(method.Type.ResolvedType, this.compilation.PlatformType.SystemInt32) ||
     TypeHelper.TypesAreEquivalent(method.Type.ResolvedType, this.compilation.PlatformType.SystemVoid)) &&
     ParametersAreOkForMainMethod(method.Parameters)) {
     this.entryPoints.Add(method);
       }
 }
Example #18
0
 public void Visit(IGlobalMethodDefinition globalMethodDefinition)
 {
     this.traverser.Traverse(globalMethodDefinition);
 }
Example #19
0
 /// <summary>
 /// Traverses the children of the global method definition.
 /// </summary>
 public virtual void TraverseChildren(IGlobalMethodDefinition globalMethodDefinition)
 {
     this.TraverseChildren((IMethodDefinition)globalMethodDefinition);
 }
Example #20
0
 /// <summary>
 /// Performs some computation with the given global method definition.
 /// </summary>
 public virtual void Visit(IGlobalMethodDefinition globalMethodDefinition)
 {
     this.Visit((IMethodDefinition)globalMethodDefinition);
 }
Example #21
0
 public override void Visit(IGlobalMethodDefinition globalMethodDefinition)
 {
     allElements.Add(new InvokInfo(Traverser, "IGlobalMethodDefinition", globalMethodDefinition));
 }
Example #22
0
 public virtual void Visit(IGlobalMethodDefinition globalMethodDefinition)
 {
     this.Visit((IMethodDefinition)globalMethodDefinition);
 }
Example #23
0
 public virtual void onMetadataElement(IGlobalMethodDefinition globalMethodDefinition)
 {
 }
Example #24
0
 public override void TraverseChildren(IGlobalMethodDefinition globalMethodDefinition)
 {
     MethodEnter(globalMethodDefinition);
     base.TraverseChildren(globalMethodDefinition);
     MethodExit();
 }
Example #25
0
 /// <summary>
 /// Visits the specified global method definition.
 /// </summary>
 /// <param name="globalMethodDefinition">The global method definition.</param>
 /// <returns></returns>
 public override IGlobalMethodDefinition Visit(IGlobalMethodDefinition globalMethodDefinition)
 {
     var result = this.GetMutableCopy(globalMethodDefinition);
       if (this.contractProvider != null) {
     IMethodContract/*?*/ methodContract = this.contractProvider.GetMethodContractFor(globalMethodDefinition);
     if (methodContract != null)
       this.contractProvider.AssociateMethodWithContract(result, methodContract);
       }
       return this.Visit(result);
 }