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 FField read(FStore.Input input) { base.readCommon(input); m_type = input.u2(); base.readAttrs(input); return(this); }
private void readPodMeta(FStore.Input input) { // handle sys bootstrap specially using just java.util.Properties string metaName; if ("sys" == m_podName) { Properties props = new Properties(); props.load(input); input.Close(); metaName = props.getProperty("pod.name"); m_podVersion = props.getProperty("pod.version"); m_fcodeVersion = props.getProperty("fcode.version"); m_depends = new Depend[0]; return; } else { SysInStream sysIn = new SysInStream(input); this.m_meta = (Map)sysIn.readProps().toImmutable(); sysIn.close(); metaName = meta("pod.name"); m_podVersion = meta("pod.version"); m_fcodeVersion = meta("fcode.version"); string dependsStr = meta("pod.depends").Trim(); if (dependsStr.Length == 0) { m_depends = new Depend[0]; } else { string[] toks = dependsStr.Split(';'); m_depends = new Depend[toks.Length]; for (int i = 0; i < m_depends.Length; ++i) { m_depends[i] = Depend.fromStr(toks[i].Trim()); } } } // check meta name matches podName passed to ctor if (m_podName == null) { m_podName = metaName; } if (m_podName != metaName) { throw new System.IO.IOException("Pod name mismatch " + m_podName + " != " + metaName); } // sanity checking if (FConst.FCodeVersion != m_fcodeVersion) { throw new System.IO.IOException("Invalid fcode version " + m_fcodeVersion); } }
////////////////////////////////////////////////////////////////////////// // 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)); }
////////////////////////////////////////////////////////////////////////// // 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 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(); }
////////////////////////////////////////////////////////////////////////// // 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 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 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] = String.Intern(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++) { m_table[i] = Duration.make(input.u8()); } 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] = FanDecimal.fromStr(input.utf(), true); } 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); }
////////////////////////////////////////////////////////////////////////// // 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)); }
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); }
////////////////////////////////////////////////////////////////////////// // 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); }
private void readType(string name, FStore.Input input) { if (m_types == null || m_types.Length == 0) { throw new System.IO.IOException("types.def must be defined first"); } string typeName = name.Substring(0, name.Length - ".fcode".Length); for (int i = 0; i < m_types.Length; ++i) { string n = typeRef(m_types[i].m_self).typeName; if (n == typeName) { m_types[i].read(input); return; } } throw new System.IO.IOException("Unexpected fcode file: " + name); }
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(); }
protected void readAttrs(FStore.Input input) { m_attrs = FAttrs.read(input); }
/// /// Serialize. /// public abstract FTable read(FStore.Input input);
protected void readCommon(FStore.Input input) { m_name = input.name(); m_flags = input.u4(); }
private void lineNumbers(FStore.Input input) { m_lineNums = FBuf.read(input); }
private void lineNumber(FStore.Input input) { input.u2(); m_lineNum = input.u2(); }
private void sourceFile(FStore.Input input) { input.u2(); m_sourceFile = input.utf(); }
private void errTable(FStore.Input input) { m_errTable = FBuf.read(input); }