mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 21:00:13 +01:00
I'm doing this because I figured it'd be an incremental improvement for all the operator lookups that we do. Even to the extent that we've discussed witness caching, I think it'll still apply. It does add one more step to adding new interfaces (before, you'd just write the string, now you add it to the def file and reference it). I'll claim it makes GetClangOperatorKind a lot friendlier to read/edit, nevermind removing the string comparisons. :)
82 lines
2.7 KiB
C++
82 lines
2.7 KiB
C++
// Part of the Carbon Language project, under the Apache License v2.0 with LLVM
|
|
// Exceptions. See /LICENSE for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
// This is an X-macro header. It does not use `#include` guards, and instead is
|
|
// designed to be `#include`ed after the x-macro is defined in order for its
|
|
// inclusion to expand to the desired output. Macro definitions are cleaned up
|
|
// at the end of this file.
|
|
//
|
|
// This macro should be defined before including this header:
|
|
// - CARBON_CORE_IDENTIFIER(Name)
|
|
// Invoked for each `Core` identifier.
|
|
|
|
#ifndef CARBON_CORE_IDENTIFIER
|
|
#error "Must define the x-macro to use this file."
|
|
#define CARBON_CORE_IDENTIFIER(Name)
|
|
#endif
|
|
|
|
CARBON_CORE_IDENTIFIER(AddAssignWith)
|
|
CARBON_CORE_IDENTIFIER(AddWith)
|
|
CARBON_CORE_IDENTIFIER(As)
|
|
CARBON_CORE_IDENTIFIER(AssignWith)
|
|
CARBON_CORE_IDENTIFIER(At)
|
|
CARBON_CORE_IDENTIFIER(BitAndAssignWith)
|
|
CARBON_CORE_IDENTIFIER(BitAndWith)
|
|
CARBON_CORE_IDENTIFIER(BitComplement)
|
|
CARBON_CORE_IDENTIFIER(BitOrAssignWith)
|
|
CARBON_CORE_IDENTIFIER(BitOrWith)
|
|
CARBON_CORE_IDENTIFIER(BitXorAssignWith)
|
|
CARBON_CORE_IDENTIFIER(BitXorWith)
|
|
CARBON_CORE_IDENTIFIER(Bool)
|
|
CARBON_CORE_IDENTIFIER(Char)
|
|
CARBON_CORE_IDENTIFIER(Convert)
|
|
CARBON_CORE_IDENTIFIER(Copy)
|
|
CARBON_CORE_IDENTIFIER(CppCompat)
|
|
CARBON_CORE_IDENTIFIER(Dec)
|
|
CARBON_CORE_IDENTIFIER(Destroy)
|
|
CARBON_CORE_IDENTIFIER(DivAssignWith)
|
|
CARBON_CORE_IDENTIFIER(DivWith)
|
|
CARBON_CORE_IDENTIFIER(EqWith)
|
|
CARBON_CORE_IDENTIFIER(Equal)
|
|
CARBON_CORE_IDENTIFIER(Float)
|
|
CARBON_CORE_IDENTIFIER(Get)
|
|
CARBON_CORE_IDENTIFIER(Greater)
|
|
CARBON_CORE_IDENTIFIER(GreaterOrEquivalent)
|
|
CARBON_CORE_IDENTIFIER(HasValue)
|
|
CARBON_CORE_IDENTIFIER(ImplicitAs)
|
|
CARBON_CORE_IDENTIFIER(Inc)
|
|
CARBON_CORE_IDENTIFIER(IndexWith)
|
|
CARBON_CORE_IDENTIFIER(Int)
|
|
CARBON_CORE_IDENTIFIER(Iterate)
|
|
CARBON_CORE_IDENTIFIER(LeftShiftAssignWith)
|
|
CARBON_CORE_IDENTIFIER(LeftShiftWith)
|
|
CARBON_CORE_IDENTIFIER(Less)
|
|
CARBON_CORE_IDENTIFIER(LessOrEquivalent)
|
|
CARBON_CORE_IDENTIFIER(Long32)
|
|
CARBON_CORE_IDENTIFIER(LongLong64)
|
|
CARBON_CORE_IDENTIFIER(ModAssignWith)
|
|
CARBON_CORE_IDENTIFIER(ModWith)
|
|
CARBON_CORE_IDENTIFIER(MulAssignWith)
|
|
CARBON_CORE_IDENTIFIER(MulWith)
|
|
CARBON_CORE_IDENTIFIER(Negate)
|
|
CARBON_CORE_IDENTIFIER(NewCursor)
|
|
CARBON_CORE_IDENTIFIER(Next)
|
|
CARBON_CORE_IDENTIFIER(NotEqual)
|
|
CARBON_CORE_IDENTIFIER(NullptrT)
|
|
CARBON_CORE_IDENTIFIER(Op)
|
|
CARBON_CORE_IDENTIFIER(Optional)
|
|
CARBON_CORE_IDENTIFIER(OrderedWith)
|
|
CARBON_CORE_IDENTIFIER(RightShiftAssignWith)
|
|
CARBON_CORE_IDENTIFIER(RightShiftWith)
|
|
CARBON_CORE_IDENTIFIER(String)
|
|
CARBON_CORE_IDENTIFIER(SubAssignWith)
|
|
CARBON_CORE_IDENTIFIER(SubWith)
|
|
CARBON_CORE_IDENTIFIER(UInt)
|
|
CARBON_CORE_IDENTIFIER(ULong32)
|
|
CARBON_CORE_IDENTIFIER(ULongLong64)
|
|
CARBON_CORE_IDENTIFIER(UnsafeAs)
|
|
CARBON_CORE_IDENTIFIER(VoidBase)
|
|
|
|
#undef CARBON_CORE_IDENTIFIER
|