00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #include <stdlib.h>
00031 #include <stdio.h>
00032
00033 #include "ffstring.h"
00034 #include "ffword.h"
00035 #include "ffutil.h"
00036 #include "ffregex.h"
00037 #include "finflect.h"
00038
00039
00040
00041 #include "ffpriv_basic_cases.h"
00042 #include "ffpriv_exterior_local_cases.h"
00043 #include "ffpriv_genitive_stem.h"
00044 #include "ffpriv_ie_vowel_change.h"
00045 #include "ffpriv_ss_abnormal.h"
00046
00047 int main(int argv, char** args) {
00048 ffstring kissa, issa, kissa2;
00049 ffstring koira, APINA, apina;
00050 ffstring tatar;
00051 ffword tatarw, typpi, kuningas;
00052 ffint32 j;
00053 ffchar *perkele, *perkeletta;
00054
00055 if (ffstring_create("kissa", &kissa)) {
00056 return 1;
00057 }
00058 printf("pla(%d): %s\n", kissa.len, kissa.str);
00059
00060 if (ffstring_tail(&kissa, 4, &issa)) {
00061 return 1;
00062 }
00063 printf("prrrriiii(%d): %s\n", issa.len, issa.str);
00064
00065 if (ffstring_rfe(&kissa,1,"oissa")) {
00066 return 1;
00067 }
00068 printf("pla(%d): %s\n", kissa.len, kissa.str);
00069
00070 if(ffstring_append(&kissa, "an")) {
00071 return 1;
00072 }
00073 printf("pla(%d): %s\n", kissa.len, kissa.str);
00074
00075 if(ffstring_dfe(&kissa, 2)) {
00076 return 1;
00077 }
00078 printf("pla(%d): %s\n", kissa.len, kissa.str);
00079
00080 if(ffstring_copy(&kissa, &koira)) {
00081 return 1;
00082 }
00083 if(ffstring_append(&kissa, "abc")) {
00084 return 1;
00085 }
00086 if(ffstring_append(&koira, "cba")) {
00087 return 1;
00088 }
00089 printf("pla(%d): %s\n", kissa.len, kissa.str);
00090 printf("pla(%d): %s\n", koira.len, koira.str);
00091
00092 printf("uga: %d\n", ffstring_compare_ff(&kissa, &koira));
00093 printf("uga: %d\n", ffstring_compare_ff(&koira, &kissa));
00094
00095
00096
00097
00098 if(ffstring_create("APINA", &APINA)) {
00099 return 1;
00100 }
00101 printf("pör(%d): %s\n", APINA.len, APINA.str);
00102
00103 if(ffstring_lower(&APINA, &apina)) {
00104 return 1;
00105 }
00106 printf("pör(%d): %s\n", apina.len, apina.str);
00107
00108 printf("uga: %d\n", ffstring_compare_ff(&apina, &APINA));
00109 printf("uga: %d\n", ffstring_compare_ff_ci(&apina, &APINA));
00110
00111 if(ffstring_tolower(&APINA)) {
00112 return 1;
00113 }
00114 printf("pör(%d): %s\n", APINA.len, APINA.str);
00115
00116 ffstring_delete(&kissa);
00117 ffstring_delete(&issa);
00118 ffstring_delete(&koira);
00119 ffstring_delete(&APINA);
00120 ffstring_delete(&apina);
00121
00122 if (ffstring_create("kevät",&tatar)) {
00123 return 1;
00124 }
00125 printf("tat(%d): %s\n", tatar.len, tatar.str);
00126
00127 tatarw.data = tatar;
00128
00129
00130
00131
00132
00133 if (ffpriv_adessive_singular(&tatarw)) {
00134 return 1;
00135 }
00136 printf("tat(%d): %s\n", tatar.len, tatar.str);
00137
00138 ffstring_delete(&tatar);
00139
00140 if(ffstring_create("aaaaakissaaaaaa", &kissa2)) {
00141 return 1;
00142 }
00143
00144 printf("burarum(%d): %s\n", kissa2.len, kissa2.str);
00145
00146 printf("umpah(kissa): %d\n", ffregex_match("kissa", &kissa2));
00147 printf("umpah(sa+): %d\n", ffregex_match("sa+", &kissa2));
00148 printf("umpah_ci(KISSA): %d\n", ffregex_match_ci("KISSA", &kissa2));
00149
00150 printf("humpa(koira): %d\n", ffregex_match("koira", &kissa2));
00151 printf("humpa(ö+): %d\n", ffregex_match("ö+", &kissa2));
00152
00153 ffregex_replace("kissa", "koira", &kissa2);
00154
00155 printf("parum(%d): %s\n", kissa2.len, kissa2.str);
00156
00157 ffregex_replace("aa(koira)aa", "bb${1}bb", &kissa2);
00158
00159 printf("paparum(%d): %s\n", kissa2.len, kissa2.str);
00160
00161 ffstring_delete(&kissa2);
00162
00163 ffstring_create("typpi", &typpi.data);
00164 ffpriv_ie_partitive(&typpi);
00165
00166 printf("burarum(%d): %s\n", typpi.data.len, typpi.data.str);
00167
00168 ffstring_delete(&typpi.data);
00169
00170 ffstring_create("kuningas", &kuningas.data);
00171 ffpriv_ss_genitive(&kuningas);
00172 printf("burarum(%d): %s\n", kuningas.data.len, kuningas.data.str);
00173 ffstring_delete(&kuningas.data);
00174
00175 perkele = "perkele";
00176 perkeletta = ff_partitive_singular(perkele);
00177 printf("aargh: %s\n", perkele);
00178 printf("ieaargh: %s\n", perkeletta);
00179 free(perkeletta);
00180
00181 if ((j = ffstring_instcount())) {
00182 printf("Unbalanced number of strings: %d\n", j);
00183 return 1;
00184 }
00185
00186 return EXIT_SUCCESS;
00187 }