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 ","
"}"