Token() = default; Token(const std::string& s) { type = s; } // Assign type via "=" from string start symbol implicitly from bnf validate bnf: no empty types or values, or empty target lists map -> unordered_map set -> unordered_set