aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetteri Räty <petsku@petteriraty.eu>2011-04-13 15:32:06 +0300
committerPetteri Räty <petsku@petteriraty.eu>2011-04-13 15:32:06 +0300
commit03e539766db9f149e5ca8657b75704edf09480af (patch)
tree8f191e986b2c2561b46238d3c6660f4b8c31fa9b /src/core/symbols.hpp
parentSpirit Qi implementation of parsing token file (diff)
downloadlibbash-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.hpp78
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