On the use of regular expressions for searching text
ACM Transactions on Programming Languages and Systems (TOPLAS)
Programming Techniques: Regular expression search algorithm
Communications of the ACM
Programming Perl
SPIRE '00 Proceedings of the Seventh International Symposium on String Processing Information Retrieval (SPIRE'00)
Parsing expression grammars: a recognition-based syntactic foundation
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The SNOBOL 4 programming language
The SNOBOL 4 programming language
Programming in Lua, Second Edition
Programming in Lua, Second Edition
Lua 5.1 Reference Manual
DLS '08 Proceedings of the 2008 symposium on Dynamic languages
Proceedings of the 34th International Conference on Software Engineering
Left recursion in parsing expression grammars
SBLP'12 Proceedings of the 16th Brazilian conference on Programming Languages
Hi-index | 0.00 |
Current text pattern-matching tools are based on regular expressions. However, pure regular expressions have proven too weak a formalism for the task: many interesting patterns either are difficult to describe or cannot be described by regular expressions. Moreover, the inherent non-determinism of regular expressions does not fit the need to capture specific parts of a match. Motivated by these reasons, most scripting languages nowadays use pattern-matching tools that extend the original regular-expression formalism with a set of ad hoc features, such as greedy repetitions, lazy repetitions, possessive repetitions, ‘longest-match rule,’ lookahead, etc. These ad hoc extensions bring their own set of problems, such as lack of a formal foundation and complex implementations. In this paper, we propose the use of Parsing Expression Grammars (PEGs) as a basis for pattern matching. Following this proposal, we present LPEG, a pattern-matching tool based on PEGs for the Lua scripting language. LPEG unifies the ease of use of pattern-matching tools with the full expressive power of PEGs. Because of this expressive power, it can avoid the myriad of ad hoc constructions present in several current pattern-matching tools. We also present a Parsing Machine that allows a small and efficient implementation of PEGs for pattern matching. Copyright © 2008 John Wiley & Sons, Ltd.