DSL z prawdziwego zdarzenia: projekt generowania zbiorów wyrażeń

Po wprowadzeniu do tematu przekształcania drzewa tokenów języka na drzewo wyrażeń zrozumiałych dla DSLExecutora, czas na implementację. Dzisiaj zajmę się zbiorami wyrażeń, czyli zamianą TokenTree na BatchExpression. Będzie trochę mniej szczegółowo niż zazwyczaj.

Continue reading “DSL z prawdziwego zdarzenia: projekt generowania zbiorów wyrażeń”

DSL z prawdziwego zdarzenia: wstęp do generowania wyrażeń

Wynikiem ostatnich postów (i odpowiadającej im implementacji) jest to, że potrafię już przetłumaczyć tekst na tokeny. A jak te tokeny mają się do bytów z dziedziny wykonywania wyrażeń? Dzisiejszy post traktuje właśnie o tym, a jednocześnie podsumowuje moje dotychczasowe osiągnięcia w temacie kompilacji DSLa.

Continue reading “DSL z prawdziwego zdarzenia: wstęp do generowania wyrażeń”

DSL z prawdziwego zdarzenia: parser, biblioteka Sprache

Ok, mam już dobrze zdefiniowaną gramatykę wykonywalnego DSLa i jasno postawiony cel – stworzenie jego kompilatora. Teraz mogę sukcesywnie realizować kolejne kroki, które doprowadzą mnie do osiągnięcia tego celu. Dzisiaj zajmę się implementacją parsera sformułowanej ostatnio gramatyki. A pomoże mi w tym pewna genialna biblioteka.

Continue reading “DSL z prawdziwego zdarzenia: parser, biblioteka Sprache”

DSL z prawdziwego zdarzenia: gramatyka DSLa i wstęp do kompilatora

Ostatnio poszedłem na łatwiznę i przedstawiłem najłatwiejszy z możliwych parser DSLa. Zgodnie z obietnicą, dzisiaj zabieram się za stworzenie wykonywalnego języka DSL z prawdziwego zdarzenia. Tym razem pracę zaczynam bardziej profesjonalnie, bo od sformułowania formalnej definicji jego składni.

Continue reading “DSL z prawdziwego zdarzenia: gramatyka DSLa i wstęp do kompilatora”

DSL najłatwiejszy do parsowania

Tak jak zapowiadałem, jako że “środowisko uruchomieniowe” DSLExecutora (wykonywanie wyrażeń) jest już zaimplementowane, od dziś skupiam się na funkcjonalności będącej bliżej użytkownika końcowego. Mowa o parsowaniu kodu DSL podanego przez użytkownika do postaci gotowej do wykonania. Na początek zdefiniuję najprostszy DSL i stworzę jego parser. Do dzieła!

Continue reading “DSL najłatwiejszy do parsowania”

Wykonywanie wyrażeń: funkcje (cz. 2)

Uff, po przerwie przeznaczonej na święta, załatwianie zaległych spraw i witanie wiosny, czas wrócić do blogowania. Przerwa wypadła w mało fortunnym momencie, bo w połowie opisu wykonywania wyrażeń reprezentujących funkcje. W związku z tym, dla lepszego zrozumienia dzisiejszego posta, polecam zajrzenie do jego pierwszej części. Po tej lekturze zapraszam dalej.

Continue reading “Wykonywanie wyrażeń: funkcje (cz. 2)”