////////////////////////////////////////////////////////////////////////// // 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; }
////////////////////////////////////////////////////////////////////////// // 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; }
protected void readCommon(FStore.Input input) { m_name = input.name(); m_flags = input.u4(); }