void scanObject()
    throws IOException
  {
    int ch = read();
    
    switch (ch) {
    case 0x00: case 0x01: case 0x02: case 0x03:
    case 0x04: case 0x05: case 0x06: case 0x07:
    case 0x08: case 0x09: case 0x0a: case 0x0b:
    case 0x0c: case 0x0d: case 0x0e: case 0x0f:
      
    case 0x10: case 0x11: case 0x12: case 0x13:
    case 0x14: case 0x15: case 0x16: case 0x17:
    case 0x18: case 0x19: case 0x1a: case 0x1b:
    case 0x1c: case 0x1d: case 0x1e: case 0x1f:
      skip(ch - 0x00);
      break;

      /*
    case BC_OBJECT_DEF: {
      scanObjectDef();
      scanObject();
      break;
    }
    */
    
    case 0x60: case 0x61: case 0x62: case 0x63:
    case 0x64: case 0x65: case 0x66: case 0x67:
    case 0x68: case 0x69: case 0x6a: case 0x6b:
    case 0x6c: case 0x6d: case 0x6e: case 0x6f:
    {
      int index = ch - 0x60;
      
      String []fields = _classDefs.get(index);
      String type = fields[fields.length - 1]; 
      
      // scanObjectInstance(type, fields, fields.length - 1);
      break;
    }
    
    default:
      _peek = ch;
      skipObject();
      break;
    }
  }
void scanObject ( ) throws IOException { int ch = read ( ) ; switch ( ch ) { case 0x00 : case 0x01 : case 0x02 : case 0x03 : case 0x04 : case 0x05 : case 0x06 : case 0x07 : case 0x08 : case 0x09 : case 0x0a : case 0x0b : case 0x0c : case 0x0d : case 0x0e : case 0x0f : case 0x10 : case 0x11 : case 0x12 : case 0x13 : case 0x14 : case 0x15 : case 0x16 : case 0x17 : case 0x18 : case 0x19 : case 0x1a : case 0x1b : case 0x1c : case 0x1d : case 0x1e : case 0x1f : skip ( ch - 0x00 ) ; break ; case 0x60 : case 0x61 : case 0x62 : case 0x63 : case 0x64 : case 0x65 : case 0x66 : case 0x67 : case 0x68 : case 0x69 : case 0x6a : case 0x6b : case 0x6c : case 0x6d : case 0x6e : case 0x6f : { int index = ch - 0x60 ; String [ ] fields = _classDefs . get ( index ) ; String type = fields [ fields . length - 1 ] ; break ; } default : _peek = ch ; skipObject ( ) ; break ; } }
/*
private boolean matchImpl()
throws IOException
{
scanObject();

return _expr.evalBoolean(this);
}

public void scan(PathMapHessian pathMap, InputStream is)
{
try {
_topPathMap = pathMap;

_is = is;
_peek = -1;

_classDefs.clear();
_pathMap = _topPathMap;

scanObject();
} catch (IOException e) {
throw new RuntimeException(e);
}
}