Witam. Piszę obecnie w celach głównie edukacyjnych interpreter dla mojego języka skryptowego. Posiada on pętle for, while, zmienne, stałe, tablice, warunki i wiele, wiele innych przydatnych w języku rzeczy. Teraz pomyślałem o zaimplementowaniu instrukcji switch. Nie mam jednak pomysłu jak zrobić to najoptymalniej. Bawił się ktoś z was kiedyś w coś podobnego i mógłby mnie nieco nakierować na ewentualne rozwiązanie problemu? Póki co działa to (bardzo zbugowanie) na zasadzie, że każdemu Case'owi nadawany jest fragment kodu, który ma zostać wykonany, gdy jego wartość jest równa wartości zmiennej podanej jako argument dla switcha.

- Rejestracja:prawie 14 lat
- Ostatnio:prawie 3 lata
- Postów:4882
- Rejestracja:ponad 7 lat
- Ostatnio:ponad 6 lat
- Postów:6
Interpreter działa w prosty sposób, najpierw wczytuje cały tekst skryptu, potem parser rozpoznaje polecenia, jeżeli jest to zmienna/stała/tablica to wypełnia odpowiedni kontener, w przeciwnym wypadku "wrzuca polecenie" do kontenera z wszystkimi wykonywalnymi komendami, na samym końcu wykonuje wcześniej wczytany kod. Ostatecznie spróbuję to zrobić podobnie jak w przypadku instrukcji warunkowych, ale jako pierwszy argument wybiorę argument ostatniego switcha, a jako kolejny wartość przypisana danemu case'owi. Jakby ktoś był zainteresowany jak wygląda prototyp (Na 100% będę go przebudowywał i optymalizował) języka to można go znaleźć tutaj: https://github.com/ZwolinKox/SnakeScripts-1.0 .
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.