start | find | index | login or register | edit
Montag, 8. April 2002 link

folgende problemstellung

es gibt ein "ini" file. in diesem ini file werden name value mapping definiert. nachfolgend ein beispiel:

Y = y
xyz = done
t1 = [xyz]
t2 = [[t1]nix][t1]


zusaetzlich zu dem ini file gibt es nun noch einen "text".

auf diesen text soll eine einfache produktionsregel angewandt werden: das token [x] wird durch den wert von x ersetzt. die ersetzung kann auch verschachtelt erfolgen, wobei das innerste token zuerst aufgeloest wird. wird ein token im ini file nicht definiert, wird das token im text geloescht.

beispiele:

head-[Y]-tail ==> head-x-tail
head-[nix]-tail ==> head--tail
[x[Y]z] ==> [xyz] ==> done


oder etwas laenger:

anf[t2]end ==>
==> anf[[t1]nix][t1]end ==>
==> anf[[xyz]nix][t1]end ==>
==> anf[donenix][t1]end ==>
==> anf[t1]end ==> anfdoneend


(die aufloesungsreihenfolge ist zur verdeutlichung der beispiele so gewaehlt)

damit habe ich heute den tag verbracht und viel spass an einer schoenen, 100% oo loesung gefunden ;) falls grosse fadesse ausbricht, und sich jemand an einer neuen programmiersprache versuchen will, kann er/sie ja mal das darin ausprogrammieren.


stephan schmidt 6663 days ago:
Mir scheint, alles was da erzaehlt wurde lies sich auch mit zwei worten tun: "kontextfreie sprache" => bei 50 worten im artikel immerhin 98% redundanz +G+

earl 6663 days ago:
erstens: nicht alles verraten ;) [obwohl, wer weiss - vielleicht ist die mehrheit der leserschaft im compilerbau versiert]

zweitens: mit \*G\* kannst dein geliebtes G sogar mit sterndln verzieren ;) falls du willst :)

stephan schmidt 6662 days ago:
Oh. ich wollte das natuerlich nicht verraten :-) Moegen ja nicht alles informatiker sein die hier mitlesen. Und das +G+ ist manchmal +G+ und manchmal *G*, haengt von meiner stimmung in dieser millisekunde ab. Danke.

Please log in (you may want to register first) to post comments!

powered by vanilla
echo earlZstrainYat|tr ZY @.
earl.strain.at • esa3 • online for 7063 days • c'est un vanilla site