aboutsummaryrefslogtreecommitdiff
path: root/src/include/open-axiom/token
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/open-axiom/token')
-rw-r--r--src/include/open-axiom/token11
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;