Zadanie 1

Napisać prosty preprocesor. Ma on czytać pliki, zaczynając od pliku podanego w linii polecenia. Pliki czytamy linia po linii, "normalne" linie kopiując na wyjście. Niektóre linie są dyrektywami dla preprocesora:

.include "nazwa.pliku"
.set zmienna wartość
.if zmienna
.endif
.label nazwa
.goto nazwa
Znaczenie dyrektyw jest następujące: Zalecana implementacja: każdy plik wczytać do tabeli przy pierwszym odwołaniu do pliku. Po wczytaniu sprawdzić czy .if balansują się z .endif i zbudować tabelę etykiet (hasz podający numer linii w której była etykieta). Potem przetwarzać plik wejściowy linia po linii, używając wyrażeń regularnych do rozpoznawania dyrektyw. Użyć oddzielną tablelę asocjacyjną (hasz) by pamiętać zawartość przeczytanych plików. Uwaga: Referencje pozwalają ładnie zorganizować potrzebne struktury danych.