Pisanie interpretera

0

Witam, zamierzam napisać interpreter b. prostego języka skryptowego, używajac bisona i flexa i teraz zastanawiam się jak w interpreterach jest rozwiązany problem przydzielania pamięci dla zmiennych, które nie posiadają z góry ustalonego typu (typ może się zmieniać), jak sprawdzać czy przypadkiem już jakaś zmienna o tej samej nazwie istnieje i jak przekazywać parametry w procedurach. Myślałem o zastosowaniu słownika o kluczu i wartości typu string ale nie wiem czy to jest dobre rozwiązanie. Parametry chcę przekazywać za pomocą globalnego stosu ale może istnieje jakiś bardziej elegancki sposób.

0

jezeli kodzisz w C mozesz to zmienne mozesz dosc latwo zaimplementowac w postaci struktor z identyfikatorem aktualnego typu oraz wskaznikiem na dane samej zmiennej, co do nazw to tak jak napisales dynamiczna tablica hashująca i staly kluczowanie za pomocą hashu nazwy (jakis algorytm np: crc, lub cos prostszego), co do stosu to latwo zrobic to za pomocą wskaznikow wtedy nie martwisz sie o wielkosc pseudo zmiennej gdyz wszystko jest identyfikowane poprzez struktury kontrolne,
szczerze powiedzawszy nie wiem czy prosciej nie jest podzielic interpreter na trzy czesci: interpreter bytecode, kompilator bytecode, kompilator jezyka

0

Nie wiem czy Ci się to przyda, ale gdzieś w Download jest komponent CMDEdit, Poszukaj...

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