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