This commit is contained in:
Filip Graliński 2019-12-10 13:23:40 +01:00
parent e6119c4ded
commit 7717fdb5f4
10 changed files with 94 additions and 1 deletions

9
TaskX05/Makefile Normal file
View File

@ -0,0 +1,9 @@
# .far to specjalny format do przechowywania spakowanych transduktorów
BINARIES += TaskX05/legiatolech.far
TaskX05/run: TaskX05/legiatolech.far
TaskX05/legiatolech.far: TaskX05/legiatolech.grm
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/lib/fst" thraxcompiler --input_grammar=$< --output_far=$@

9
TaskX05/description.txt Normal file
View File

@ -0,0 +1,9 @@
Napisz gramatykę Thraxową, która zamienia wszystkie wystąpienia form
słowa "Legia" na odpowiadające formy słowa "Lech" (forma "Legii" ma
zostać zamieniona na "Lecha").
Uwaga: to tylko przykład zadania (i rozwiązania). Zadanie ma już
rozwiązanie, proszę go nie rozwiązywać!
POINTS: 0
DEADLINE: 2019-01-30 23:00

42
TaskX05/legiatolech.grm Normal file
View File

@ -0,0 +1,42 @@
# zamiana końcówek, "i"/"ę" zgrupowane, bo zamieniamy na wspólną końcówkę
suffixes = ("a" : "") | ("i" | "ę" : "a") | ("ą" : "em");
# zamiana rdzenia
legia_to_lech_core = "Legi" : "Lech";
legia_to_lech = legia_to_lech_core suffixes;
# Wszystkie możliwe znaki, niestety nie ma (?) prostszego sposobu.
# Zauważmy, że polskie znaki diakrytyczne będą reprezentowane
# tak naprawdę jako dwuznaki, nie stanowi to jednak problemu.
allChars = Optimize[
"[1]" | "[2]" | "[3]" | "[4]" | "[5]" | "[6]" | "[7]" | "[8]" | "[9]" | "[10]" |
"[11]" | "[12]" | "[13]" | "[14]" | "[15]" | "[16]" | "[17]" | "[18]" | "[19]" | "[20]" |
"[21]" | "[22]" | "[23]" | "[24]" | "[25]" | "[26]" | "[27]" | "[28]" | "[29]" | "[30]" |
"[31]" | "[32]" | "[33]" | "[34]" | "[35]" | "[36]" | "[37]" | "[38]" | "[39]" | "[40]" |
"[41]" | "[42]" | "[43]" | "[44]" | "[45]" | "[46]" | "[47]" | "[48]" | "[49]" | "[50]" |
"[51]" | "[52]" | "[53]" | "[54]" | "[55]" | "[56]" | "[57]" | "[58]" | "[59]" | "[60]" |
"[61]" | "[62]" | "[63]" | "[64]" | "[65]" | "[66]" | "[67]" | "[68]" | "[69]" | "[70]" |
"[71]" | "[72]" | "[73]" | "[74]" | "[75]" | "[76]" | "[77]" | "[78]" | "[79]" | "[80]" |
"[81]" | "[82]" | "[83]" | "[84]" | "[85]" | "[86]" | "[87]" | "[88]" | "[89]" | "[90]" |
"[91]" | "[92]" | "[93]" | "[94]" | "[95]" | "[96]" | "[97]" | "[98]" | "[99]" | "[100]" |
"[101]" | "[102]" | "[103]" | "[104]" | "[105]" | "[106]" | "[107]" | "[108]" | "[109]" | "[110]" |
"[111]" | "[112]" | "[113]" | "[114]" | "[115]" | "[116]" | "[117]" | "[118]" | "[119]" | "[120]" |
"[121]" | "[122]" | "[123]" | "[124]" | "[125]" | "[126]" | "[127]" | "[128]" | "[129]" | "[130]" |
"[131]" | "[132]" | "[133]" | "[134]" | "[135]" | "[136]" | "[137]" | "[138]" | "[139]" | "[140]" |
"[141]" | "[142]" | "[143]" | "[144]" | "[145]" | "[146]" | "[147]" | "[148]" | "[149]" | "[150]" |
"[151]" | "[152]" | "[153]" | "[154]" | "[155]" | "[156]" | "[157]" | "[158]" | "[159]" | "[160]" |
"[161]" | "[162]" | "[163]" | "[164]" | "[165]" | "[166]" | "[167]" | "[168]" | "[169]" | "[170]" |
"[171]" | "[172]" | "[173]" | "[174]" | "[175]" | "[176]" | "[177]" | "[178]" | "[179]" | "[180]" |
"[181]" | "[182]" | "[183]" | "[184]" | "[185]" | "[186]" | "[187]" | "[188]" | "[189]" | "[190]" |
"[191]" | "[192]" | "[193]" | "[194]" | "[195]" | "[196]" | "[197]" | "[198]" | "[199]" | "[200]" |
"[201]" | "[202]" | "[203]" | "[204]" | "[205]" | "[206]" | "[207]" | "[208]" | "[209]" | "[210]" |
"[211]" | "[212]" | "[213]" | "[214]" | "[215]" | "[216]" | "[217]" | "[218]" | "[219]" | "[220]" |
"[221]" | "[222]" | "[223]" | "[224]" | "[225]" | "[226]" | "[227]" | "[228]" | "[229]" | "[230]" |
"[231]" | "[232]" | "[233]" | "[234]" | "[235]" | "[236]" | "[237]" | "[238]" | "[239]" | "[240]" |
"[241]" | "[242]" | "[243]" | "[244]" | "[245]" | "[246]" | "[247]" | "[248]" | "[249]" | "[250]" |
"[251]" | "[252]" | "[253]" | "[254]" | "[255]"
];
export PROCESS = Optimize[CDRewrite[legia_to_lech, "", "", allChars*]];

3
TaskX05/run Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/fst" thraxrewrite-tester --far=TaskX05/legiatolech.far --rules=PROCESS

6
TaskX05/test.exp Normal file
View File

@ -0,0 +1,6 @@
Input string: Output string: Lech Warszawa
Input string: Output string: Górnik gra z Lechem
Input string: Output string: Lech Lecha Lecha Lechem
Input string: Output string: Lechxxxxx
Input string: Output string: tu nic nie ma do zamiany
Input string:

5
TaskX05/test.in Normal file
View File

@ -0,0 +1,5 @@
Legia Warszawa
Górnik gra z Legią
Legia Legii Legię Legią
Legiaxxxxx
tu nic nie ma do zamiany

8
TaskX06/description.txt Normal file
View File

@ -0,0 +1,8 @@
Napisz gramatykę Thraxową, która zamienia zera na jedynki
i jedynki na zera, a pozostałe cyfry pozostawia bez zmian.
Można założyć, że na wejściu podawane są jedynie napisy składające się
z cyfr.
POINTS: 1
DEADLINE: 2018-12-19 23:59

6
TaskX06/test.exp Normal file
View File

@ -0,0 +1,6 @@
Input string: Output string: 0023410
Input string: Output string: 0101010
Input string: Output string: 9999999
Input string: Output string: 888088888888888
Input string: Output string: 111
Input string:

5
TaskX06/test.in Normal file
View File

@ -0,0 +1,5 @@
1123401
1010101
9999999
888188888888888
000

View File

@ -19,7 +19,7 @@ cp "${PREFIX}/count-points.pl" arena/
cp "${PREFIX}/overrides.txt" arena/ cp "${PREFIX}/overrides.txt" arena/
cp "${PREFIX}/Makefile" arena/ cp "${PREFIX}/Makefile" arena/
for TX in X01 X02 X03 X04 B00 B01 B02 B03 B04 B05 B06 E01 E02 E03 E04 # X05 X06 X07 X08 X09 X10 B03 B04 X10 for TX in X01 X02 X03 X04 X05 X06 B00 B01 B02 B03 B04 B05 B06 E01 E02 E03 E04 # X05 X06 X07 X08 X09 X10 B03 B04 X10
do do
mkdir -p arena/Task$TX mkdir -p arena/Task$TX
done done