aboutsummaryrefslogtreecommitdiff
path: root/src/include/open-axiom/token
diff options
context:
space:
mode:
authorGabriel Dos Reis <gdr@axiomatics.org>2017-12-27 04:38:07 -0800
committerGabriel Dos Reis <gdr@axiomatics.org>2017-12-27 04:38:07 -0800
commit83ff2c1707b3c1e304feb2127503d9878b05fa9d (patch)
tree06cadddd637ba9474bfacc2b14c18d1ebafe0def /src/include/open-axiom/token
parentd16f9a090321f1ec1e8b20f1fb30859bf93cea46 (diff)
downloadopen-axiom-83ff2c1707b3c1e304feb2127503d9878b05fa9d.tar.gz
Remove antiquated check for alignas
C++14 required, alignas and alignof are now well supported as C++11 features.
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;