Program pro úpravu zdrojového VB souboru – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Program pro úpravu zdrojového VB souboru – C / C++ – Fórum – Programujte.comProgram pro úpravu zdrojového VB souboru – C / C++ – Fórum – Programujte.com

 

marty18
~ Anonymní uživatel
1 příspěvek
15. 6. 2014   #1
-
0
-

Zdravím :)
Chtěl bych poradit s jedním úkolem. Jedná se o to, že mám vytvořit program, který upraví zdrojový soubor VB (visual basic) skriptu. Ta úprava spočívá v nahrazení názvu funkcí, proměnných, subrutin náhodným textem a dále odstranění komentářů, prázdných řádku atd. Výsledný skript má potom obsahovat pouze jeden dlouhý řádek s příkazy. V zadání mám uvedeno, že bych měl použít oddělený příklad.

Nějakou obecnou představu bych možná měl, ale v programování nejsem zrovna moc zběhlý :/, tak bych potřeboval nějaké názorné tipy, jak to co nejefektivněji vyřešit.

Nahlásit jako SPAM
IP: 109.231.136.–
ondra.holub+1
Stálý člen
18. 6. 2014   #2
-
0
-

Napiš si lexikální analyzátor, který bude číst vstup a vracet hotové skupiny znaků jako např. identifikátor (a v nějakém atributu jeho hodnotu), číslo (a hodnotu zase v atributu), operátor, řetězec (jako textová konstanta) apod. Zároveň je to dobré místo na ignorování poznámek. Obvykle je takový analyzátor realizovatelný konečným automatem nebo jsou na to tooly, které umí takový lexer (jeho zdrojáky) vygenerovat (např. flex).

Výstup lexeru bude číst parser, který bude implementovat gramatiku. Opět je možné si parser napsat sám, nebo využít nějakého existujícího toolu (např. bison).

Pokud píšeš, že nejsi v programování moc zběhlý, tak asi ani neznáš nic moc o teorii překladačů, takže navrhované řešení může vypadat jako dost hardcore. Ovšem obecně to jinak nepůjde, pokud to má opravdu spolehlivě fungovat na jakýkoliv validní vstup (ty dvě vrstvy tam vždycky nějak budou, i když třeba nebudou striktně oddělené).

Samozřejmě to můžeš nějak vyřešit i různým vyhledáváním podřetězců a podobně, ale může pak být dost složité navrhnout program tak, aby fungoval opravdu na všechny možné vstupy. Dost těžko se při takovém způsobu řeší např. to, že proměnnou nemůžeš přeplácnout v řetězci. Obecně záleží také na složitosti jazyka, který načítáš/modifikuješ. VB skript neznám, takže to nedovedu posoudit. Ale asi bude syntakticky jednodušší než např. perl.

Další problém tohoto zadání je u skriptovacího jazyka, který podporuje eval. Pokud je zároveň požadavek, že i po modifikaci má program fungovat stejně jako před modifikací, tak si myslím, že s evalem je to téměř nedosažitelné.

Nahlásit jako SPAM
IP: 193.179.215.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 70 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý