om_var
= '<OMV
name=" ' sym_name ' ">'
.
om_sym
= '<OMS
cd="' cd_name '" name="' sym_name
'">'
.
om_float
= '<OMF
dec="' fpdec '">'
| '<OMF
hex="' fphex '">'
.
om_string
= '<OMSTR>'
utf7 '</OMSTR>'
.
om_byte_array
= '<OMB>'
base64 '</OMB>'
.
basic_obj
= integer
| om_sym
| om_var
| om_float
| om_string
| om_byte_array
.
start
= '<OMOBJ>
' om_obj
'</OMOBJ>'
om_obj
= basic_obj
| '<OMA> '
om_sym om_obj_seq
'</OMA>'
% om_sym or om_obj?
I '<OME>'
om_sym om_obj_seq
'</OME>'
| '<OMATTR>'
om_attr_seq
'</OMATTR>' om_obj
.
om_obj_seq
= om_obj
| om_obj
om_obj_seq
.
om_attr
= om_sym
om_obj
.
om_attr_seq
= om_attr
|
om_attr om_attr_seq
.