Ali Afroozeh1, Jean-Christophe Bach2 , 3, Mark van den Brand1, Adrian Johnstone4, Maarten Manders1, Pierre-Etienne Moreau2 , 3, and Elizabeth Scott4 1 Eindhoven University of Technology, NL-5612 AZ Eindhoven, The Netherlands 2 Inria, Villers-l` es-Nancy, 54600, France 3 Universit´ e de Lorraine, LORIA, Vandœuvre-l` es-Nancy, 54500, France 4 Department of Computer Science, Royal Holloway, University of London, Egham, Surrey, United Kingdom Abstract. Extending a language by embedding within it another lan- guage presents significant parsing challenges, especially if the embedding is recursive. The composite grammar is likely to be nondeterministic as a result of tokens that are valid in both the host and the embed- ded language. In this paper we examine the challenges of embedding the Tom language into a variety of general-purpose high level languages. Tom provides syntax and semantics for advanced pattern matching and tree rewriting facilities. Embedded Tom constructs are translated into the host language by a preprocessor, the output of which is a compos- ite program written purely in the host language. Tom implementations exist for Java , C , C# , Python and Caml . The current parser is com- plex and di cult to maintain. In this paper, we describe how Tom can be parsed using island grammars implemented with the Generalised LL