!747
!pcall {

m {
  static S inputID = "#1001532"; // Eins etc.
  
  static new L<S> fields;
  static new L<Map<S, S>> rows;
  
  p {
    for (S line : toLinesFullTrim(loadSnippet(inputID))) try {
      new Matches m;
      
      if (match3("a structure with * fields: ...", line, m)) {
        fields.clear();
        for (int i = 1; i < l(m.m); i++) {
          S s = m.unq(i);
          if (!eq(s, ","))
            fields.add(s);
        }
        print(l(fields) + " field(s)");
      } else {
        L<S> tok = javaTok(line);
        new Map<S, S> row;
        for (int i = 1; i < l(tok); i += 2) {
          S field = unquote(tok.get(i));
          if (!eq(tok.get(i+2), "=")) fail("huh?");
          i += 4;
          S val = unquote(tok.get(i));
          row.put(field, val);
          if (i+2 < l(tok)) {
            i += 2;
            if (!eq(tok.get(i), ",")) fail("huh 2?");
          }
        }
        rows.add(row);
      }
    } catch (Exception e) {
      e.printStackTrace();
      print("Was parsing: " + quote(line));
    }
    
    print(l(fields) + " field(s), " + l(rows) + " row(s).");
  }
}