Add script to autogenerate Vim syntax file. …

Processing includes a keywords.txt file, which is used by the GUI editor
for syntax highlighting. This is the initial commit of make_syntax.py,
a simple python script to autogenerate a Vim syntax file from the
contents of keywords.txt.
Use set() to ensure keywords are unique.
Add command line options with argparse.

Remove hard coded keywords and template files, replacing them with
command line arguments.
Flush last line of syntax block.

Each syntax block is built up line by line. This fixes a bug where the
last line of a block was not being flushed, resulting in missing
keywords in the syntax definition.
Fix duplicated keyword entries.

Fixed a bug where if there is a keyword of the same name in multiple
types (e.g. a keyword might be a function and a method in some class),
it will be listed multiple times in the syntax definition file.
Fix regular expression.

Keywords.txt entries usually have three tab-separated fields, but
occasionally there are only two. Fix the regular expression so both
cases are handled.
Remove commented example lines.
Remove KEYWORD3 type keywords from generated file.

KEYWORD3 is mostly statements like, if, while, synchronized, etc, which
should be correctly highlight by the Java syntax definition.
Fix regex.

Some (one?) of the entries in keywords.txt have a space after the
keyword name, before the tab. Update the regular expression to handle
this case.
Add whitespace for clarity.
Replace text wrapping code with textwrap module.
Add compare.py to compare syntax definitions.

Because syntax files are autogenerated using make_syntax.py, it can be
hard to see what has changed between files. This script extracts the
keywords from two syntax files, and lists those that have been removed,
and those that have been added.
Updated syntax file header.
Auto-generate new processing syntax file.

This is an auto-generated version of the processing.vim syntax file,
based on the keywords.txt list of language tokens for Processing 2.0.1.
The sections for processingFunction, processingType, processingKeyword,
and processingVariable, have been replaced with auto-generated versions,
but the other parts of the file remain the same.

A complete list of keywords added and removed is as follows:

- Functions
Added:
    saveFile HashMap addChild PVector getVertex loadTable noClip
    getStringColumn keyArray matchRow toString getStringArray format
    stop parseFloat sortKeysReverse getRowCount removeColumn hasKey
    getParent getJSONObject setFloat ArrayList saveXML remove
    removeChild addRow addColumn heading setBoolean upper resetShader
    sortValues getColumnCount findRow setContent mouseWheel parseXML
    random3D sketchFile listAttributes removeTokens removeRow
    hasAttribute getIntArray parseChar createShape findRows
    parseBoolean shader matchRows endContour getBoolean shuffle
    createPath parseInt clearRows loadJSONObject rows start
    listChildren sortReverse loadJSONArray setName loadXML sortKeys
    PShader sketchPath sortValuesReverse beginContour setInt
    setJSONObject textureWrap random2D values parseByte
    getAttributeCount getJSONArray clip saveJSONObject setJSONArray
    increment loadMatrix setVertex end hasChildren setString hasValue
    savePath getRow magSq setMag blendMode loadShader keys valueArray
    getVertexCount lower fromAngle clear saveJSONArray randomGaussian
    breakShape quadraticVertex
Removed:
    status unhint openStream BufferedReader param delay switch link
    arraycopy

- Variables
Added:
    length displayHeight displayWidth
Removed:
    screenHeight screen screenWidth online

- Types
Added:
    XML IntDict FloatDict HashMap JSONArray JSONObject TableRow
    BufferedReader IntList Table FloatList PShader StringList
    StringDict
Removed:
    void Object Math

- Constants
Added:
    BOX TRIANGLE DISABLE_ACCURATE_2D DISABLE_DEPTH_MASK
    ENABLE_TEXTURE_MIPMAPS DISABLE_TRANSFORM_CACHE LINE RECT TAU
    ENABLE_TRANSFORM_CACHE ENABLE_STROKE_PERSPECTIVE ENABLE_DEPTH_MASK
    PIE PRESS CLICK DISABLE_STROKE_PERSPECTIVE REPEAT
    ENABLE_OPENGL_ERRORS DISABLE_TEXTURE_MIPMAPS DISABLE_PURE_STROKE
    ENABLE_ACCURATE_2D DRAG QUAD CHORD SPHERE DISABLE_OPENGL_ERRORS
    ARC ELLIPSE
Removed:
    MOTION_JPEG_B MOTION_JPEG_A DISABLE_ERROR_REPORT CINEPAK H261
    ANIMATION LOW SPOT BEST DISABLE_AUTO_GZIP OPENGL H264 MACOS9
    SORENSON CENTER_RADIUS H263 RAW BMP VIDEO WORST
    DISABLE_OPENGL_4X_SMOOTH MS_VIDEO MEDIUM DISABLE_OPENGL_2X_SMOOTH
    POLYGON ENABLE_ACCURATE_TEXTURES ENABLE_OPENGL_2X_SMOOTH
    DISABLE_TEXT_SMOOTH HIGH DISABLE_OPENGL_ERROR_REPORT BASE GRAPHICS
    LOSSLESS ENABLE_OPENGL_4X_SMOOTH NO_FLYING_POO OTHER JAVA2D
    DISABLE_ACCURATE_TEXTURES ENABLE_OPENGL_ERROR_REPORT