ContinuumIO/libdynd — pull request #110 by nevermindewe (2014-08-29 13:37:19+00:00)
Title: #107 Datashape parser should allow quoted field names

This patch should fix Issue #107.
All that was required was to update parse_struct_item() to try to parse a quoted name if the first simple parse failed.
A bunch of tests have been added to the test suite to test if the parsing is working as expected.
A side effect of this patch is that structs can contain characters that are not allowed according to the grammar (like \n, \r, bare \, and bare quotes).

This modifications to this library have been tested with datashape:

```python
In [3]: dshape(" {'2014/08/29 10:11:13 AM' : int}")
Out[3]: dshape("{ 2014/08/29 10:11:13 AM : int32 }")

In [4]: t2.schema
Out[4]: dshape("{ Unique Key : ?int64, Created Date : ?datetime, Closed Date : ?datetime, Agency : string, Agency Name : string, Complaint Type : string, Descriptor : string, Location Type : ?string, Incident Zip : ?int64, Incident Address : ?string, Street Name : ?string, Cross Street 1 : ?string, Cross Street 2 : ?string, Intersection Street 1 : ?string, Intersection Street 2 : ?string, Address Type : string, City : string, Landmark : string, Facility Type : string, Status : string, Due Date : ?datetime, Resolution Action Updated Date : ?datetime, Community Board : string, Borough : string, X Coordinate (State Plane) : ?int64, Y Coordinate (State Plane) : ?int64, Park Facility Name : string, Park Borough : string, School Name : string, School Number : string, School Region : string, School Code : string, School Phone Number : string, School Address : string, School City : string, School State : string, School Zip : string, School Not Found : ?string, School or Citywide Complaint : string, Vehicle Type : string, Taxi Company Borough : ?string, Taxi Pick Up Location : ?string, Bridge Highway Name : string, Bridge Highway Direction : string, Road Ramp : string, Bridge Highway Segment : string, Garage Lot Name : string, Ferry Direction : string, Ferry Terminal Name : string, Latitude : ?float64, Longitude : ?float64, Location : string }")

In [6]: dshape("{ 'field (1)' :int}")
Out[6]: dshape("{ field (1) : int32 }")
```