Thread overview | |||||
---|---|---|---|---|---|
|
January 08, 2012 Modifying the dmd compiler to add support for bitfields | ||||
---|---|---|---|---|
| ||||
Hi All, To gain a better understanding of how the D compiler works I am trying to implement support for bit fields in structures. I have modified the parser code to admit the following syntax (for now)... struct A{ uint:8 a; uint:5 b; uint:* unused; //Takes up the remaining space. //Raise an error when the computed size is zero. } You can see my changes here...https://github.com/SDX2000/dmd I have been trying to work out a strategy for modifying the compiler code generation for quite some time now but haven't been able to make much headway in this direction. I would appreciate any help at this point. Regards, Sandeep Datta. |
January 08, 2012 Re: Modifying the dmd compiler to add support for bitfields | ||||
---|---|---|---|---|
| ||||
Posted in reply to Sandeep Datta | "Sandeep Datta" wrote in message news:jebbof$1nkb$1@digitalmars.com... Hi All, To gain a better understanding of how the D compiler works I am trying to implement support for bit fields in structures. I have modified the parser code to admit the following syntax (for now)... struct A{ uint:8 a; uint:5 b; uint:* unused; //Takes up the remaining space. //Raise an error when the computed size is zero. } You can see my changes here...https://github.com/SDX2000/dmd I have been trying to work out a strategy for modifying the compiler code generation for quite some time now but haven't been able to make much headway in this direction. I would appreciate any help at this point. Regards, Sandeep Datta. What about also allowing definition of bitsize and position in the integer, for want of a better syntax: struct A { uint:<0..7> a; uint:<8..12> b; uint:<13> errorFlag; // single bit allocation } Regards, <mike> |
January 08, 2012 Re: Modifying the dmd compiler to add support for bitfields | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike James | I think that is a good idea but I would prefer dropping the angle brackets altogether... struct A { uint:0..7 a; uint:8..12 b; uint:13 errorFlag; // single bit allocation } |
Copyright © 1999-2021 by the D Language Foundation