public object [] ReadVector(FaslFile file, uint offset) { uint length = this [offset].Datum; object [] vector = new object [length]; for (uint i = 0; i < length; i++) { vector [i] = file.ReadObject(offset + 4 + i * 4); } return(vector); }
public string [] ReadFormals(FaslFile file, uint offset) { uint length = this [offset].Datum; string [] vector = new string [length]; for (uint i = 0; i < length; i++) { vector [i] = (string)(file.ReadObject(offset + 4 + i * 4)); } return(vector); }
public double ReadFlonum(FaslFile file, uint offset) { //EncodedObject header = this [arg0Offset]; byte b0 = ReadByte(offset + 4); byte b1 = ReadByte(offset + 5); byte b2 = ReadByte(offset + 6); byte b3 = ReadByte(offset + 7); byte b4 = ReadByte(offset + 8); byte b5 = ReadByte(offset + 9); byte b6 = ReadByte(offset + 10); byte b7 = ReadByte(offset + 11); if ((b0 == 0) && (b1 == 0) && (b2 == 0) && (b3 == 0) && (b4 == 0) && (b5 == 0) && (b6 == 0) && (b7 == 0)) { return(0.0); } int encodedExponent = (b7 & 0x7F) << 4; encodedExponent += (b6 & 0xF0) >> 4; long mantissa = (encodedExponent == 0) ? 0 : 1; mantissa *= 16; mantissa += b6 & 0x0F; mantissa *= 256; mantissa += b5; mantissa *= 256; mantissa += b4; mantissa *= 256; mantissa += b3; mantissa *= 256; mantissa += b2; mantissa *= 256; mantissa += b1; mantissa *= 256; mantissa += b0; int exponent = -(1024 + 51); exponent += encodedExponent; int sign = ((b7 & 0x80) == 0) ? 1 : -1; double answer = FloatArithmetic.EncodeFloat(sign, exponent, mantissa); return(answer); }
static object OldFasload(string pathName) { FileStream faslStream = null; try { faslStream = File.OpenRead(pathName); FaslFile faslFile = FaslFile.Fasload(new BinaryReader(faslStream)); return(faslFile.RootObject); } finally { if (faslStream != null) { faslStream.Close(); } } }
public object ReadBignum(FaslFile file, uint offset) { //EncodedObject header = this [arg0Offset]; EncodedObject h1 = this [offset + 4]; if (h1.Datum == 1) { EncodedObject w0 = this [offset + 8]; long total = w0.ToLong(); return(total); } if (h1.Datum == 2) { EncodedObject w0 = this [offset + 8]; EncodedObject w1 = this [offset + 12]; long total = (w1.ToLong() << 30) + w0.ToLong(); return(total); } throw new NotImplementedException(); }
public object[] ReadVector(FaslFile file, uint offset) { uint length = this [offset].Datum; object [] vector = new object [length]; for (uint i = 0; i < length; i++) vector [i] = file.ReadObject (offset + 4 + i * 4); return vector; }
public string[] ReadFormals(FaslFile file, uint offset) { uint length = this [offset].Datum; string [] vector = new string [length]; for (uint i = 0; i < length; i++) vector [i] = (string) (file.ReadObject (offset + 4 + i * 4)); return vector; }
public double ReadFlonum(FaslFile file, uint offset) { //EncodedObject header = this [arg0Offset]; byte b0 = ReadByte (offset + 4); byte b1 = ReadByte (offset + 5); byte b2 = ReadByte (offset + 6); byte b3 = ReadByte (offset + 7); byte b4 = ReadByte (offset + 8); byte b5 = ReadByte (offset + 9); byte b6 = ReadByte (offset + 10); byte b7 = ReadByte (offset + 11); if ((b0 == 0) && (b1 == 0) && (b2 == 0) && (b3 == 0) && (b4 == 0) && (b5 == 0) && (b6 == 0) && (b7 == 0)) return 0.0; int encodedExponent = (b7 & 0x7F) << 4; encodedExponent += (b6 & 0xF0) >> 4; long mantissa = (encodedExponent == 0) ? 0 : 1; mantissa *= 16; mantissa += b6 & 0x0F; mantissa *= 256; mantissa += b5; mantissa *= 256; mantissa += b4; mantissa *= 256; mantissa += b3; mantissa *= 256; mantissa += b2; mantissa *= 256; mantissa += b1; mantissa *= 256; mantissa += b0; int exponent = -(1024 + 51); exponent += encodedExponent; int sign = ((b7 & 0x80) == 0) ? 1 : -1; double answer = FloatArithmetic.EncodeFloat (sign, exponent, mantissa); return answer; }
public object ReadBignum(FaslFile file, uint offset) { //EncodedObject header = this [arg0Offset]; EncodedObject h1 = this [offset + 4]; if (h1.Datum == 1) { EncodedObject w0 = this [offset + 8]; long total = w0.ToLong (); return total; } if (h1.Datum == 2) { EncodedObject w0 = this [offset + 8]; EncodedObject w1 = this [offset + 12]; long total = (w1.ToLong () << 30) + w0.ToLong (); return total; } throw new NotImplementedException (); }