X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FDEVEL%2Fmathml_editor%2Fsrc%2FTDictionary.hh;fp=helm%2FDEVEL%2Fmathml_editor%2Fsrc%2FTDictionary.hh;h=0000000000000000000000000000000000000000;hb=c7514aaa249a96c5fdd39b1123fbdb38d92f20b6;hp=4864630f969cf0c36bb117a7a5855300aead6de2;hpb=1c7fb836e2af4f2f3d18afd0396701f2094265ff;p=helm.git diff --git a/helm/DEVEL/mathml_editor/src/TDictionary.hh b/helm/DEVEL/mathml_editor/src/TDictionary.hh deleted file mode 100644 index 4864630f9..000000000 --- a/helm/DEVEL/mathml_editor/src/TDictionary.hh +++ /dev/null @@ -1,129 +0,0 @@ -/* This file is part of EdiTeX, an editor of mathematical - * expressions based on TeX syntax. - * - * Copyright (C) 2002-2003 Luca Padovani , - * 2003 Paolo Marinelli . - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * For more information, please visit the project's home page - * http://helm.cs.unibo.it/editex/ - * or send an email to - */ - -#ifndef __TDictionary_hh__ -#define __TDictionary_hh__ - -#include - -#include -#include -#if defined(HAVE_EXT_HASH_MAP) -#include -#elif defined(HAVE_HASH_MAP) -#include -#else -#error "no hash_map could be found" -#endif -#include - -#include "dom.hh" -#include "TToken.hh" - -class TDictionary -{ -public: - TDictionary(class ALogger& l) : logger(l) { }; - ~TDictionary() { }; - - enum Form - { - INFIX, - PREFIX, - POSTFIX - }; - - enum EntryClass - { - UNDEFINED, - MACRO, - OPERATOR, - IDENTIFIER, - NUMBER - }; - - struct Entry - { - Entry(void) - { - cls = UNDEFINED; - table = delimiter = limits = embellishment = leftOpen = rightOpen = 0; - }; - - std::vector pattern; - std::string value; - - bool defined(void) const { return cls != UNDEFINED; }; - bool hasArguments(void) const { return !pattern.empty(); }; - bool paramDelimited(unsigned) const; - bool lastDelimiter(unsigned) const; - unsigned previousParam(unsigned) const; - - EntryClass cls; - unsigned delimiter : 1; - unsigned limits : 1; - unsigned embellishment : 1; - unsigned leftOpen : 1; - unsigned rightOpen : 1; - unsigned table : 1; - }; - - static std::string getDefaultDictionaryPath(void); - - void load(const std::string&); - void load(const std::string&, const std::string&); - void load(const DOM::Document&, const std::string& = ""); - const Entry& find(const std::string&) const; - std::string complete(const std::string, std::list&) const; - -private: -#if defined(HAVE_EXT_HASH_MAP) - struct StringHash : public std::unary_function< std::string, size_t > - { size_t operator()(const std::string& s) const { return __gnu_cxx::hash()(s.c_str()); } }; -#elif defined(HAVE_HASH_MAP) - struct StringHash : public std::unary_function< std::string, size_t > - { size_t operator()(const std::string& s) const { return hash()(s.c_str()); } }; -#else -#error "no hash_map could be found" -#endif - -#if 0 - struct StringEq : public std::binary_function< std::string, std::string, bool > - { bool operator()(const std::string&, const class String*) const; }; -#endif - - class ALogger& logger; -#if defined(HAVE_EXT_HASH_MAP) - typedef __gnu_cxx::hash_map< std::string, Entry, StringHash > Dictionary; -#elif defined(HAVE_HASH_MAP) - typedef std::hash_map< std::string, Entry, StringHash > Dictionary; -#else -#error "no hash_map could be found" -#endif - Dictionary entries; -}; - -#endif // __TDictionary_hh__ -