Since composed grammars are often ambiguous, grammar composition requires a mechanism for dealing with ambiguity: either ruling it out entirely through the use of delimiters, or by selecting the desired parse tree from the parse forest. In this paper we show that language boxes – a delimiter-based algorithm atop incremental parsing – can be extended in a way that creates a new point in the design space between these two extremes. In essence, we retain the use of delimiters, but introduce an algorithm which provides a default disambiguation scheme that can automatically insert, remove, or resize language boxes – leading to what we call automatic language boxes. The very nature of the problem means that automatic language boxes cannot always match a user’s intention. However, our experimental evaluation shows that it behaves acceptably in 96.9% of tests involving compositions of real-world programming languages.
Mon 21 Oct
|16:00 - 16:30|
|16:30 - 16:50|
Breaking Parsers: Mutation-based Generation of Programs with Guaranteed Syntax ErrorsNEW IDEABest Paper
|16:50 - 17:20|