No discussion of make(1) would be complete without an acknowledgement that it includes one of the worst design botches in the history of Unix. The use of tab characters as a required leader for command lines associated with a production means that the interpretation of a makefile can change drastically on the bases of invisible whitespace.
— Eric S. Raymond, The Art of Unix Programming
And then a few weeks later I had a user population of about a dozen, most of them friends, and I didn't want to screw up my embedded base. The rest, sadly, is history.
— Stuart Feldman, author of make, cited in Eric S. Raymond, The Art of Unix Programming
Maperitive is a program that draws maps from geodatabases. It exports to pixel- and vector-based formats. It has an own database of topographic properties of the surface of our planet, which can be rendered in the map as hillshading or contours. It does things right by separating the data layer from the presentation layer using the concepts of features in its rendering rules.
And then, there is the syntax rules.
The following is a collection of my attempts to set up a set of rendering rules, and the error messages Maperitive responds with.
|Rules file||error messages||comment|
|Hospital-DOS-f-h.mrules||no error||"hospital" as a child of "features", line ends with x0D, x0A|
|Hospital-DOS-f-n-h.mrules||no error||"hospital" as a grandchild of "features", child of "nodes", line ends with x0D, x0A|
|Hospital-DOS-f-n-h.mrules||Error: unknown feature type "nodes", line=6, col=2||the same file as before, parsed later the same day|
|Hospital-DOS-f-n-h.mrules||no error||Error: unknown feature type "nodes", line=6, col=2||added a "b" in comment|
The last but one file used to work, the last one not. Output from "diff Hospital-DOS-f-n-h-2.mrules Hospital-DOS-f-h-n.mrules":
4c4 < // -- no node feature; hospital as feature below "nodes" --- > // -- no node feature; hospital as feature elow "nodes"
Maperitive version 2.3.19.
Remembering this is a program developed under a Windows platform, I stopped and restarted it. Now the error message appears for the third and last incarnation, but not for the first.
Output from "diff Hospital-DOS-f-h.mrules Hospital-DOS-f-h-n.mrules":
4c4 < // -- no node feature; hospital as single feature --- > // -- no node feature; hospital as feature below "nodes" 6c6,7 < hospital : amenity=hospital --- > nodes > hospital : amenity=hospital 26,27c27 < font-family : Cambria < font-style : italic --- > font-family : Inconsolata
These lines will be extended until I find out what is going on or my patience expires, whichever comes first.