|  | // Copyright 2019 The Fuchsia Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef SRC_DEVELOPER_DEBUG_ZXDB_EXPR_EXPR_LANGUAGE_H_ | 
|  | #define SRC_DEVELOPER_DEBUG_ZXDB_EXPR_EXPR_LANGUAGE_H_ | 
|  |  | 
|  | #include "src/developer/debug/zxdb/symbols/dwarf_lang.h" | 
|  |  | 
|  | namespace zxdb { | 
|  |  | 
|  | // The enum values should be bits so we can store the language applicability for each token in a | 
|  | // bitfield. | 
|  | enum class ExprLanguage { | 
|  | // All C, C++, and Objective C variants. We may need to split out objective C in the future. | 
|  | kC = 1, | 
|  |  | 
|  | kRust = 2 | 
|  | }; | 
|  |  | 
|  | // All non-Rust languages are treated as C. | 
|  | inline ExprLanguage DwarfLangToExprLanguage(DwarfLang dwarf) { | 
|  | if (dwarf == DwarfLang::kRust) | 
|  | return ExprLanguage::kRust; | 
|  | return ExprLanguage::kC; | 
|  | } | 
|  |  | 
|  | }  // namespace zxdb | 
|  |  | 
|  | #endif  // SRC_DEVELOPER_DEBUG_ZXDB_EXPR_EXPR_LANGUAGE_H_ |