DSL z prawdziwego zdarzenia: generowanie wartości stałych

Przyszedł czas na ostateczną rozprawę z tematem kompilacji przykładowego DSLa – dzisiaj omówię implementację parsowania literałów i przeistaczania ich w wyrażenia. Tym samym zamknę minimalny planowany zakres funkcjonalności DSLExecutora. I dobrze, bo do końca konkursu zostały równo dwa tygodnie!

Continue reading “DSL z prawdziwego zdarzenia: generowanie wartości stałych”

DSL z prawdziwego zdarzenia: generowanie wywołań funkcji

Ostatnio opisałem generator zbiorów wyrażeń, zamieniający TokenTree w BatchExpression. Był to najprostszy z generatorów. Dzisiaj zajmę się bardziej skomplikowanym zadaniem – generowaniem wyrażeń reprezentujących wywołania funkcji, czyli zamianą tokenu FunctionCall na wyrażenie FunctionExpression. Podobnie jak ostatnio, skupię się na projekcie klas implementujących to zagadnienie.

Continue reading “DSL z prawdziwego zdarzenia: generowanie wywołań funkcji”

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”