00001 00002 00008 00009 00010 00015 00021 typedef enum { 00022 twol_left, 00023 twol_right, 00024 twol_both 00025 } Twol_Type; 00026 00027 00033 typedef enum { 00034 repl_left, 00035 repl_right, 00036 repl_up, 00037 repl_down 00038 } Repl_Type; 00039 00040 00041 struct contexts_t { 00042 TransducerHandle left, right; 00043 struct contexts_t *next; 00044 }; 00045 00046 typedef contexts_t * ContextsHandle; 00047 00051 typedef ContextsHandle ContextsHandle; 00052 00054 00055 00056 00061 00062 00070 ContextsHandle make_context (TransducerHandle t1, TransducerHandle t2); 00071 00072 00078 ContextsHandle append_context (ContextsHandle c1, ContextsHandle c2); 00079 00080 00114 TransducerHandle make_rule (TransducerHandle t1, KeyPairSet *mappings, Twol_Type type, TransducerHandle t2, KeyPairSet *Pi); 00115 00116 00117 00138 TransducerHandle make_replace (TransducerHandle t, Repl_Type type, bool optional, KeyPairSet *Pi); 00139 00140 00192 TransducerHandle make_replace_in_context (TransducerHandle t, Repl_Type type, ContextsHandle c, bool optional, KeyPairSet *Pi); 00193 00194 00217 TransducerHandle make_restriction (TransducerHandle t, Twol_Type type, ContextsHandle c, int direction, KeyPairSet *Pi); 00218 00219 00223 void delete_contexts_handle( ContextsHandle c ); 00224 00226 00227