diff --git a/TaskE05/Makefile b/TaskE05/Makefile new file mode 100644 index 0000000..6768c9b --- /dev/null +++ b/TaskE05/Makefile @@ -0,0 +1,9 @@ + +# .far to specjalny format do przechowywania spakowanych transduktorów + +BINARIES += TaskE05/legiatolech.far + +TaskE05/run: TaskE05/legiatolech.far + +TaskE05/legiatolech.far: TaskE05/legiatolech.grm + LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/lib/fst" thraxcompiler --input_grammar=$< --output_far=$@ diff --git a/TaskE05/legiatolech.grm b/TaskE05/legiatolech.grm new file mode 100644 index 0000000..3ade423 --- /dev/null +++ b/TaskE05/legiatolech.grm @@ -0,0 +1,59 @@ +romans = ("I" : "the first") | ("II" : "the second") | ("III" : "the third") | ("IV" : "the fourth") | ("V" : "the fifth") | ("VI" : "the sixth") | ("VII" : "the seventh") | + ("VIII" : "the eighth") | ("IX" : "the ninth") | ("X" : "tenth"); + +nums =("0" : "zero") | ("2": "two") | ("3": "three") | ("4": "four") | ("5": "five") | ("6": "six") | ("7": "seven") | ("8": "eight") | ("9": "nine") | ("10": "ten") | + ("11": "eleven") | ("12": "twelve") | ("13": "thirteen") | ("14": "fourteen") | ("15": "fifteen") | ("16": "sixteen") |("17": "seventeen") | ("18": "eighteen") | ("19": "nineteen") | + ("20": "twenty") | ("21": "twenty-one") | ("22": "twenty-two") | ("23": "twenty-three") | ("24": "twenty-four") | ("25": "twenty-five") |( "26": "twenty-six") | + ("27": "twenty-seven") | ("28": "twenty-eight") | ("29": "twenty-nine") | ("30": "thirty") |("31": "thirty-one") |("32": "thirty-two") | ("33": "thirty-three") | + ("34": "thirty-four") | ("35": "thirty-five") | ("36": "thirty-six") | ("37":"thirty-seven") | ("38":"thirty-eight") | ("39":"thirty-nine") | ("40":"forty") | + ("41": "forty-one") | ("42": "forty-two") | ("43":"forty-three") | ("44": "forty-four") | ("45":"forty-five") | ("46":"forty-six") | ("47": "forty-seven") | + ("48": "forty-eight") | ("49": "forty-nine") | ("50": "fifty") | ("51": "fifty-one") | ("52": "fifty-two") | ("53":"fifty-three") | ("54": "fifty-four") | + ("55": "fifty-five") | ("56": "fifty-six") | ("57": "fifty-seven") | ("58": "fifty-eight") | ("59": "fifty-nine") | ("60": "sixty") | ("61":"sixty-one") | + ("62": "sixty-two") | ("63": "sixty-three") | ("64": "sixty-four") | ("65": "sixty-five") | ("66": "sixty-six") | ("67": "sixty-seven") | ("68": "sixty-eight") | + ("69": "sixty-nine") | ("70": "seventy") | ("71": "seventy-one") | ("72": "seventy-two") | ("73": "seventy-three") | ("74": "seventy-four") | + ("75": "seventy-five") | ("76": "seventy-six") | ("77": "seventy-seven") | ("78": "seventy-eight") | ("79": "seventy-nine") | ("80": "eighty") | + ("81": "eighty-one") | ("82": "eighty-two") | ("83": "eighty-three") | ("84": "eighty-four") | ("85": "eighty-five") | ("86": "eighty-six") | + ("87": "eighty-seven") | ("88": "eighty-eight") | ("89": "eighty-nine") | ("90": "ninety") | ("91": "ninety-one") | ("92": "ninety-two") | + ("93": "ninety-three") | ("94": "ninety-four") | ("95": "ninety-five") | ("96": "ninety-six") | ("97": "ninety-seven") | ("98": "ninety-eight") | + ("99": "ninety-nine"); + +lowerc = ("A" : "a") | ("B" : "b") | ("C" : "c") | ("D" : "d") | ("E" : "e") | ("F" : "f") | ("G" : "g") | ("H" : "h") | ("I" : "i") | + ("J" : "j") | ("K" : "k") | ("L" : "l") | ("M" : "m") | ("N" : "n") | ("O" : "o") | ("P" : "p") | ("Q" : "q") | ("R" : "r") | + ("S" : "s") | ("T" : "t") | ("U" : "u") | ("V" : "v") | ("W" : "w") | ("X" : "x") | ("Y" : "y") | ("Z" : "z"); + +abbreviations = ("E.g." : "for example") | ("prof." : "professor") | ("dr." : "doctor") | ("p." : "page") | ("pp." : "pages"); + +punc_remove = ("," : "") | ("?" : "") | ("!" : "") | ("." : ""); + +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[lowerc |romans | abbreviations | punc_remove | nums, "", "", allChars*]]; diff --git a/TaskE05/run b/TaskE05/run new file mode 100644 index 0000000..5e52867 --- /dev/null +++ b/TaskE05/run @@ -0,0 +1,3 @@ +#!/bin/bash + +LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/fst" thraxrewrite-tester --far=TaskE05/legiatolech.far --rules=PROCESS