Beispiel #1
0
        //////////////////////////////////////////////////////////////////////////
        // 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;
        }