From c73464b39fadd2a3833d2e81a4beb623567c53e2 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Fri, 25 Dec 2015 22:54:25 -0500 Subject: [PATCH] Grammar: Converted from std::set to std::vector to preserve ordering --- src/Grammar.cpp | 12 ++++++------ src/Grammar.h | 5 ++--- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/Grammar.cpp b/src/Grammar.cpp index a1d8b145..cf0e4320 100644 --- a/src/Grammar.cpp +++ b/src/Grammar.cpp @@ -144,24 +144,24 @@ std::string Grammar::start () const } //////////////////////////////////////////////////////////////////////////////// -std::set Grammar::rules () const +std::vector Grammar::rules () const { - std::set results; + std::vector results; for (auto& rule : _rules) - results.insert (rule.first); + results.push_back (rule.first); return results; } //////////////////////////////////////////////////////////////////////////////// -std::set Grammar::terminals () const +std::vector Grammar::terminals () const { - std::set results; + std::vector results; for (auto& rule : _rules) for (auto& production : rule.second) for (auto& token : production) if (_rules.find (token._token) == _rules.end ()) - results.insert (token._token); + results.push_back (token._token); return results; } diff --git a/src/Grammar.h b/src/Grammar.h index cf0d1aaa..2dd789b6 100644 --- a/src/Grammar.h +++ b/src/Grammar.h @@ -29,7 +29,6 @@ #include #include -#include #include #include @@ -40,8 +39,8 @@ public: void loadFromFile (File&); void loadFromString (const std::string&); std::string start () const; - std::set rules () const; - std::set terminals () const; + std::vector rules () const; + std::vector terminals () const; std::string dump () const; protected: