Commit koda generatora leksičkog analizatora

Developer
Oct 13, 2010 at 5:30 PM

Dakle,

u Codeplexu je commitan kod za koji me Filip zadužio. Radi se o pretvaranju regularnih izraza u epsilon NKA, tumačenju pravila leksičkog analizatora i zapisu tih pravila u datoteku pomoću koje sada može raditi drugi dio tima.

Ovime je napravljen velik dio generatora koji se, ruku na srce, nije niti mogao razdvojiti da bi ga radilo više ljudi. Ostalo je za napraviti prvih nekoliko točki razvoja generatora po onom Filipovom dokumentu (učitavanje datoteke i raspetljavanje regularnih definicija). U svom radu dosad oslanjao sam se na mock klasu UlaznaDatotekaMock. (Mock objekt je objekt kojeg umetnemo umjesto pravog objekta kako bi ga oponašao - http://en.wikipedia.org/wiki/Mock_object).

Konkretno, ova mock klasa ima u sebi hardkodirane podatke koje pruža preko sučelja IUlaznaDatoteka. Pogledajte malo kako to funkcionira. Netko od ostatka grupe bi trebao napraviti klasu UlaznaDatoteka koja bi implementirala sučelje IUlaznaDatoteka i preko koje bi program čitao podatke sa diska. Predlažem i dodavanje metode Reset u sučelje IUlaznaDatoteka budući da se trenutno pomoću tog sučelja može samo slijedno čitati redak po redak bez povratka. Ta klasa bi odmah i bila zadužena za raspetljavanje regularnih definicija.

Također smo razgovarali i o nekakvom jednostavnom grafičkom sučelju za ovaj generator. Predlažem da se dvoje ljudi koji neće raditi na ulaznoj datoteci pozabave njime. Vidite što možete osmisliti, predložio bih vam recimo prikaz dijaloga za odabir datoteke ako prilikom pokretanja programa pomoću komandne linije nije navedeno njeno ime (ili se ne može pronaći), prikaz sadržaja datoteke prije i poslije raspetljavanja regularnih definicija i slično.

 

P.S. Ako imate kakvih pitanja javite se ovdje, na mail goran.macut@fer.hr ili na skype goran.macut.

P.P.S. Proučite malo ovaj codeplex, jako je dobra i svima nam potencijalno korisna stvar. Ne radi se samo o repozitoriju koda, ovdje možete recimo i prijaviti bug, predožiti izmjenu nečega, dodatnu mogućnost, pisati dokumentaciju i slično. Ako netko još nije skužio kako doći do koda, neka klikne na Source Code iznad ovog posta. Desno imate okvire pomoću kojih možete skinuti kod, pregledavati ga online ili konfigurirati svoj visual studio da mu direktno pristupa.