KVF format is used by the QDOS classes KVFDataSource, KVDataBase, and StringRep.
// EXAMPLE KVF FILE // // KVF file for ampte uks pdb attrib data // Author="Anonymous"; Pi = 3.14; Ampte_uks_description = { "Ampte UKS was a small satellite ..", "It had a small battery as well" }; // example of hierarchical naming forests/sherwood = { "oak", "elm" }; forests/new = {"elm", "beech", "oak"}; // END OF EXAMPLE
key_value_pair := <name> "=" <value> ";" value := <numeric_val> | <string_val> | <numeric_seq> | <string_seq> numeric_val := C_syntax_numerical_constant string_val := double_quote_delimited_character_string numeric_seq := "{" numeric_val "}" "{" comma_separated_list_of_numeric_vals "}" string_seq := "{" string_val "}" "{" comma_separated_list_of_string_vals "}"Names can be hierarchical, with the conventional separator "/". Comments follow the C++ style. Strings can contain the standard C-style escaped variants, eg "\"" for double quote.
sequence_of_arrays = [2] [2,2] { {24.3, 34,2, 34.5, 1.7}, {25.6, 3, 4,6,} };The first dimension is the number of items in the sequence, and the second dimension block is the dimensionality of every item (ie all items the same dimensionality. If the second block is "[*]" then each matrix has to have its own dimensionality information (as in the following example:
sequence_of_different_arrays = [3][*]{ [2,1]{34.5,23.1}, [2,3]{1,2,3,4,5,6}, [2] {34.9, 94.3 } };
This has been implemented in StringRep, but not KVFDataSource. Comments on format are welcome!
The suggestion has been made to make hierarchical naming using the following format:
FileMenu = { Open_str = "Open..."; timeout=5; };This has not yet been attempted or decided!