vix.ing · top · new · best · stats · spec

parboiled2: a macro-based approach for effective generators of parsing expressions grammars in Scala

2019/07/08 by Alexander A. Myltsev, Myltsev, Alexander A.
Computer Science · #FOS: Computer and information sciences #Logic, programming, and type systems #Natural Language Processing Techniques #Programming Languages (cs.PL) #Software Engineering (cs.SE) #Software Engineering Research

paper · pdf · doi:10.48550/arxiv.1907.03436

openalex publication_date 2019/07/08 · openalex created_date 2025/10/10 · openalex updated_date 2026/07/28

Abstract

In today's computerized world, parsing is ubiquitous. Developers parse logs, queries to databases and websites, programming and natural languages. When Java ecosystem maturity, concise syntax, and runtime speed matters, developers choose parboiled2 that generates grammars for parsing expression grammars (PEG). The following open source libraries have chosen parboiled2 for parsing facilities: - akka-http is the Streaming-first HTTP server/module of Lightbend Akka - Sangria is a Scala GraphQL implementation - http4s is a minimal, idiomatic Scala interface for HTTP - cornichon is Scala DSL for testing HTTP JSON API - scala-uri is a simple Scala library for building and parsing URIs The library uses a wide range of Scala facilities to provide required functionality. We also discuss the extensions to PEGs. In particular, we show the implementation of an internal Scala DSL that features intuitive syntax and semantics. We demonstrate how parboiled2 extensively uses Scala typing to verify DSL integrity. We also show the connections to inner structures of parboiled2, which can give the developer a better understanding of how to compose more effective grammars. Finally, we expose how a grammar is expanded with Scala Macros to an effective runtime code.

Related