CoffeePot An Invisible XML processor Norm Tovey Walsh Copyright © 2022–2023, 2025 Norm Tovey-Walsh Version 3.3.6-SNAPSHOT Table of Contents Introduction 1. Installing CoffeePot 2. Running CoffeePot 2.1. The command line 2.2. In build tools 3. How it works 3.1. Mapping a simple rule 3.2. Mapping alternatives 3.3. Mapping “x?” 3.4. Mapping “x*” 3.5. Mapping “x+” 3.6. Mapping “x1**x2” 3.7. Mapping “x1++x2” 3.8. Mapping ¯\_(ツ)_/¯ 3.9. A word about “-”, “@”, and “^” 3.10. Insertions 4. Finding errors 5. Ambiguity 5.1. Describing ambiguity 6. Choosing among alternatives 6.1. Using a function library 6.2. Using XPath expressions 7. Configuration 8. Output formats 8.1. XML 8.2. JSON 8.3. CSV 9. Pragmas 10. Parsing records A. Property files A.1. A first attempt A.2. Refining name-value A.3. More line options A.4. Character escapes A.5. Challenges for the reader 11. Diagrams Part I. API Documentation 12. Parser options 12.1. ParserOptions