{"_id":"rhkwM7Nb7EHoHTPnr","bibbaseid":"sloane-cassez-buckley-thesbtratsparsergeneratorpluginforscalatoolpaper-2016","author_short":["Sloane, A.","Cassez, F.","Buckley, S."],"bibdata":{"bibtype":"inproceedings","type":"B - International Conferences","author":[{"propositions":[],"lastnames":["Sloane"],"firstnames":["Anthony M."],"suffixes":[]},{"propositions":[],"lastnames":["Cassez"],"firstnames":["Franck"],"suffixes":[]},{"propositions":[],"lastnames":["Buckley"],"firstnames":["Scott"],"suffixes":[]}],"title":"The Sbt-rats Parser Generator Plugin for Scala (Tool Paper)","booktitle":"Proceedings of the 2016 7th ACM SIGPLAN Symposium on Scala","series":"SCALA 2016","year":"2016","isbn":"978-1-4503-4648-1","location":"Amsterdam, Netherlands","pages":"110–113","numpages":"4","url":"http://doi.acm.org/10.1145/2998392.3001580","doi":"10.1145/2998392.3001580","urlpaper":"papers/scala-2016.pdf","acmid":"3001580","publisher":"ACM","address":"New York, NY, USA","keywords":"Parsing expression grammars, Scala build tool","abstract":"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 sbtrats plugin for the Scala Build Tool. At its simplest, sbtrats 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, sbtrats can optionally generate case class definitions for the tree structure and a pretty-printer defined using our Kiama language processing library. We explain the sbtrats 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.","show":"","bibtex":"@inproceedings{scala-16,\n author = {Sloane, {Anthony M.} and Cassez, Franck and Buckley, Scott},\n title = {The {Sbt-rats} Parser Generator Plugin for Scala (Tool Paper)},\n booktitle = {Proceedings of the 2016 7th ACM SIGPLAN Symposium on Scala},\n series = {SCALA 2016},\n year = {2016},\n isbn = {978-1-4503-4648-1},\n location = {Amsterdam, Netherlands},\n pages = {110--113},\n numpages = {4},\n url = {http://doi.acm.org/10.1145/2998392.3001580},\n doi = {10.1145/2998392.3001580},\n urlpaper={papers/scala-2016.pdf},\n acmid = {3001580},\n publisher = {ACM},\n address = {New York, NY, USA},\n keywords = {Parsing expression grammars, Scala build tool},\n abstract={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 sbtrats plugin for the Scala Build Tool. At its simplest, sbtrats 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, sbtrats can optionally generate case class definitions for the tree structure and a pretty-printer defined using our Kiama language processing library. We explain the sbtrats 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.},\n show = {},\n Type = {B - International Conferences},\n\n}\n\n","author_short":["Sloane, A.","Cassez, F.","Buckley, S."],"key":"scala-16","id":"scala-16","bibbaseid":"sloane-cassez-buckley-thesbtratsparsergeneratorpluginforscalatoolpaper-2016","role":"author","urls":{"Paper":"http://science.mq.edu.au/~fcassez/bib/papers/scala-2016.pdf"},"keyword":["Parsing expression grammars","Scala build tool"],"metadata":{"authorlinks":{}}},"bibtype":"inproceedings","biburl":"http://science.mq.edu.au/~fcassez/bib/franck-bib.bib","dataSources":["8742EsvjQfyP2fYBW","qbqYFWskmoonRB43F"],"keywords":["parsing expression grammars","scala build tool"],"search_terms":["sbt","rats","parser","generator","plugin","scala","tool","paper","sloane","cassez","buckley"],"title":"The Sbt-rats Parser Generator Plugin for Scala (Tool Paper)","year":2016}