|
|
| version 1.3, 2001/08/28 10:32:08 | version 1.13.2.6, 2003/02/04 10:57:16 |
|---|---|
| Line 1 | Line 1 |
| /** @file | /** @file |
| Parser: dictionary class decl. | Parser: dictionary class decl. |
| Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) | Copyright (c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com) |
| Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru) | |
| Author: Alexander Petrosyan <paf@design.ru> (http://design.ru/paf) | |
| $Id$ | |
| */ | */ |
| #ifndef PA_DICTIONARY_H | #ifndef PA_DICTIONARY_H |
| #define PA_DICTIONARY_H | #define PA_DICTIONARY_H |
| #include "pa_config_includes.h" | static const char* IDENT_DICTIONARY_H="$Date$"; |
| #include "pa_table.h" | #include "pa_table.h" |
| /// simple dictionary, speding up lookups on contained two columned table | /// simple dictionary, speding up lookups on contained two columned table |
| class Dictionary : public Pooled { | class Dictionary : public PA_Object { |
| friend void add_first(Array::Item *value, void *info); | |
| public: | public: |
| /// construct wrapper, grabbing first letters of first column into @b first | /// construct wrapper, grabbing first letters of first column into @b first |
| Dictionary(Table& atable, double amin_ratio=1); | Dictionary(TablePtr atable, double amin_ratio=1); |
| /// get max ratio | /// get max ratio |
| double max_ratio() { return fmax_ratio; } | double max_ratio() { return fmax_ratio; } |
| /// find first row that contains string in first column which starts @b src | /// find first row that contains string in first column which starts @b src |
| void* first_that_starts(const char *src) const; | Table::element_type first_that_starts(const char* src, size_t src_size=0) const; |
| /// where this table came from, may be NULL. proxy to Table | /// where this table came from, may be NULL. proxy to Table |
| const String *origin_string() { return table.origin_string(); } | StringPtr origin_string() { return table->origin_string(); } |
| private: | private: |
| Table& table; | TablePtr table; |
| double fmax_ratio; | double fmax_ratio; |
| private: | private: |
| friend void pa_dictionary_add_first(Table::element_type row, Dictionary* self); | |
| int starting_line_of[0x100]; int constructor_line; | int starting_line_of[0x100]; int constructor_line; |
| }; | }; |
| #endif | #endif |