parboiled2: a macro-based approach for effective generators of parsing expressions grammars in Scala
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...
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | 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. |
---|---|
DOI: | 10.48550/arxiv.1907.03436 |