| // 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_ |