work on figuring more stuff out--may want to revert this commit
authorBen Pfaff <blp@cs.stanford.edu>
Sun, 31 Jan 2016 17:48:45 +0000 (09:48 -0800)
committerBen Pfaff <blp@cs.stanford.edu>
Sun, 31 Jan 2016 17:48:45 +0000 (09:48 -0800)
dump.c
dump2.c
parse-all-heavy
parse-detail-xml
parse-xml.c

diff --git a/dump.c b/dump.c
index a52cafddf0d414cb06ddd8464c9795949b91e2d9..c57057f025a59bf2d61fc865ecb8319147fb52dc 100644 (file)
--- a/dump.c
+++ b/dump.c
@@ -823,7 +823,7 @@ dump_title(void)
       dump_value(stdout, 0);
       /* Custom footnote marker string. */
       if (match_byte (0x31))
-        dump_value(stdout, 0);
+        dump_value(stderr, 0);
       else
         match_byte_assert (0x58);
       get_u32 ();
diff --git a/dump2.c b/dump2.c
index 15670ecf4bb7c8de1ba8986290fa0fde8f53046f..740cbbedaa449e3a505f09ff30b02de0cca73d9d 100644 (file)
--- a/dump2.c
+++ b/dump2.c
@@ -217,7 +217,8 @@ dump_source(int end, int count, int n_series, const char *name)
   int n_sysmis = 0;
   for (int i = 0; i < n_series; i++)
     {
-      printf ("    series %d: \"%s\"\n        ", i, get_fixed_string(288));
+      printf ("    series %d: \"%s\", %d values:\n        ",
+              i, get_fixed_string(288), count);
       for (int i = 0; i < count; i++)
         {
           double d = get_double();
index 757e46d200866f0174f8e828db96ab792f92ecd6..20370b1fea2219a5b3d64fe4e60c9bc2743a0ce7 100755 (executable)
@@ -1,10 +1,9 @@
 #! /bin/sh
-heavy=`ls -1 unzipped/*/*.bin | grep -v light`
+heavy=`ls -1 unzipped*/*/*.bin | grep -v light`
 
 for d in $heavy; do
-    if ! ./dump2 < $d > /dev/null 2>&1; then
-       echo $d
-       ./dump2 < $d
-       echo
-    fi
+    echo $d
+    ./dump2 < $d
+    echo
+    echo
 done
index f0b175e7ab6c1037733f27abbb37d0c72b854906..6d7858835eea14ea22f584442816e3c1cf632148 100755 (executable)
@@ -2,8 +2,10 @@
 
 # Parse the detail XML members.
 legacyXML=`ls -1 unzipped/*/*.xml |grep -vE 'outputViewer|stats|chart|model'`
+for d in $legacyXML; do echo $d; done | wc
+#grep -h -o '<style id="visualizationStyle"[^>]*>' $legacyXML
 if test -n "$1"; then
     for d in $legacyXML; do
        ./parse-xml $d $1
-    done | sort | uniq
+    done
 fi
index 3a32ee36e2731b317fe6a083b77b4d0f23373e80..0c00abd908a57678cfae6f47db31b45df5cd1f66 100644 (file)
@@ -36,15 +36,26 @@ print_containment (xmlNode *node)
     {
       if (node->type == XML_ELEMENT_NODE)
         {
-          const char *child_names[512];
-          int child_name_cnt[512];
+          const char *child_names[5000];
+          int child_name_cnt[5000];
           int n_names = 0;
           for (xmlNode *child = node->children; child; child = child->next)
             {
               const char *name;
 
               if (child->type == XML_ELEMENT_NODE)
-                name = (char *) child->name;
+                {
+                  name = (char *) child->name;
+                  if (!strcmp((char *) node->name, "derivedVariable")
+                      && !strcmp((char *) name, "extension"))
+                    {
+                      char *p;
+                      asprintf(&p, "%s/%s", 
+                               (char *) xmlGetProp (child, (xmlChar *) "from"),
+                               (char *) xmlGetProp (child, (xmlChar *) "helpId"));
+                      name = p;
+                    }
+                }
               else if (child->type == XML_TEXT_NODE)
                 name = "<text>";
               else if (child->type == XML_CDATA_SECTION_NODE)
@@ -58,17 +69,19 @@ print_containment (xmlNode *node)
               else
                 name = "<other>";
 
+#if 0
               for (int i = 0; i < n_names; i++)
                 if (!strcmp(name, child_names[i]))
                   {
                     child_name_cnt[i]++;
                     goto next;
                   }
+#endif
               child_names[n_names] = name;
               child_name_cnt[n_names] = 1;
               n_names++;
 
-            next:;
+              //next:;
             }
 
           printf ("%s", node->name);
@@ -104,6 +117,14 @@ print_labels (xmlNode *node)
     }
 }
 
+static int
+compare_strings(const void *a_, const void *b_)
+{
+  const void *const *ap = a_;
+  const void *const *bp = b_;
+  return strcmp (*ap, *bp);
+}
+
 static void
 print_attributes (xmlNode * a_node)
 {
@@ -111,9 +132,19 @@ print_attributes (xmlNode * a_node)
     {
       if (node->type == XML_ELEMENT_NODE)
         {
-          printf ("%s", node->name);
+          printf ("%s<-%s", node->name, node->parent->name);
+
+          char *attrs[500];
+          int n_attrs = 0;
           for (xmlAttr *attr = node->properties; attr; attr = attr->next)
-            printf (" %s", attr->name);
+            if (!strcmp((char *) attr->name, "baseFormat"))
+              printf(" baseFormat=%s", attr->children->content);
+            else
+              attrs[n_attrs++] = (char *) attr->name;
+          qsort(attrs, n_attrs, sizeof *attrs, compare_strings);
+
+          for (int i = 0; i < n_attrs; i++)
+            printf (" %s", attrs[i]);
           putchar ('\n');
         }