From 74350b52fee9f576a1cc71d99cfd4ebdf5a73e0f Mon Sep 17 00:00:00 2001 From: Roland Reichwein Date: Mon, 16 Mar 2020 21:27:38 +0100 Subject: Fixed lexer --- lexer.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'lexer.h') diff --git a/lexer.h b/lexer.h index a033cbc..aa724bb 100644 --- a/lexer.h +++ b/lexer.h @@ -18,23 +18,23 @@ class Lexer // Graph size_t states{}; // start, ... - std::unordered_map>> transitions; //transitions: state -> {state,character}, ...; empty transition is marked by \0 - std::vector m_state_types; + std::unordered_map>> transitions; // transitions: state -> {state,character}, ...; empty transition is marked by \0 + std::unordered_map m_state_types; // only necessary for 2nd level symbol names size_t m_startState; - size_t m_endState; // Graph manipulation - size_t newState(std::string state_type = ""); + size_t newState(); + bool isEndState(size_t state); void addTransition(size_t state0, size_t state1, char c); void removeTransition(size_t state0, size_t state1, char c); std::vector> getSuccessorsViaEmpty(size_t state); std::vector> getSuccessors(size_t state); // Build up automaton, recursively - void addPath(size_t state0, size_t state1, std::string s, std::string type); - void addPathOrTransition(size_t state0, size_t state1, std::string symbol, std::string type); - void addRule(const std::vector& list, size_t list_index_from, size_t list_index_to, size_t state0, size_t state1, const std::string& rule_symbol, std::string type); + void addPath(size_t state0, size_t state1, std::string s); + void addPathOrTransition(size_t state0, size_t state1, std::string symbol); + void addRule(const std::vector& list, size_t list_index_from, size_t list_index_to, size_t state0, size_t state1, const std::string& rule_symbol); Token getToken(const std::string& s, Location& location); void skipWhitespace(const std::string& s, Location& location); -- cgit v1.2.3