START_DELIMITER DATA_STRUCT_INFO DATA_INFO END_DELIMITER
| DATA_STRUCT_ID{,OFFSETS_ORDER}{,INFO}; *:%CONV_SPEC; |
START_DELIMITER DATA_STRUCT_INFO [DATA_INFO] END_DELIMITER
| DATA_STRUCT_ID{,OFFSETS_ORDER}{,INFO}; [(OFFSET:%CONV_SPEC;) | (START_OFFSET-END_OFFSET:%CONV_SPEC;)] {*:%CONV_SPEC;} |
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
| | DATA_STRUCT_INFO | DATA_INFO | |
|_________________|________________________________________________________________________________________|__________________________________________________________________________________________________________________________________________________________|____|
| | DATA_STRUCT_ID | DATA_STRUCT_FLG | OFFSETS | CONV_SPEC | |
|_________________|_______________________________|________________________________________________________|________________________________________________________________|_________________________________________________________________________________________|____|
| START_DELIMITER | DATA_STRUCT_ID | DATA_STRUCT_FLG_1 | DATA_STRUCT_FLG_2 | END_DELIMITER | END_OFFSET | CONV_SPEC_INIT | LEN_MOD_1 | LEN_MOD_2 | |
| | | | | ALL_OFFSETS/REMAINING_OFFSETS | | | | CONV_SPEC | |
| | | | | OFFSET/START_OFFSET | | | | | |
|_________________|_______________________________|______________________|_________________________________|___________________________________|____________________________|________________|___________|____________________________________________________________|____|
| | | [0-9]{1, 5} | b | b | | | [0-9]{1, 5} | % | h | h | |
| | | l | l | * | | | l | l | |
| | | i | i | [0-9]{1, 5} | | | j | d | |
| | | | | | | | z | i | |
| | | | | | | | t | o | |
| | | | | | | | L | u | |
| | | | | | | | | x | |
| | | | | | | | | X | |
| | | | | | | | | f | |
| | | | | | | | | F | |
| | | | | | | | | e | |
| | | | | | | | | E | |
| | | | | | | | | g | |
| | | | | | | | | G | |
| | | | | | | | | a | |
| | | | | | | | | A | |
| | | | | | | | | c | |
| | | | | | | | | s | |
| | | | | | | | | p | |
|_________________|_______________________________|______________________|_________________________________|___________________________________|____________________________|________________|___________|____________________________________________________________|____|
| | , | , | ; | : | : | | | | |
| | ; | ; | | - | | | | | |
|_________________|_______________________________|______________________|_________________________________|___________________________________|____________________________|________________|___________|____________________________________________________________|____|
| S0 | S1 | S2 | S3 | S4 | S5 | S6 | S7 | S8 | S9 |
|_________________|_______________________________|______________________|_________________________________|___________________________________|____________________________|________________|___________|____________________________________________________________|____|
| | , if 0 < DataStructIDLen >= 5 | , S3 | ; if (BigEndianFlg_Set && | | if DataInfoElemNum > 0 | : if 0 < EndOffsetLen >= 5 | | h S8 | h if LenModFlg == LenModFlg_h | |
| | S2 | ; set DataStructInfo | LittleEndianFlg_Unset) || | S9 | S6 | | l S8 | l if LenModFlg == LenModFlg_l | |
| | ; if 0 < DataStructIDLen >= 5 | S4 | (BigEndianFlg_Unset && | : if (AsteriskFlg_Set && | | | | d, i, o, u, x, X if LenModFlg == LenModFlg_None || | |
| | set DataStructInfo | | LittleEndianFlg_Set) | StartOffsetLen == 0) || | | | | LenModFlg == LenModFlg_h || | |
| | S4 | | set DataStructInfo | (AsteriskFlg_Unset && | | | | LenModFlg == LenModFlg_hh || | |
| | | | S4 | 0 < StartOffsetLen >= 5) | | | | LenModFlg == LenModFlg_l || | |
| | | | | S6 | | | | LenModFlg == LenModFlg_ll || | |
| | | | | - if AsteriskFlg_Unset && | | | | LenModFlg == LenModFlg_j || | |
| | | | | 0 < StartOffsetLen >= 5 | | | | LenModFlg == LenModFlg_z || | |
| | | | | S5 | | | | LenModFlg == LenModFlg_t | |
| | | | | | | | | set DataInfoArr[ DataInfoElemNum ] | |
| | | | | | | | | S4 | |
| | | | | | | | | f, F, e, E, g, G, a, A if LenModFlg == LenModFlg_None || | |
| | | | | | | | | LenModFlg == LenModFlg_l || | |
| | | | | | | | | LenModFlg == LenModFlg_L | |
| | | | | | | | | set DataInfoArr[ DataInfoElemNum ] | |
| | | | | | | | | S4 | |
| | | | | | | | | c, s if LenModFlg == LenModFlg_None || | |
| | | | | | | | | LenModFlg == LenModFlg_l | |
| | | | | | | | | set DataInfoArr[ DataInfoElemNum ] | |
| | | | | | | | | S4 | |
| | | | | | | | | p if LenModFlg == LenModFlg_None | |
| | | | | | | | | set DataInfoArr[ DataInfoElemNum ] | |
| | | | | | | | | S4 | |
|_________________|_______________________________|______________________|_________________________________|___________________________________|____________________________|________________|___________|____________________________________________________________|____|