#2.3 Parsing DSL commands into data types - Build your own interactive DSL
Channel: Lorenzo Barasti
Date: 2020-05-31

This video is part of a series where we build our own interactive Domain-Specific Language (DSL) in Crystal.

In session 2, we build a parser for an *interactive* Game of Life DSL.
I've split the session in 3 videos:
1. Pick a domain and define data types for the DSL commands
2. Use parser combinators to define the building blocks of our DSL 
3. Putting it all together: parsing DSL commands from the REPL

You can check out the code here: https://github.com/lbarasti/byoidsl

References
* Crystal programming language: https://crystal-lang.org/
* pars3k, a parser combinators shard: https://github.com/voximity/pars3k
* dataclass, a shard to define data-class types succinctly: https://github.com/lbarasti/dataclass
* Wikipedia on Conway's Game of Life: https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
* Wikipedia on parser combinators: https://en.wikipedia.org/wiki/Parser_combinator
* Monadic Parser Combinators, by Hutton and Meijer: https://www.cs.nott.ac.uk/~pszgmh/monparsing.pdf

Cross-posting live-coding sessions from https://www.twitch.tv/lbarasti
Announcing live-coding sessions and initiatives @ https://twitter.com/lbarasti