Add support for reading and writing SPV files.
[pspp] / src / output / spv / old-binary.grammar
diff --git a/src/output/spv/old-binary.grammar b/src/output/spv/old-binary.grammar
new file mode 100644 (file)
index 0000000..0e7f0d1
--- /dev/null
@@ -0,0 +1,23 @@
+LegacyBinary =>
+    00 byte[version] int16[n-sources] int32[member-size]
+    Metadata*[n-sources][metadata]
+    #Data*[n-sources][data]
+    #Strings?
+
+Metadata =>
+    int32[n-values] int32[n-variables] int32[data-offset]
+    byte*28[source-name]
+    vB0(byte*36[ext-source-name] int32[x])
+
+#Data => Variable*[n-variables]
+#Variable => byte*288[variable-name] double*[n-values]
+
+Strings => SourceMaps[maps] Labels
+
+SourceMaps => int32[n-maps] SourceMap*[n-maps]
+SourceMap => string[source-name] int32[n-variables] VariableMap*[n-variables]
+VariableMap => string[variable-name] int32[n-data] DatumMap*[n-data]
+DatumMap => int32[value-idx] int32[label-idx]
+
+Labels => int32[n-labels] Label*[n-labels]
+Label => int32[frequency] string[label]