Makroslar
Bir dəfə Baraş proqramçıların ədəbi müsabiqəsində iştirak etməyi qərara aldı. Şerlər dörd dildə qəbul edilirdi: Assembly, Foxy, Lispy, Prology. Köhnə şair-proqramçı kimi Baraş yalnız Assembly dilini qəbul edirdi. Ona görə də onda yazmalı oldu. O, özünün etibarlı edit.com Dos 6.22 versiyasını yüklədi və işə başladı. Nəzərə alaq ki, Baraş tənbəl proqramçı idi, o, hər yerdə makroslardan istifadə edirdi. Bu şer yazmaq prosesini həddindən artıq sürətləndirirdi, belə ki, istənilən köhnə şair-proqramçılarda olduğu kimi Baraşda da hazır tədarüklər çoxluğu var idi.
Seir o qədər qəşəng alınmışdı ki, rəfiqəsi Nyuşa ilə məsləhətləşən Baraş anladı ki, incəsənəti qiymətləndirənlərin əksəriyyətinin başa düşməsi üçün bu şer əlyetərli deyil. Ona görə də Baraş onun ali mənasını çatdırmaq üçün əsərin formasını qurban vermək qərarını verdi. Bunun üçün o, öz əsərində makro əvəzetmələr icra etməklə makrotəriflərdən istifadə etməməyi qərara aldı. Problem onda idi ki, bir seirdə makrotərifdə digər makrotərif yerləşə bilər. Həmçinin, Baraş böyük dövri makrogenerasiya həvəskarı idi ki, bu da onun əsərlərində öz əksini tapmaya bilməzdi.
Ona əsərindən öz əlləri ilə kəsməyə mənəvi gücü bəs etmirdi, ona görə də o sizdən kömək etməyinizi xahiş edir. Baraşa kömək edin!
Giriş verilənləri
Makrotəriflər yerləşən şer verilir. Makrotəriflərin formatı aşağıdakı şəkildədir (hər “_” simvolunun əvəzinə giriş və çıxış faylında bir boşluq işarəsi duracaq):
Makrotərif:
#identificator_{}
İdentifikator (makrotərifin adı) 10 sətirlik latın hərflərindən çox deyil. 'rep' adlı makrotərifə rast gəlinmir.
2. Makroçağırışlar:
##identificator_
Dövrü makrotəriflər:
#rep_n_{}
n – testlərin təkrarlanma sayı olan tam ədəddir (0 <= n <= 100).
Fiqurlu mötərizələr daxilinə salınmış mətni blok adlandıracağıq. Bütün şeir də həmçinin, blok adlanır. İstənilən blokda digər makrotərif və makroçağırışlara rast gəlmək olar.
Makrotəriflər cari blokun sonrakı mətni və əgər yalnız eyni adla makrotərif əvvəlcədən elan edilməmişdirsə, bütün sonrakı bir-birinə daxil olanlar üçün təsirli hesab edilir. Əgər bir-birinə daxil olan bloklarda xarici blokdakı adla eyni olan makrotərifə rast gəlinərsə, onda daxili blokun makrotərif fəaliyyətli hesab edilir. Blokda iki eyniadlı makrotərifə rast gəlmək mümkün deyil.
Rekursiv çağırışlar yoxdur. Mümkün olmayan makrotəriflərin çağırışı nəzərə alınmır. Şerin mətnində makrotərifdən əvvəl dayanan bütün makroçağırışlar mümkün olmayan sayılır, deməli, nəzərə alınmırlar.
Çıxış verilənləri
Şerin düzəldilmiş mətni.