# vgrind is a prety-printer that takes source code and outputs
# eye-pleasing postscript.  The entry below should be added to your
# local vgrindefs file.  Contributed by Neale Pickett <neale@lanl.gov>.

python|Python|py:\
        :pb=^\d?(def|class)\d\p(\d|\\|\(|\:):\
        :cb=#:ce=$:sb=":se=\e":lb=':le=\e':\
        :kw=assert and break class continue def del elif else except\
         exec finally for from global if import in is lambda not or\
         pass print raise return try while:
