Cuhdmidthiaumixcyafb
SkillsCast

Writing your own compile-time checks for your favourite embedded DSL!

3rd April 2017 in London at CodeNode

There are 1 other SkillsCast available from Scala April meetup

Interpolated strings, like the familiar `s""`, provide a convenient way to embed external DSLs in Scala source, allowing you to construct a new value at runtime from a string literal, with Scala expressions substituted within it. But unless you are prepared to implement the interpolator using a macro, the compiler offers no checks on the correctness or well-formedness of the embedded DSL. Contextual is a small open-source library which does the heavy lifting work to make it trivial to write interpolators to check DSLs which at compile time, without requiring any complicated macro code. An interpolator which parses a DSL when Scalac runs -- with its own custom error messages -- can be written with Contextual in just a few lines of ordinary user code, calling upon parsers, regular expressions or any other means to check the interpolated string and report custom errors at the exact position. This opens up a wealth of possibilities for adding more compile-time safety to Scala code, not least the ability to introduce your own literal-like types, ranging from checked email addresses or URLs to compile-time-parsed URLs, CSS, SQL or even Haskell!

YOU MAY ALSO LIKE:

Thanks to our sponsors

Writing your own compile-time checks for your favourite embedded DSL!

Jon Pretty

Jon has been having fun riding the bleeding edge of Scala for over a decade, and he's not finished yet. While he's not travelling the world attending Scala conferences, or organizing Scala World, Jon spends his time working on a variety of open-source Scala libraries, and providing professional Scala training services.

SkillsCast

Interpolated strings, like the familiar `s""`, provide a convenient way to embed external DSLs in Scala source, allowing you to construct a new value at runtime from a string literal, with Scala expressions substituted within it. But unless you are prepared to implement the interpolator using a macro, the compiler offers no checks on the correctness or well-formedness of the embedded DSL. Contextual is a small open-source library which does the heavy lifting work to make it trivial to write interpolators to check DSLs which at compile time, without requiring any complicated macro code. An interpolator which parses a DSL when Scalac runs -- with its own custom error messages -- can be written with Contextual in just a few lines of ordinary user code, calling upon parsers, regular expressions or any other means to check the interpolated string and report custom errors at the exact position. This opens up a wealth of possibilities for adding more compile-time safety to Scala code, not least the ability to introduce your own literal-like types, ranging from checked email addresses or URLs to compile-time-parsed URLs, CSS, SQL or even Haskell!

YOU MAY ALSO LIKE:

Thanks to our sponsors

About the Speaker

Writing your own compile-time checks for your favourite embedded DSL!

Jon Pretty

Jon has been having fun riding the bleeding edge of Scala for over a decade, and he's not finished yet. While he's not travelling the world attending Scala conferences, or organizing Scala World, Jon spends his time working on a variety of open-source Scala libraries, and providing professional Scala training services.