aboutsummaryrefslogtreecommitdiff
path: root/src/openvic-dataloader/detail/LexyLitRange.hpp
diff options
context:
space:
mode:
author George L. Albany <Megacake1234@gmail.com>2023-09-02 14:31:44 +0200
committer GitHub <noreply@github.com>2023-09-02 14:31:44 +0200
commitf990117e56060811ddd2a850ec712485aea79649 (patch)
tree2bb062c320fa2227b18956617b94d0e8800420d8 /src/openvic-dataloader/detail/LexyLitRange.hpp
parente941573f47fb867ff75c8a2cf78302b754ffbeee (diff)
parent7440a5d1433eec4bf87e3723022db187e7f61b1a (diff)
Merge pull request #7 from OpenVicProject/dataloading-event-and-functions
Diffstat (limited to 'src/openvic-dataloader/detail/LexyLitRange.hpp')
-rw-r--r--src/openvic-dataloader/detail/LexyLitRange.hpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/openvic-dataloader/detail/LexyLitRange.hpp b/src/openvic-dataloader/detail/LexyLitRange.hpp
new file mode 100644
index 0000000..a6761a8
--- /dev/null
+++ b/src/openvic-dataloader/detail/LexyLitRange.hpp
@@ -0,0 +1,16 @@
+#pragma once
+
+#include <lexy/dsl/literal.hpp>
+
+namespace ovdl::detail::lexydsl {
+ template<unsigned char LOW, unsigned char HIGH>
+ consteval auto make_range() {
+ if constexpr (LOW == HIGH) {
+ return lexy::dsl::lit_c<LOW>;
+ } else if constexpr (LOW == (HIGH - 1)) {
+ return lexy::dsl::lit_c<LOW> / lexy::dsl::lit_c<HIGH>;
+ } else {
+ return lexy::dsl::lit_c<LOW> / make_range<LOW + 1, HIGH>();
+ }
+ }
+} \ No newline at end of file