diff options
Diffstat (limited to 'src/include/open-axiom/token')
-rw-r--r-- | src/include/open-axiom/token | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/include/open-axiom/token b/src/include/open-axiom/token index 943d01cc..1d17f5de 100644 --- a/src/include/open-axiom/token +++ b/src/include/open-axiom/token @@ -72,6 +72,17 @@ namespace OpenAxiom { std::ostream& operator<<(std::ostream&, TokenValue); + + enum class TokenIndex : uint32_t { }; + + constexpr TokenValue value(TokenIndex t) { + return TokenValue((uint32_t(t) & 0xFF000000) >> 24); + } + + constexpr uint32_t index(TokenIndex t) { + return uint32_t(t) & 0x00FFFFFF; + } + // Program text region, with a fragment. struct Region { FragmentCursor start; |