#pragma once #include #include #include #include #include #include using namespace std::string_literals; using BNF = std::map>>; std::map> Reverse(BNF bnf); BNF SubBNF(const BNF& bnf, const std::string& top);