Pętla w napisanym przeze mnie interpteterze.

0

Witam!
Napisałem już w sumie cały interpreter poleceń dla maszyny o dostępie swobodnym RAM. Dane odczytuje z textboxa i konwertuje na ciąg char*. Czytam ten ciąg znak po znaku, jeżeli napotkam odpowiednią instrukcję to wykonuje odpowiednie instrukcje. Problem natomiast jest z pętlami/skokami. Musze powrócić do litery o danym indeksie, co samo w sobie nie stanowi zbytniego problemu. Jednakże problemem jest odróżnienie etykiet od błędnie wpisanych rozkazów, oraz zaalokowanie ich w pamięci (nie wiadomo ile ich jest).
Jakieś sugestie?

0

Nie napisałeś w czym programujesz.
Nie da się tego zrobić w jednym przebiegu. Najpierw musisz przeparsować skrypt, odnajdując etykiety, początki i końce pętli. Trzymaj listę etykiet: nazwa etykiety—miejsce. W ten sposób możesz potem odnaleźć gdzie prowadzi dana etykieta.

problemem jest odróżnienie etykiet od błędnie wpisanych rozkazów,
Nie pokazałeś składni.
Projektując składnię własnego języka trzeba uważać, by była ona jednoznaczna.

oraz zaalokowanie ich w pamięci (nie wiadomo ile ich jest).
Nie napisałeś w czym programujesz. Na pewno jakaś dynamiczna lista lub tablica.

Wydaje mi się, że źle podchodzisz do sprawy: cały czas operujesz na tekstowej formie skryptu. Powinieneś raczej najpierw go przeanalizować, i przekształcić na tablicę (listę) rekordów/struktur, każdy element tablicy przedstawia pewną elementarną operację. Nie ma tam już instrukcji w postaci napisów, ale są stałe, enumy itp.

0

Programuję w C++. Skopiuję fragment programu o ktory mi chodzi do pastebin bo jest raczej spory.

http://4programmers.net/Pastebin/1184

Reasumując mam zamiar użyć wektorów.
Pierwszego typu char żeby stworzyć pojedyncze etykiety, później typu char*, żeby je wszystkie razem jakoś zebrać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1