Daniel Dunbar | 27b19dc | 2009-11-13 02:06:12 +0000 | [diff] [blame] | 1 | //===--- FrontendOptions.cpp ----------------------------------------------===// |
| 2 | // |
| 3 | // The LLVM Compiler Infrastructure |
| 4 | // |
| 5 | // This file is distributed under the University of Illinois Open Source |
| 6 | // License. See LICENSE.TXT for details. |
| 7 | // |
| 8 | //===----------------------------------------------------------------------===// |
| 9 | |
| 10 | #include "clang/Frontend/FrontendOptions.h" |
| 11 | #include "llvm/ADT/StringSwitch.h" |
| 12 | using namespace clang; |
| 13 | |
Chris Lattner | 0e62c1c | 2011-07-23 10:55:15 +0000 | [diff] [blame] | 14 | InputKind FrontendOptions::getInputKindForExtension(StringRef Extension) { |
Daniel Dunbar | 27b19dc | 2009-11-13 02:06:12 +0000 | [diff] [blame] | 15 | return llvm::StringSwitch<InputKind>(Extension) |
Richard Smith | 40c0efa | 2017-04-26 18:57:40 +0000 | [diff] [blame] | 16 | .Cases("ast", "pcm", InputKind(InputKind::Unknown, InputKind::Precompiled)) |
| 17 | .Case("c", InputKind::C) |
| 18 | .Cases("S", "s", InputKind::Asm) |
Richard Smith | f74d946 | 2017-04-28 01:49:42 +0000 | [diff] [blame] | 19 | .Case("i", InputKind(InputKind::C).getPreprocessed()) |
| 20 | .Case("ii", InputKind(InputKind::CXX).getPreprocessed()) |
| 21 | .Case("cui", InputKind(InputKind::CUDA).getPreprocessed()) |
Richard Smith | 40c0efa | 2017-04-26 18:57:40 +0000 | [diff] [blame] | 22 | .Case("m", InputKind::ObjC) |
Richard Smith | f74d946 | 2017-04-28 01:49:42 +0000 | [diff] [blame] | 23 | .Case("mi", InputKind(InputKind::ObjC).getPreprocessed()) |
Richard Smith | 40c0efa | 2017-04-26 18:57:40 +0000 | [diff] [blame] | 24 | .Cases("mm", "M", InputKind::ObjCXX) |
Richard Smith | f74d946 | 2017-04-28 01:49:42 +0000 | [diff] [blame] | 25 | .Case("mii", InputKind(InputKind::ObjCXX).getPreprocessed()) |
Richard Smith | 40c0efa | 2017-04-26 18:57:40 +0000 | [diff] [blame] | 26 | .Cases("C", "cc", "cp", InputKind::CXX) |
| 27 | .Cases("cpp", "CPP", "c++", "cxx", "hpp", InputKind::CXX) |
| 28 | .Case("cppm", InputKind::CXX) |
Richard Smith | f74d946 | 2017-04-28 01:49:42 +0000 | [diff] [blame] | 29 | .Case("iim", InputKind(InputKind::CXX).getPreprocessed()) |
Richard Smith | 40c0efa | 2017-04-26 18:57:40 +0000 | [diff] [blame] | 30 | .Case("cl", InputKind::OpenCL) |
| 31 | .Case("cu", InputKind::CUDA) |
| 32 | .Cases("ll", "bc", InputKind::LLVM_IR) |
| 33 | .Default(InputKind::Unknown); |
Daniel Dunbar | 27b19dc | 2009-11-13 02:06:12 +0000 | [diff] [blame] | 34 | } |