/^TYPEDEF/s/TYPEDEF \(.*\) \([^ ]*\);$/#if defined(__NEED_\2) \&\& !defined(__DEFINED_\2)\ typedef \1 \2;\ #define __DEFINED_\2\ #endif\ / /^STRUCT/s/STRUCT * \([^ ]*\) \(.*\);$/#if defined(__NEED_struct_\1) \&\& !defined(__DEFINED_struct_\1)\ struct \1 \2;\ #define __DEFINED_struct_\1\ #endif\ / /^UNION/s/UNION * \([^ ]*\) \(.*\);$/#if defined(__NEED_union_\1) \&\& !defined(__DEFINED_union_\1)\ union \1 \2;\ #define __DEFINED_union_\1\ #endif\ /