Scala 2016
Sun 30 - Mon 31 October 2016 Amsterdam, Netherlands
co-located with SPLASH 2016
Mon 31 Oct 2016 16:05 - 16:30 at Matterhorn 2 - Parsing

Tools for creating parsers are a key part of a mature language eco-system. Scala has traditionally relied on combinator libraries for defining parsers but being libraries they come with fundamental implementation limitations. An alternative is to use a Java-based parser generator such as ANTLR or Rats! but these tools are quite verbose and not ideal to use with Scala code. We describe our experiences with Scala-focused parser generation that is embodied in our sbt-rats plugin for the Scala Build Tool. At its simplest, sbt-rats provides a bridge to the Rats! parser generator for Java. On top of this bridge, we have a simple grammar definition notation that incorporates annotations for tree construction and pretty-printing. As well as generating a Rats! grammar, sbt-rats can optionally generate case class definitions for the tree structure and a pretty-printer defined using our Kiama language processing library. We explain the sbt-rats grammar notation and describe our positive experiences using it to define grammars for LLVM assembly notation and the SMTLIB input/output language for SMT solvers.

Conference Day
Mon 31 Oct

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

15:40 - 17:20
15:40
25m
Talk
Using Scala’s pattern matching features for an attribute grammar formalisation of the CSS layout specification
Scala
Scott BuckleyMacquarie University, Australia
16:05
25m
Talk
The sbt-rats Parser Generator Plugin for Scala (Tool Paper)
Scala
Anthony SloaneMacquarie University, Australia, Franck CassezMacquarie University, Australia, Scott BuckleyMacquarie University, Australia
DOI Media Attached
16:30
50m
Other
Unconference 2
Scala