File:  [parser3project] / parser3 / src / include / pa_dictionary.h
Revision 1.13.2.6: download - view: text, annotated - select for diffs - revision graph
Tue Feb 4 10:57:16 2003 UTC (23 years, 5 months ago) by paf
Diff to: branchpoint 1.13: preferred, unified
libmain.a gcc
and
mail.lib msvc++
compiled

/** @file
	Parser: dictionary class decl.

	Copyright (c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com)
	Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
*/

#ifndef PA_DICTIONARY_H
#define PA_DICTIONARY_H

static const char* IDENT_DICTIONARY_H="$Date: 2003/02/04 10:57:16 $";

#include "pa_table.h"

/// simple dictionary, speding up lookups on contained two columned table
class Dictionary : public PA_Object {
public:

	/// construct wrapper, grabbing first letters of first column into @b first
	Dictionary(TablePtr atable, double amin_ratio=1);

	/// get max ratio
	double max_ratio() { return fmax_ratio; }

	/// find first row that contains string in first column which starts @b src
	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
	StringPtr origin_string() { return table->origin_string(); }

private:

	TablePtr table;
	double fmax_ratio;

private:
	friend void pa_dictionary_add_first(Table::element_type row, Dictionary* self);

	int starting_line_of[0x100]; int constructor_line;
};

#endif

E-mail: