////////////////////////////////////////////////////////////////////////// // Read ////////////////////////////////////////////////////////////////////////// public static FAttrs read(FStore.Input input) { int n = input.u2(); if (n == 0) return none; FAttrs attrs = new FAttrs(); for (int i=0; i<n; ++i) { string name = input.name(); switch (name[0]) { case 'E': if (name == FConst.ErrTableAttr) { attrs.errTable(input); continue; } break; case 'F': if (name == FConst.FacetsAttr) { attrs.facets(input); continue; } break; case 'L': if (name == FConst.LineNumberAttr) { attrs.lineNumber(input); continue; } if (name == FConst.LineNumbersAttr) { attrs.lineNumbers(input); continue; } break; case 'S': if (name == FConst.SourceFileAttr) { attrs.sourceFile(input); continue; } break; } int skip = input.u2(); if (input.skip(skip) != skip) throw new System.IO.IOException("Can't skip over attr " + name); } return attrs; }
private void facets(FStore.Input input) { input.u2(); int n = input.u2(); m_facets = new FFacet[n]; for (int i=0; i<n; ++i) { FFacet f = m_facets[i] = new FFacet(); f.type = input.u2(); f.val = input.utf(); } }
public FMethod read(FStore.Input input) { base.readCommon(input); m_ret = input.u2(); m_inheritedRet = input.u2(); m_maxStack = input.u1(); m_paramCount = input.u1(); m_localCount = input.u1(); m_vars = new FMethodVar[m_paramCount+m_localCount]; for (int i=0; i<m_vars.Length; i++) m_vars[i] = new FMethodVar().read(input); m_code = FBuf.read(input); base.readAttrs(input); return this; }
public int m_type; // type qname index #endregion Fields #region Methods public FField read(FStore.Input input) { base.readCommon(input); m_type = input.u2(); base.readAttrs(input); return this; }
////////////////////////////////////////////////////////////////////////// // IO ////////////////////////////////////////////////////////////////////////// public FMethodVar read(FStore.Input input) { name = input.name(); type = input.u2(); flags = input.u1(); int attrCount = input.u2(); for (int i=0; i<attrCount; ++i) { string attrName = input.fpod.name(input.u2()); FBuf attrBuf = FBuf.read(input); if (attrName == FConst.ParamDefaultAttr) def = attrBuf; } return this; }
public void read(FStore.Input input) { if (input.fpod.m_fcodeVersion == null) throw new IOException("FStore.Input.version == null"); m_fields = new FField[input.u2()]; for (int i=0; i<m_fields.Length; i++) m_fields[i] = new FField().read(input); m_methods = new FMethod[input.u2()]; for (int i=0; i<m_methods.Length; i++) m_methods[i] = new FMethod().read(input); m_attrs = FAttrs.read(input); m_hollow = false; input.Close(); }
////////////////////////////////////////////////////////////////////////// // IO ////////////////////////////////////////////////////////////////////////// public static FBuf read(FStore.Input input) { int len = input.u2(); if (len == 0) return null; byte[] buf = new byte[len]; for (int r=0; r<len;) r += input.Read(buf, r, len-r); return new FBuf(buf, len); }
////////////////////////////////////////////////////////////////////////// // Meta IO ////////////////////////////////////////////////////////////////////////// public FType readMeta(FStore.Input input) { m_self = input.u2(); m_base = input.u2(); m_mixins = new int[input.u2()]; for (int i=0; i<m_mixins.Length; i++) m_mixins[i] = input.u2(); m_flags = input.u4(); return this; }
private void lineNumber(FStore.Input input) { input.u2(); m_lineNum = input.u2(); }
private void sourceFile(FStore.Input input) { input.u2(); m_sourceFile = input.utf(); }
public override FTable read(FStore.Input input) { if (input == null) { m_size = 0; return this; } m_size = input.u2(); m_table = new object[m_size]; for (int i=0; i<m_size; i++) m_table[i] = Uri.fromStr(input.utf()); return this; }
public override FTable read(FStore.Input input) { if (input == null) { m_size = 0; return this; } m_size = input.u2(); m_table = new object[m_size]; for (int i=0; i<m_size; i++) { int parent = input.u2(); int name = input.u2(); int ret = input.u2(); int paramn = input.u1(); int[] x = new int[3+paramn]; x[0] = parent; x[1] = name; x[2] = ret; for (int j=0; j<paramn; ++j) x[j+3] = input.u2(); m_table[i] = new FTuple(x); } return this; }
public override FTable read(FStore.Input input) { if (input == null) { m_size = 0; return this; } m_size = input.u2(); m_table = new object[m_size]; for (int i=0; i<m_size; i++) { int[] x = { input.u2(), input.u2(), input.u2() }; m_table[i] = new FTuple(x); } return this; }
public override FTable read(FStore.Input input) { if (input == null) { m_size = 0; return this; } m_size = input.u2(); m_table = new object[m_size]; for (int i=0; i<m_size; i++) m_table[i] = Duration.make(input.u8()); return this; }
////////////////////////////////////////////////////////////////////////// // IO ////////////////////////////////////////////////////////////////////////// public static FTypeRef read(FStore.Input input) { FPod fpod = input.fpod; string podName = fpod.name(input.u2()); string typeName = fpod.name(input.u2()); string sig = input.utf(); // full sig if parameterized, "?" if nullable, or "" return new FTypeRef(podName, typeName, sig); }
private void readTypeMeta(FStore.Input input) { m_types = new FType[input.u2()]; for (int i=0; i<m_types.Length; i++) { m_types[i] = new FType(this).readMeta(input); m_types[i].m_hollow = true; } input.Close(); }