It's because the PureBasic compiler thinks that you have a variable called 1.l in your structure and that you have already declared it.
In C that is a bitfield, so makes those Allow* fields use 1 bit each. You can stick a .l variable in there and access the relevant bits, but I can't remember whether it is a standard or compiler specific whether they are allocated right to left or right to left so you will need to check to see which ones are the correct bits. I'd guess at right to left, so that AllowDemotion is bit 0 and AllowPromotion is bit 1.
If you paint your butt blue and glue the hole shut you just themed your ass but lost the functionality.
(WinXPhSP3 PB5.20b14)