*Pumptriestobesmartwithrespectto[Google'sstyleguide](http://code.google.com/p/google-styleguide/): it breaks long lines (easy to have when they are generated) at acceptable places to fit within 80 columns and indent the continuation lines correctly.
*Theformatishuman-readableandmoreconcisethanXML.
*TheformatworksrelativelywellwithEmacs'C++mode.
##Examples##
ThefollowingPumpcode(wheremetakeywordsstartwith`$`, `[[` and `]]` are meta brackets, and `$$`startsametacommentthatendswiththeline):
Youcanfindreal-worldapplicationsofPumpin[GoogleTest](http://www.google.com/codesearch?q=file%3A\.pump%24+package%3Ahttp%3A%2F%2Fgoogletest\.googlecode\.com) and [Google Mock](http://www.google.com/codesearch?q=file%3A\.pump%24+package%3Ahttp%3A%2F%2Fgooglemock\.googlecode\.com). The source file `foo.h.pump` generates `foo.h`.
##Tips##
*Ifametavariableisfollowedbyaletterordigit,youcanseparatethemusing`[[]]`, which inserts an empty string. For example `Foo$j[[]]Helper` generate `Foo1Helper` when `j`is1.
*Toavoidextra-longPumpsourcelines,youcanbreakalineanywhereyouwantbyinserting`[[]]` followed by a new line. Since any new-line character next to `[[` or `]]`isignored,thegeneratedcodewon'tcontainthisnewline.