45 #include "EST_String.h"
46 #include "EST_simplestats.h"
48 static void Discrete_val_delete_funct(
void *d) {
delete (
int *)d; }
50 EST_Discrete::~EST_Discrete()
52 nametrie.
clear(Discrete_val_delete_funct);
59 cerr <<
"WARNING from EST_Discrete ctor : invalid vocab list !";
60 nametrie.
clear(Discrete_val_delete_funct);
68 p_def_val = d.p_def_val;
69 nametrie.
clear(Discrete_val_delete_funct);
70 namevector = d.namevector;
72 for (i=0; i<namevector.
length(); ++i)
76 nametrie.
add(namevector(i),t);
87 namevector.
resize(vocab.length());
88 nametrie.
clear(Discrete_val_delete_funct);
90 for (i=0,w=vocab.head(); w != 0; i++,w=w->next()){
91 namevector[i] = vocab(w);
96 if(nametrie.
lookup(vocab(w)) != NULL)
98 cerr <<
"EST_Discrete : found repeated item '";
99 cerr << vocab(w) <<
"' in vocab list !" << endl;
103 nametrie.
add(vocab(w),tmp);
113 return (
bool)(namevector == d.namevector);
118 return (
bool)(namevector != d.namevector);
121 EST_String EST_Discrete::print_to_string(
int quote)
125 static EST_Regex needquotes(
".*[()'\";., \t\n\r].*");
131 s += sep + quote_string(
name(i),
"\"",
"\\",1);
144 s << d.
name(i) <<
" ";
148 Discretes::~Discretes()
152 for (i=0; i<next_free; i++)
162 if (next_free == max)
165 for (i=0; i<next_free; i++)
166 new_discretes[i] = discretes[i];
169 discretes = new_discretes;
173 pos = next_free + 10;