interpreter, Linux, Mac, Raspberry Pi

Zbudujmy interpreter (5) – zmienne jeszcze raz

Dotychczas nas interpreter obsługiwał zmienne oznaczane w kodzie jedną literą (w sumie mogliśmy wykorzystać 26 zmiennych – od a do z). Dzisiaj dodamy możliwość używania zmiennych, których identyfikator będzie zawierał więcej niż jeden znak. Wykorzystany tu mechanizmy w kolejnych wpisach użyję do wbudowania stałych (np. PI) i funkcji (np. sin() w moim interpreterze) Czytaj dalej »

Standard
interpreter, Linux, Mac, Raspberry Pi

Zbudujmy interpreter (3) – zmienne

W kolejnym kroku budowy interpretera dodam obsługę zmiennych (dla ułatwienia przyjąłem, że zmienne będą oznaczone jedną literą – w sumie możemy wykorzystać 26 zmiennych – od a do z). Chciałbym aby można było przypisywać wartość liczbową do zmiennej oraz wykorzystywać zmienne do obliczeń. Parser i lekser muszę uzupełnić o obsługę wyrażenia:

<zmienna> = <wyrażenie>

Czytaj dalej »

Standard
interpreter, Linux, Mac, Raspberry Pi

Zbudujmy Interpreter (1) – yacc i flex w akcji

W kolejnych wpisach pokażę jak zbudować własny, prosty interpreter. Na początek zacznę od budowy interpretera, który będzie interpretował wyrażenia:

<liczba> + <liczba>

<liczba> - <liczba>

Jako <liczba> będzie można wprowadzić liczbę naturalną. Ilość działań na razie ograniczyłem do dwóch (dodawanie i odejmowanie).

Aby zbudować interpreter będę potrzebował parser oraz lekser. Do budowy parsera wykorzystam narzędzie yacc, a do budowy leksera narzędzie flex. Czytaj dalej »

Standard