[erlang-questions] using variable in bit syntax
Haobo Yu
haoboy@REDACTED
Fri Jul 13 21:44:58 CEST 2007
Hi,
I'm rather new to erlang, so please pardon my ignorance.
I'm trying to parse a packet header using the bit syntax. There is a
byte in the header that indicates the endianness of the subsequent
integers in the packet header. For example:
endianness : 8/unsigned-integer
%% The following integers follow the above endianness
value1 : 32/integer
value2 : 32/integer
...
Because the endianness is specified in the bit syntax, such as
unsigned-little-integer, it would be nice to encode the endianness in
a variable when I parse that byte, then use this variable to parse
the following integers in the packet header. I would like to have
something like this:
if Endianness == 1 ->
Spec = "32/little-integer";
true ->
Spec = "32/big-integer";
end,
<<Value1:Spec, Value2:Spec>> = Header,
However, putting a variable in the place of bit type specifier does
not seem to work. I can't put a BIF, such as list_to_atom, there
either.
Any suggestions whether and how this might be done?
Thanks very much.
- Haobo
More information about the erlang-questions
mailing list