1199482Srdivacky//===--- FrontendOptions.cpp ----------------------------------------------===// 2199482Srdivacky// 3199482Srdivacky// The LLVM Compiler Infrastructure 4199482Srdivacky// 5199482Srdivacky// This file is distributed under the University of Illinois Open Source 6199482Srdivacky// License. See LICENSE.TXT for details. 7199482Srdivacky// 8199482Srdivacky//===----------------------------------------------------------------------===// 9199482Srdivacky 10199482Srdivacky#include "clang/Frontend/FrontendOptions.h" 11199482Srdivacky#include "llvm/ADT/StringSwitch.h" 12199482Srdivackyusing namespace clang; 13199482Srdivacky 14226890SdimInputKind FrontendOptions::getInputKindForExtension(StringRef Extension) { 15199482Srdivacky return llvm::StringSwitch<InputKind>(Extension) 16252723Sdim .Cases("ast", "pcm", IK_AST) 17199482Srdivacky .Case("c", IK_C) 18199482Srdivacky .Cases("S", "s", IK_Asm) 19199482Srdivacky .Case("i", IK_PreprocessedC) 20199482Srdivacky .Case("ii", IK_PreprocessedCXX) 21199482Srdivacky .Case("m", IK_ObjC) 22199482Srdivacky .Case("mi", IK_PreprocessedObjC) 23199482Srdivacky .Cases("mm", "M", IK_ObjCXX) 24199482Srdivacky .Case("mii", IK_PreprocessedObjCXX) 25199482Srdivacky .Cases("C", "cc", "cp", IK_CXX) 26199482Srdivacky .Cases("cpp", "CPP", "c++", "cxx", "hpp", IK_CXX) 27199482Srdivacky .Case("cl", IK_OpenCL) 28218893Sdim .Case("cu", IK_CUDA) 29210299Sed .Cases("ll", "bc", IK_LLVM_IR) 30199482Srdivacky .Default(IK_C); 31199482Srdivacky} 32