00001
00013 #ifndef _WORD_H
00014 #define _WORD_H
00015
00016 #include <deque>
00017
00018 #include "config.h"
00019
00020 namespace ace {
00021
00024 class Word {
00027 string_index_t _lemma;
00030 tag_index_t _tag;
00031 #ifdef _DEPENDENCY_MODE
00032
00034 word_order_t _order;
00037 word_order_t _parent;
00040 dependency_index_t _dependency;
00041
00042 public:
00050 Word(word_order_t order, word_order_t parent, string_index_t lemma, tag_index_t tag, dependency_index_t dependency) throw(): _lemma(lemma), _tag(tag), _order(order), _parent(parent), _dependency(dependency) {}
00053 inline dependency_index_t dependency(void) const throw() { return _dependency; }
00056 inline word_order_t order(void) const throw() { return _order; }
00059 inline word_order_t parent(void) const throw() { return _parent; }
00060 #else
00061 public:
00066 Word(string_index_t lemma, tag_index_t tag) throw(): _lemma(lemma), _tag(tag) {}
00067 #endif
00068
00070 inline string_index_t lemma(void) const throw() { return _lemma; }
00073 inline tag_index_t tag(void) const throw() { return _tag; }
00074 };
00075
00081 typedef std::deque<Word> words_store_t;
00082
00083 }
00084
00085 #endif