Annotation of parser3/src/include/pa_dictionary.h, revision 1.13.2.4

1.1       parser      1: /** @file
                      2:        Parser: dictionary class decl.
                      3: 
1.13.2.4! paf         4:        Copyright (c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com)
1.10      paf         5:        Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
1.1       parser      6: */
                      7: 
                      8: #ifndef PA_DICTIONARY_H
                      9: #define PA_DICTIONARY_H
1.11      paf        10: 
1.13.2.4! paf        11: static const char* IDENT_DICTIONARY_H="$Date: 2003/01/31 12:10:44 $";
1.1       parser     12: 
                     13: #include "pa_table.h"
                     14: 
                     15: /// simple dictionary, speding up lookups on contained two columned table
1.13.2.1  paf        16: class Dictionary : public PA_Object {
1.1       parser     17: public:
                     18: 
                     19:        /// construct wrapper, grabbing first letters of first column into @b first
1.13.2.2  paf        20:        Dictionary(TablePtr atable, double amin_ratio=1);
1.2       parser     21: 
                     22:        /// get max ratio
                     23:        double max_ratio() { return fmax_ratio; }
1.1       parser     24: 
                     25:        /// find first row that contains string in first column which starts @b src
1.13.2.4! paf        26:        Table::element_type first_that_starts(const char* src, size_t src_size=0) const;
1.1       parser     27: 
                     28:        /// where this table came from, may be NULL. proxy to Table
1.13.2.3  paf        29:        StringPtr origin_string() { return table->origin_string(); }
1.1       parser     30: 
1.2       parser     31: private:
1.1       parser     32: 
1.13.2.2  paf        33:        TablePtr table;
1.2       parser     34:        double fmax_ratio;
1.1       parser     35: 
                     36: private:
1.13.2.2  paf        37:        friend void add_first(Table::element_type row, Dictionary* self);
1.1       parser     38: 
1.2       parser     39:        int starting_line_of[0x100]; int constructor_line;
1.1       parser     40: };
                     41: 
                     42: #endif

E-mail: