from libc.stdio cimport FILE cdef class FloatList: cdef int size cdef int increment cdef int len cdef float* arr cdef void set(self, int i, float v) cdef void write_handle(self, FILE* f) cdef void read_handle(self, FILE* f) cdef class IntList: cdef int size cdef int increment cdef int len cdef int* arr cdef void set(self, int i, int val) cdef void _append(self, int val) cdef void _extend(self, IntList other) cdef void _extend_arr(self, int* other, int other_len) cdef void _clear(self) cdef void write_handle(self, FILE* f) cdef void read_handle(self, FILE* f) cdef class FeatureVector: cdef IntList names cdef FloatList values cdef class Phrase: cdef int *syms cdef int n, *varpos, n_vars cdef public int chunkpos(self, int k) cdef public int chunklen(self, int k) cdef class Rule: cdef int lhs cdef readonly Phrase f, e cdef FeatureVector scores cdef int n_scores cdef word_alignments cdef char* sym_tostring(int sym) cdef char* sym_tocat(int sym) cdef int sym_isvar(int sym) cdef int sym_getindex(int sym)