Datatype
datatype_object ::= identifier
":" "{"
"alias" ":" hdf5_path_name_array
"type" ":" datatype
"}"
datatype ::= array_datatype
| bitfield_datatype
| compound_datatype
| enumeration_datatype
| floating_point_datatype
| integer_datatype
| opaque_datatype
| reference_datatype
| string_datatype
| vlen_datatype
array_datatype ::= "{"
"class" ":" "H5T_ARRAY" ","
"base" ":" datatype
| datatype_ref
","
"dims" ":" dims_array
"}"
bitfield_datatype ::= "{"
"class" ":" "H5T_BITFIELD" ","
( bitfield_predef
| bitfield_user
)
"}"
bitfield_predef ::= "base" ":"
( "H5T_STD_B8BE" | "H5T_STD_B8LE"
| "H5T_STD_B16BE" | "H5T_STD_B16LE"
| "H5T_STD_B32BE" | "H5T_STD_B32LE"
| "H5T_STD_B64BE" | "H5T_STD_B64LE" )
bitfield_user ::= "bitOffset" ":" non_negative_integer
","
"byteOrder" ":" byte_order
","
"lsbPad" ":" bit_padding
","
"msbPad" ":" bit_padding
","
"precision" ":" positive_integer
","
"size" ":" positive_integer
bit_padding ::= "H5T_PAD_ZERO"
| "H5T_PAD_ONE"
| "H5T_PAD_BACKGROUND"
byte_order ::= "H5T_ORDER_LE" | "H5T_ORDER_BE"
compound_datatype ::= "{"
"class" ":" "H5T_COMPOUND" ","
"fields" ":" "[" field_list
"]"
"}"
field_list ::= field_def
("," field_def
)*
field_def ::= "{"
"name" ":" ascii_string
","
"type" ":" datatype
| datatype_ref
","
"}"
enumeration_datatype ::= "{"
"base" ":" ( integer_datatype
|
datatype_reference
) ","
"class" ":" "H5T_ENUM" ","
"members" ":" "[" enum_member_list
"]"
"}"
enum_member_list ::= enum_member
("," enum_member
)*
enum_member ::= "{"
"name" ":" ascii_string
","
"value" ":" integer
"}"
floating_point_datatype ::= "{"
"class" ":" "H5T_FLOAT" ","
( float_predef
| float_user
)
"}"
float_predef ::= "base" ":"
( "H5T_IEEE_F32BE" | "H5T_IEEE_F32LE"
| "H5T_IEEE_F64BE" | "H5T_IEEE_F64LE" )
float_user ::= "{"
"bitOffset" ":" non_negative_integer
","
"byteOrder" ":" byte_order
","
"expBias" ":" positive_integer
","
"expBits" ":" positive_integer
","
"expBitPos" ":" positive_integer
","
"intlbPad" ":" bit_padding
","
"lsbPad" ":" bit_padding
","
"mantBits" ":" positive_integer
","
"mantBitPos" ":" non_negative_integer
","
"mantNorm" ":" mant_norm
","
"msbitPad" ":" bit_padding
","
"precision" ":" positive_integer
","
"signBitPos" ":" positive_integer
","
"size" ":" positive_integer
"}"
mant_norm ::= "H5T_NORM_IMPLIED"
| "H5T_NORM_MSBSET"
| "H5T_NORM_NONE"
integer_datatype ::= "{"
"class" ":" "H5T_INTEGER" ","
( integer_predef
| integer_user
)
"}"
integer_predef ::= "base" ":"
( "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" )
integer_user ::= "{"
"bitOffset" ":" non_negative_integer
","
"byteOrder" ":" byte_order
","
"lsbPad" ":" bit_padding
","
"msbPad" ":" bit_padding
","
"precision" ":" positive_integer
","
"signType" ":" sign_type
","
"size" ":" positive_integer
"}"
sign_type ::= "H5T_SGN_NONE" | "H5T_SGN_2"
opaque_datatype ::= "{"
"class" ":" "H5T_OPAQUE" ","
"size" ":" positive_integer
","
"tag" ":" ascii_string
"}"
reference_datatype ::= "{"
"class" ":" "H5T_REFERENCE" ","
"base" ":"
( "H5T_STD_REF_OBJ"
| "H5T_STD_REF_DSETREG" )
object_reference_value ::= path
region_reference_value ::= "{"
"dataset" ":" dataset_ref
";"
"selection" ":" dataspace_selection
"}"
dataset_ref ::= "datasets/" id_reference
datatype_ref ::= "datatypes/" id_reference
group_ref ::= "groups/" id_reference
string_datatype ::= "{"
"charSet" ":" char_encoding
"class" ":" "H5T_STRING" ","
"length" " ":" string_length
"strPad" ":" string_padding
","
"}"
char_encoding ::= "H5T_CSET_ASCII" | "H5T_CSET_UTF8"
string_length ::= positive_integer
| "H5T_VARIABLE"
string_padding ::= "H5T_STR_NULLTERM"
| "H5T_STR_NULLPAD"
| "H5T_STR_SPACEPAD"
vlen_datatype ::= "{"
"class" ":" "H5T_VLEN" ","
"base" ":" datatype
| datatype_ref
","
"}"