  This paper addresses the problem of specifying and parsing the syntax of
domain-specific languages (DSLs) in a modular, user-friendly way. That is, we
want to enable the design of composable DSLs that combine the natural syntax of
external DSLs with the easy implementation of internal DSLs. The challenge in
parsing composable DSLs is that the composition of several (individually
unambiguous) languages is likely to contain ambiguities. In this paper, we
present the design of a system that uses a type-oriented variant of island
parsing to efficiently parse the syntax of composable DSLs. In particular, we
show how type-oriented island parsing is constant time with respect to the
number of DSLs imported. We also show how to use our tool to implement DSLs on
top of a host language such as Typed Racket.
