public static Attributed readAttrs(Reader source) throws IOException{
		StreamTokenizer in = new StreamTokenizer(source);
		AttributedImpl attrs = new AttributedImpl();
		Attr attr = null;
		in.commentChar('#');
		in.ordinaryChar('/');
		while(in.nextToken() != StreamTokenizer.TT_EOF){
			if(in.ttype == StreamTokenizer.TT_WORD){
				if(attr != null){
					attr.setValue(in.sval);
					attr = null;
				}else{
					attr  = new Attr(in.sval);
					attrs.add(attr);
				}
			}else if(in.ttype == '='){
				if(attr == null)
					throw new IOException("misplaced '=");
			}else{
				if(attr == null){
					throw new IOException("bad Attr name");
				}
				attr.setValue(new Double(in.nval));
				attr = null;
			}
		}
		return attrs;
	}