Use a perfect hash to look up preprocessor directives, and generate the preprocessor directive list automatically.