示例#1
0
        public FunctionSignature DecodeSignature()
        {
            var sig    = new FunctionSignature();
            int length = DecodeLength();

            if (length > 0)
            {
                int i = length;
                while (i > 0)
                {
                    var paramName = DecodeId();
                    // does not contain anything worthwile, only nesting
                    var paramLength = DecodeLength();
                    sig.Parameter.Add(Tuple.Create(paramName, paramLength));
                    i--;
                }
            }
            sig.Header1 = DecodeLength();
            sig.Type    = DecodeLength();
            sig.Header3 = DecodeLength();
            sig.Name    = DecodeId();
            sig.Header5 = DecodeLiteralNumber2();
            return(sig);
        }
 public override void Decode()
 {
     bodyInfo = DecodeLineInfo();
     signature = DecodeSignature();
     type = DecodeLength();
 }
示例#3
0
 public override void Decode()
 {
     bodyInfo  = DecodeLineInfo();
     signature = DecodeSignature();
     type      = DecodeLength();
 }
 public FunctionSignature DecodeSignature()
 {
     var sig = new FunctionSignature();
     int length = DecodeLength();
     if (length > 0)
     {
         int i = length;
         while (i > 0)
         {
             var paramName = DecodeId();
             // does not contain anything worthwile, only nesting
             var paramLength = DecodeLength();
             sig.Parameter.Add(Tuple.Create(paramName, paramLength));
             i--;
         }
     }
     sig.Header1 = DecodeLength();
     sig.Type = DecodeLength();
     sig.Header3 = DecodeLength();
     sig.Name = DecodeId();
     sig.Header5 = DecodeLiteralNumber2();
     return sig;
 }