Skip to content

Interpreter LogiX z interfejsem graficznym - projekt na zajęcia "Teoria kompilacji i kompilatory"

License

Notifications You must be signed in to change notification settings

bwozniczka/LogiX-kompilatory

Repository files navigation

LogiX

Interpreter do zmodyfikowanego języka Logo z graficznym interfejsem w electronJS. Wszystkie polecenia zostały zamienione na język Polski.

Informacja o stosowanych generatorach skanerów/parserów, pakietach zewnętrznych:

  • generator parserów: ANTLR
  • język implementacji: JavaScript
  • rodzaj translatora: interpreter

Co jest zaimplementowane

Polecenie Opis
np :liczba Pozwala na przejście znacznikiem naprzód
pw :liczba Pozwala na rotację w prawo o zadaną ilość stopni
lw :liczba Pozwala na rotację w lewo o zadaną ilość stopni
ws :liczba Pozwala na przejście znacznikiem wstecz
pb Pozwala podnieść pisak
ob Pozwala opuścić pisak
dom Pozwala cofnąć znacznik do punktu 0, 0
sb Pozwala schować znacznik
ub Pozwala pokazać znacznik
wy Czyści obszar roboczy
kwadrat :liczba Rysuje kwadrat o zadanym boku
trojkat :liczba Rysuje trójkąt równoboczny o zadanym boku
kolo :liczba Rysuje koło o zadanym promieniu
ustaw :liczba :liczba Ustawia znacznik na zadanych współrzędnych (X,Y)
napis :LITERAL_WYRAZU Rysuje zadany teskt na ekranie
powtorz: 'powtorz' liczba blok Powtarza zadane wyrażenie
deklaracjaProcedury: 'to' nazwa deklaracjeParametrow* EOL? (linia? EOL)+ 'end' Pozwala zadeklarować procedure
Jesli: 'jesli' porownanie blok Funkcja warunkowa
wypisz: 'wypisz' wartosc Wypisuje wartość liczbową, tekstową lub zwrot z funkcji
losowo: 'losowo' liczba Zwraca losową liczbę z zakresu 0 - liczba
pierwszy: 'pierwszy' lista Zwraca pierwszy element z listy
głowa: 'glowa' lista Zwraca wszystkie elementy z listy poza ostatnim
ogon: 'ogon' lista Zwraca wszystkie elementy z lsity poza pierwszym
ostatni: 'ostatni' lista Zwraca ostatni element z listy
element: 'element' indeks lista Zwraca element listy z podanego indeksu
elementWielowymiaru: 'elementww' lista listawielowymiarowa Zwraca element z listy wielowymiarowej
wybierz: 'wybierz' lista Zwraca losowo wybrany element z listy
usuń: 'usun' element lista Zwraca listę bez podanego elementu
unikalna: 'unikalna' lista Zwraca podaną listę bez duplikatów

W naszej aplikacji są zaimplementowane testowowe wiązanki metod gotowych do wklejenia oraz możliwość zapisania gotowego rysunku.

Jak to wygląda?

mock1 mock2 mocl3

Jak to uruchomić?

npm i
npm start

W razie błędu, może być jeszcze potrzeba usunąć package-lock.json i node_modules aby zainstalować paczki ponownie.

Dobrej zabawy :D

About

Interpreter LogiX z interfejsem graficznym - projekt na zajęcia "Teoria kompilacji i kompilatory"

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages