add language detection for preprocessor