diff options
-rw-r--r-- | doc/html/ddl.html | 245 |
1 files changed, 123 insertions, 122 deletions
diff --git a/doc/html/ddl.html b/doc/html/ddl.html index 797a30b..f0b5dd7 100644 --- a/doc/html/ddl.html +++ b/doc/html/ddl.html @@ -85,38 +85,36 @@ This section contains a brief explanation of the symbols used in the DDL. <super_block_content> ::= TBD -<root_group> ::= GROUP "/" { <unamed_datatype>* <object_id><FONT SIZE=1.7>opt</FONT> <group_attribute>* <group_member>* } +<root_group> ::= GROUP "/" { <unamed_datatype>* <object_id><FONT SIZE=1.7>opt</FONT> + <group_attribute>* <group_member>* } -<unamed_datatype> ::= DATATYPE <unamed_type_name> { <compound_type> } +<datatype> ::= <atomic_type> | <compound_type> | <variable_length_type> | + <array_type> -<unamed_type_name> ::= the assigned name for unamed type is in the form of - #oid1:oid2, where oid1 and oid2 are the object ids of the type - -<variable_length_type> ::= H5T_VLEN of <atomic_type> - -<compound_type> ::= <member_type_def>+ - -<member_type_def> ::= <scalar_type_def> | <array_type_def> +<unamed_datatype> ::= DATATYPE <unamed_type_name> { <datatype> } -<scalar_type_def> ::= <atomic_type> <field_name> ; +<unamed_type_name> ::= the assigned name for unamed type is in the form of + #oid1:oid2, where oid1 and oid2 are the object ids of the type -<atomic_type> ::= <integer> | <float> | <time> | <string> | <bitfield> | <opaque> | - <reference> | <enum> +<atomic_type> ::= <integer> | <float> | <time> | <string> | <bitfield> | + <opaque> | <reference> | <enum> -<integer> ::= H5T_STD_I8BE | H5T_STD_I8LE | H5T_STD_I16BE | H5T_STD_I16LE | H5T_STD_I32BE | - H5T_STD_I32LE | H5T_STD_I64BE | H5T_STD_I64LE | H5T_STD_U8BE | - H5T_STD_U8LE | H5T_STD_U16BE | H5T_STD_U16LE | H5T_STD_U32BE | - H5T_STD_U32LE | H5T_STD_U64BE | H5T_STD_U64LE | H5T_NATIVE_CHAR | - H5T_NATIVE_UCHAR | H5T_NATIVE_SHORT | H5T_NATIVE_USHORT | - H5T_NATIVE_INT | H5T_NATIVE_UINT | H5T_NATIVE_LONG | H5T_NATIVE_ULONG | - H5T_NATIVE_LLONG | H5T_NATIVE_ULLONG +<integer> ::= H5T_STD_I8BE | H5T_STD_I8LE | H5T_STD_I16BE | + H5T_STD_I16LE | H5T_STD_I32BE | H5T_STD_I32LE | H5T_STD_I64BE | + H5T_STD_I64LE | H5T_STD_U8BE | H5T_STD_U8LE | H5T_STD_U16BE | + H5T_STD_U16LE | H5T_STD_U32BE | H5T_STD_U32LE | H5T_STD_U64BE | + H5T_STD_U64LE | H5T_NATIVE_CHAR | H5T_NATIVE_UCHAR | + H5T_NATIVE_SHORT | H5T_NATIVE_USHORT | H5T_NATIVE_INT | + H5T_NATIVE_UINT | H5T_NATIVE_LONG | H5T_NATIVE_ULONG | + H5T_NATIVE_LLONG | H5T_NATIVE_ULLONG -<float> ::= H5T_IEEE_F32BE | H5T_IEEE_F32LE | H5T_IEEE_F64BE | H5T_IEEE_F64LE | - H5T_NATIVE_FLOAT | H5T_NATIVE_DOUBLE | H5T_NATIVE_LDOUBLE +<float> ::= H5T_IEEE_F32BE | H5T_IEEE_F32LE | H5T_IEEE_F64BE | + H5T_IEEE_F64LE | H5T_NATIVE_FLOAT | H5T_NATIVE_DOUBLE | + H5T_NATIVE_LDOUBLE <time> ::= TBD -<string> ::= { STRSIZE <strsize> ; +<string> ::= H5T_STRING { STRSIZE <strsize> ; STRPAD <strpad> ; CSET <cset> ; CTYPE <ctype> ; } @@ -131,32 +129,38 @@ This section contains a brief explanation of the symbols used in the DDL. <bitfield> ::= TBD -<opaque> ::= { H5T_OPAQUE; OPAQUE_TAG <identifier>; } +<opaque> ::= H5T_OPAQUE { <identifier> } + +<reference> ::= H5T_REFERENCE { <ref_type> } + +<ref_type> ::= H5T_STD_REF_OBJECT | H5T_STD_REF_DSETREG + +<compound_type> ::= H5T_COMPOUND { <member_type_def>+ } -<reference> ::= H5T_REFERENCE +<member_type_def> ::= <datatype> <field_name> ; <field_name> ::= <identifier> -<array_type_def> ::= <atomic_type> <field_name> <dim_sizes> ; +<variable_length_type> ::= H5T_VLEN { <datatype> } -<dim_sizes> ::= [dimsize1][dimsize2]..., where dimsize1, dimsize2 are integers +<array_type> ::= H5T_ARRAY { <dim_sizes> <datatype> } -<group_attribute> ::= <attribute> +<dim_sizes> ::= [dimsize1][dimsize2]... +// where dimsize1, dimsize2 are integers -<attribute> ::= ATTRIBUTE <attr_name> { <datatype> - <dataspace> - <object_id><FONT SIZE=1.7>opt</FONT> +<attribute> ::= ATTRIBUTE <attr_name> { <dataset_type> + <dataset_space> <data><FONT SIZE=1.7>opt</FONT> } -// <datatype> and <dataspace> must appear before <data>. <attr_name> ::= <identifier> -<datatype> ::= DATATYPE { <atomic_type> } | - DATATYPE { <compound_type> } | - DATATYPE { <variable_length_type> } | - DATATYPE { <named_type> } +<dataset_type> ::= DATATYPE <path_name> | <datatype> + +<enum> ::= H5T_ENUM { <enum_base_type> <enum_def>+ } -<enum> ::= H5T_ENUM { <integer>; <enum_def>+ } +<enum_base_type> ::= <integer> +// Currently enums can only hold integer type data, but they may be expanded +// in the future to hold any datatype <enum_def> ::= <enum_symbol> <enum_val>; @@ -164,32 +168,39 @@ This section contains a brief explanation of the symbols used in the DDL. <enum_val> ::= an integer; -<named_type> ::= <path_name> +<path_name> ::= <path_part>+ + +<path_part> ::= /<identifier> + +<dataspace> ::= <scalar_space> | <simple_space> | <complex_space> -<path_name> ::= <identifier> +<scalar_space> ::= SCALAR -<dataspace> ::= DATASPACE { SCALAR } | - DATASPACE { SIMPLE <current_dims> / <max_dims> } | - DATASPACE { COMPLEX <ds_definition>+ } | - DATASPACE { <dataspace_name> } +<simple_space> ::= SIMPLE { <current_dims> / <max_dims> } + +<complex_space> ::= COMPLEX { <complex_space_definition> } + +<dataset_space> ::= DATASPACE <path_name> | <dataspace> <current_dims> ::= (<i>i<FONT SIZE=1.0>1</i></FONT>, <i>i<FONT SIZE=1.0>2</i></FONT>, ... ), where <i>i<FONT SIZE=1.0>k</i></FONT> is an integer, <i>k</i> = 1,2,... <max_dims> ::= (<i>i<FONT SIZE=1.0>1</i></FONT>, <i>i<FONT SIZE=1.0>2</i></FONT>, ... ) where <i>i<FONT SIZE=1.0>k</i></FONT> is an integer or H5S_UNLIMITED -<ds_definition> ::= TBD - -<dataspace_name> ::= <identifier> +<complex_space_definition> ::= TBD -<data> ::= DATA { <scalar_space_data> | - <simple_space_data> | - <complex_space_data> | - <variable_length_space_data> } +<data> ::= DATA { <scalar_space_data> | <simple_space_data> | + <complex_space_data> } -<scalar_space_data> ::= <atomic_scalar_data> | <compound_scalar_data> +<scalar_space_data> ::= <any_element> -<atomic_scalar_data> :: = <integer_data> | <float_data> | <time_data> | <string_data> | - <bitfield_data> | <opaque_data> | <enum_data> | <reference_data> +<any_element> ::= <atomic_element> | <compound_element> | + <variable_length_element> | <array_element> + +<any_data_seq> ::= <any_element> | <any_element>, <any_data_seq> + +<atomic_element> :: = <integer_data> | <float_data> | <time_data> | + <string_data> | <bitfield_data> | <opaque_data> | + <enum_data> | <reference_data> <integer_data> ::= an integer @@ -199,14 +210,14 @@ This section contains a brief explanation of the symbols used in the DDL. <string_data> ::= a string // A string is enclosed in double quotes. -// If a string is displayed on more than one line, string concatenate operator '//'is used. +// If a string is displayed on more than one line, string concatenate +// operator '//'is used. <bitfield_data> ::= TBD <opaque_data> ::= TBD <enum_data> ::= <enum_symbol> -//maybe will be <enum_symbol> in the future <reference_data> ::= <object_ref_data> | <data_region_data> | NULL @@ -218,12 +229,13 @@ This section contains a brief explanation of the symbols used in the DDL. <object_num> ::= an integer:an integer | an integer -<data_region_data> ::= H5T_STD_REF_DSETREG <object_num> {<data_region_data_info>, - <data_region_data_info>, ...} +<data_region_data> ::= H5T_STD_REF_DSETREG <object_num> + { <data_region_data_info>, <data_region_data_info>, ...} <data_region_data_info> ::= <region_info> | <point_info> -<region_info> ::= (<lower_bound>:<upper_bound>, <lower_bound>:<upper_bound>, ...) +<region_info> ::= (<lower_bound>:<upper_bound>, + <lower_bound>:<upper_bound>, ...) <lower_bound> ::= an integer @@ -231,50 +243,45 @@ This section contains a brief explanation of the symbols used in the DDL. <point_info> ::= (an integer, an integer, ...) -<compound_scalar_data> ::= { [ <member_data> ], [ <member_data> ], ... } - -<member_data> ::= <atomic_scalar_data> | <atomic_simple_data> - -<atomic_simple_data> :: = <atomic_element>, <atomic_simple_data> | <atomic_element> +<compound_element> ::= { <any_data_seq> } -<atomic_element> ::= <atomic_scalar_data> +<atomic_simple_data> :: = <atomic_element>, <atomic_simple_data> | + <atomic_element> -<simple_space_data> :: = <atomic_simple_data> | <compound_simple_data> +<simple_space_data> :: = <any_data_seq> -<variable_length_space_data> ::= <atomic_simple_data> +<variable_length_element> ::= ( <any_data_seq> ) -<compound_simple_data> ::= <compoud_element>, <compound_element>, ... - -<compound_element> ::= <compound_scalar_data> +<array_element> ::= [ <any_data_seq> ] <complex_space_data> ::= TBD -<group_member> ::= <named_datatype> | <named_dataspace> | <group> | <dataset> | - <softlink> - -<named_datatype> ::= DATATYPE <type_name> { <compound_type> } +<named_datatype> ::= DATATYPE <type_name> { <datatype> } <type_name> ::= <identifier> <named_dataspace> ::= TBD -<group> ::= GROUP <group_name> { <hardlink> } | - GROUP <object_id><FONT SIZE=1.7>opt</FONT> <group_name> { <group_attribute>* <group_member>* } +<hardlink> ::= HARDLINK <path_name> + +<group> ::= GROUP <group_name> { <hardlink> | <group_info> } <group_name> ::= <identifier> -<hardlink> ::= HARDLINK <path_name> +<group_info> ::= <group_attribute>* <group_member>* + +<group_attribute> ::= <attribute> + +<group_member> ::= <named_datatype> | <named_dataspace> | <group> | + <dataset> | <softlink> -<dataset> ::= DATASET <dataset_name> { <hardlink> } | - DATASET <dataset_name> { <datatype> - <dataspace> - <storagelayout><FONT SIZE=1.7>opt</FONT> - <compression><FONT SIZE=1.7>opt</FONT> - <dataset_attribute>* - <object_id><FONT SIZE=1.7>opt</FONT> - <data><FONT SIZE=1.7>opt</FONT> } -// Tokens within {} can be in any order as long as <data> and <dataset_attribute> -// are after <datatype> and <dataspace>. +<dataset> ::= DATASET <dataset_name> { <hardlink> | <dataset_info> } + +<dataset_info> ::= <dataset_type> <dataset_space> <storagelayout><FONT SIZE=1.7>opt</FONT> + <compression><FONT SIZE=1.7>opt</FONT> <dataset_attribute>* <object_id><FONT SIZE=1.7>opt</FONT> + <data><FONT SIZE=1.7>opt</FONT> +// Tokens above can be in any order as long as <data> is +// after <dataset_type> and <dataset_space>. <dataset_name> ::= <identifier> @@ -323,21 +330,20 @@ This section contains a brief explanation of the symbols used in the DDL. HDF5 "example.h5" { GROUP "/" { ATTRIBUTE "attr1" { - DATATYPE { - { STRSIZE 17; + DATATYPE H5T_STRING { + STRSIZE 17; STRPAD H5T_STR_NULLTERM; CSET H5T_CSET_ASCII; CTYPE H5T_C_S1; } - } - DATASPACE { SCALAR } + DATASPACE SCALAR DATA { "string attribute" } } DATASET "dset1" { - DATATYPE { H5T_STD_I32BE } - DATASPACE { SIMPLE ( 10, 10 ) / ( 10, 10 ) } + DATATYPE H5T_STD_I32BE + DATASPACE SIMPLE { ( 10, 10 ) / ( 10, 10 ) } DATA { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, @@ -352,46 +358,44 @@ GROUP "/" { } } DATASET "dset2" { - DATATYPE { + DATATYPE H5T_COMPOUND { H5T_STD_I32BE "a"; H5T_IEEE_F32BE "b"; H5T_IEEE_F64BE "c"; } - DATASPACE { SIMPLE ( 5 ) / ( 5 ) } + DATASPACE SIMPLE { ( 5 ) / ( 5 ) } DATA { { - [ 1 ], - [ 0.1 ], - [ 0.01 ] + 1, + 0.1, + 0.01 }, { - [ 2 ], - [ 0.2 ], - [ 0.02 ] + 2, + 0.2, + 0.02 }, { - [ 3 ], - [ 0.3 ], - [ 0.03 ] + 3, + 0.3, + 0.03 }, { - [ 4 ], - [ 0.4 ], - [ 0.04 ] + 4, + 0.4, + 0.04 }, { - [ 5 ], - [ 0.5 ], - [ 0.05 ] + 5, + 0.5, + 0.05 } } } GROUP "group1" { DATASET "dset3" { - DATATYPE { - "/type1" - } - DATASPACE { SIMPLE ( 5 ) / ( 5 ) } + DATATYPE "/type1" + DATASPACE SIMPLE { ( 5 ) / ( 5 ) } DATA { { [ 0, 1, 2, 3 ], @@ -437,13 +441,10 @@ GROUP "/" { } } DATASET "dset3" { - DATATYPE { H5T_VLEN of H5T_STD_I32LE } - DATASPACE { SIMPLE ( 4 ) / ( 4 ) } + DATATYPE H5T_VLEN { H5T_STD_I32LE } + DATASPACE SIMPLE { ( 4 ) / ( 4 ) } DATA { - 0 - 10, 11 - 20, 21, 22 - 30, 31, 32, 33 + (0), (10, 11), (20, 21, 22), (30, 31, 32, 33) } } GROUP "group2" { @@ -452,9 +453,9 @@ GROUP "/" { SOFTLINK "slink1" { LINKTARGET "somevalue" } - DATATYPE "type1" { - H5T_STD_I32BE "a"[4]; - H5T_IEEE_F32BE "b"[5][6]; + DATATYPE "type1" H5T_COMPOUND { + H5T_ARRAY { [4] H5T_STD_I32BE } "a"; + H5T_ARRAY { [5][6] H5T_IEEE_F32BE } "b"; } } } |