summaryrefslogtreecommitdiffhomepage
path: root/bnf.h
diff options
context:
space:
mode:
Diffstat (limited to 'bnf.h')
-rw-r--r--bnf.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/bnf.h b/bnf.h
new file mode 100644
index 0000000..8aa2684
--- /dev/null
+++ b/bnf.h
@@ -0,0 +1,17 @@
+#pragma once
+
+#include <deque>
+#include <map>
+#include <set>
+#include <string>
+#include <utility>
+#include <vector>
+
+using namespace std::string_literals;
+
+using BNF = std::map<std::string, std::vector<std::vector<std::string>>>;
+using Terminals = std::set<std::string>;
+using ProgramNode = std::deque<std::string>;
+using PathElement = std::pair<std::string, size_t>; // Name, Index
+
+std::map<std::string, std::set<std::string>> Reverse(BNF bnf);