#elif and #include support is quite easy to implement. #elif should be very similar to #if, to implement #include one should add contents of included file and recursively run preprocessor on it (maybe limit maximum number of include levels to prevent circular dependencies). This two should take up to 3-4 days of work Expressions in #define is a non-trivial feature. It's hard to estimate it at this point