The Crystal Programming Language Forum

[Video tutorial] Building an interactive DSL

Hi folks :wave:

Here is a write-up of my 5-episode series on building an interactive Domain-Specific Language in Crystal. This might be new to you, in case you managed to not hear me shouting about it on Twitter and Reddit :stuck_out_tongue_winking_eye:

Some of the shards and features we’ll use:

  • Fancyline, a shard to build robust and feature-rich REPLs
  • Pars3k, a shard to build parser based on parser combinators
  • dataclass, a shard I wrote to succinctly define thin classes meant to store data
  • Clim, a powerful CLI builder
  • Crystal’s generics
  • Crystal’s macros

I hope you enjoy the read, and I’m looking forward to your feedback :raised_hands:

5 Likes

Thank you for this content I really enjoyed it.

1 Like

@lbarasti Thank you for all your videos. I enjoy your approach.

For person like me, with no knowledge about parsers and that kind of stuff can you tell me if using a pars3k shard (docs say it’s for combinator parsers) to implement a FEEL language is a good fit or should another type of parser be used to implement a FEEL parser?

Where do I start if I want to implement my own FEEL parser and interpreter? Can you recommend any good resources and/or books on that?

The FEEL language is for simple expressions with various data types, conditions, loops and some built-in functions.