[ zap ] - 24.1.2006 10:00

NULL
Matfyz(ák|ačka) level I
Příspěvky: 5
Registrován: 21. 1. 2006 17:53

[ zap ] - 24.1.2006 10:00

Příspěvek od NULL »

Tak na nas opet vysla klasika : textovy preprocesor.

Program jako parametr dostal vstupni soubor, v nemz se nekde v textu mohly vyskytovat definice maker tvaru :

Kód: Vybrat vše

#nazev_makra    text do ktereho se ma rozvinout
aby byla definice korektni musel byt # prvnim znakem na radce, nazev_makra musel byt korektni ceckovsky identifikator tzn. zacinat pismenem nebo _ a dalsi znaky pismena, cislice nebo _. Pote se preskocily vsechny bile znaky a jako hodnota makra se povazoval zbytek radku. Pokud se v teto hodnote objevil nazev nejakeho makra ktere uz bylo definovano( tzn. bylo v souboru umistene blize k zacatku ) tak se muselo rozvinout taky. Tim vlastne byla zakazana rekurze.
Dulezite bylo taky pravidlo : na ukazku mejme makro cit. Pokud se v textu( nebo v jinem makru ) precetlo slovo pocitac tak se makro rozvinout nemelo pac pocitac je zase jiny identifikator( i kdyz cit je podretezec ). Na druhou stranu kdyby v textu bylo neco ve smyslu -cit+cit/ tak se oba city :) rozvinou protoze +,- apod. se vlastne chapou jako oddelovace identifikatoru.

Vystupem byl zmodifikovany vstupni soubor s rozvinutyma makrama, a jinak nepozmenen. ( mely tam zustat i ty definice maker ). Taky bylo vsechno jako delka radek, nazvu marek apod. neomezena, ani soubor se nemusel cely vejit do pameti.

Mno, myslim ze docela jednodussi zadani, rikal jsem si jak za hodku to vsichni budou mit ale nakonec ne. Odchazel jsem za 2 a ctvrt hodiny a to sem byl tak vsehovsudy ctvrty.
Odpovědět

Zpět na „2005“