diff options
author | Petteri Räty <petsku@petteriraty.eu> | 2011-04-13 15:32:06 +0300 |
---|---|---|
committer | Petteri Räty <petsku@petteriraty.eu> | 2011-04-13 15:32:06 +0300 |
commit | 03e539766db9f149e5ca8657b75704edf09480af (patch) | |
tree | 8f191e986b2c2561b46238d3c6660f4b8c31fa9b /src/core/symbols.hpp | |
parent | Spirit Qi implementation of parsing token file (diff) | |
download | libbash-03e539766db9f149e5ca8657b75704edf09480af.tar.gz libbash-03e539766db9f149e5ca8657b75704edf09480af.tar.bz2 libbash-03e539766db9f149e5ca8657b75704edf09480af.zip |
Remove class scope
Scope was just a wrapper for the underlying container. I do not see any
value in the abstraction so now the interpreter has a unordered_map
member directly.
Diffstat (limited to 'src/core/symbols.hpp')
-rw-r--r-- | src/core/symbols.hpp | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/src/core/symbols.hpp b/src/core/symbols.hpp index 5992a67..6fcedc1 100644 --- a/src/core/symbols.hpp +++ b/src/core/symbols.hpp @@ -227,82 +227,4 @@ inline variable::variable<>(const std::string& name, { } -/// -/// class scope -/// \brief implementation for symbol table -/// -class scope -{ -public: - typedef std::unordered_map<std::string, std::shared_ptr<variable>> - table_type; - typedef table_type::iterator iterator; - typedef table_type::const_iterator const_iterator; - typedef table_type::size_type size_type; - typedef table_type::value_type value_type; - - /// - /// \brief return the number of variables in current scope - /// \return the number of variables - size_type size() - { - return members.size(); - } - - /// - /// \brief return an iterator referring to the first variable - /// \return iterator referring to the first variable - iterator begin() - { - return members.begin(); - } - - /// - /// \brief return a const iterator referring to the first variable - /// \return const iterator referring to the first variable - const_iterator begin() const - { - return members.begin(); - } - - /// - /// \brief return an iterator referring to the next element after - /// the last variable in current scope - /// \return iterator referring to he next element after the last - /// variable in current scope - iterator end() - { - return members.end(); - } - - /// - /// \brief return a const iterator referring to the next element - /// after the last variable in current scope - /// \return const iterator referring to he next element after the - /// last variable in current scope - const_iterator end() const - { - return members.end(); - } - - /// \brief define a new variable - /// \param the new variable - void define(std::shared_ptr<variable> s) - { - members[s->get_name()] = s; - } - - /// \brief resolve a variable - /// \param the variable name - /// \return target variable passed by reference - std::shared_ptr<variable> resolve(const std::string& name) - { - auto iter = members.find(name); - return (iter == members.end()? std::shared_ptr<variable>() : iter->second); - } -protected: - /// \var protected::member - /// \brief symbol table data structure - table_type members; -}; #endif |