Packrat parsers can handle practical grammars in mostly constant space

Kota Mizushima, Atusi Maeda, Yoshinori Yamaguchi
2010 Proceedings of the 9th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering - PASTE '10  
Packrat parsing is a powerful parsing algorithm presented by Ford in 2002. Packrat parsers can handle complicated grammars and recursive structures in lexical elements more easily than the traditional LL(k) or LR(1) parsing algorithms. However, packrat parsers require O(n) space for memoization, where n is the length of the input. This space inefficiency makes packrat parsers impractical in some applications. In our earlier work, we had proposed a packrat parser generator that accepts grammars
more » ... xtended with cut operators, which enable the generated parsers to reduce the amount of storage required. Experiments showed that parsers generated from cut-inserted grammars can parse Java programs and subset XML files in bounded space. In this study, we propose methods to automatically insert cut operators into some practical grammars without changing the accepted languages. Our experimental evaluations indicated that using our methods, packrat parsers can handle some practical grammars including the Java grammar in mostly constant space without requiring any extra annotations. • AUTO: generated by Yapp from grammars in which cut operators are inserted automatically using our methods.
doi:10.1145/1806672.1806679 dblp:conf/paste/MizushimaMY10 fatcat:f37aznrryjaulnhtd5gqufqr44