You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
12 lines
34 KiB
12 lines
34 KiB
{ |
|
"version": 3, |
|
"sources": [ |
|
"terraformer-wkt-parser.js" |
|
], |
|
"names": [], |
|
"mappings": ";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA", |
|
"file": "index.js", |
|
"sourcesContent": [ |
|
"(function (root, factory) {\r\n\r\n // Node.\r\n if(typeof module === 'object' && typeof module.exports === 'object') {\r\n exports = module.exports = factory(require(\"terraformer\"));\r\n } else if(typeof navigator === \"object\") {\r\n // Browser Global.\r\n if (!root.Terraformer){\r\n throw new Error(\"Terraformer.WKT requires the core Terraformer library. http://github.com/esri/terraformer\")\r\n }\r\n root.Terraformer.WKT = factory(root.Terraformer);\r\n }\r\n\r\n}(this, function(Terraformer) {\r\n var exports = { };\r\n\r\n /* Jison generated parser */\r\nvar parser = (function(){\r\nvar parser = {trace: function trace () { },\r\nyy: {},\r\nsymbols_: {\"error\":2,\"expressions\":3,\"point\":4,\"EOF\":5,\"linestring\":6,\"polygon\":7,\"multipoint\":8,\"multilinestring\":9,\"multipolygon\":10,\"coordinate\":11,\"DOUBLE_TOK\":12,\"ptarray\":13,\"COMMA\":14,\"ring_list\":15,\"ring\":16,\"(\":17,\")\":18,\"POINT\":19,\"Z\":20,\"ZM\":21,\"M\":22,\"EMPTY\":23,\"point_untagged\":24,\"polygon_list\":25,\"polygon_untagged\":26,\"point_list\":27,\"LINESTRING\":28,\"POLYGON\":29,\"MULTIPOINT\":30,\"MULTILINESTRING\":31,\"MULTIPOLYGON\":32,\"$accept\":0,\"$end\":1},\r\nterminals_: {2:\"error\",5:\"EOF\",12:\"DOUBLE_TOK\",14:\"COMMA\",17:\"(\",18:\")\",19:\"POINT\",20:\"Z\",21:\"ZM\",22:\"M\",23:\"EMPTY\",28:\"LINESTRING\",29:\"POLYGON\",30:\"MULTIPOINT\",31:\"MULTILINESTRING\",32:\"MULTIPOLYGON\"},\r\nproductions_: [0,[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[11,2],[11,3],[11,4],[13,3],[13,1],[15,3],[15,1],[16,3],[4,4],[4,5],[4,5],[4,5],[4,2],[24,1],[24,3],[25,3],[25,1],[26,3],[27,3],[27,1],[6,4],[6,5],[6,5],[6,5],[6,2],[7,4],[7,5],[7,5],[7,5],[7,2],[8,4],[8,5],[8,5],[8,5],[8,2],[9,4],[9,5],[9,5],[9,5],[9,2],[10,4],[10,5],[10,5],[10,5],[10,2]],\r\nperformAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$,_$\r\n) {\r\n\r\nvar $0 = $.length - 1;\r\nswitch (yystate) {\r\ncase 1: return $[$0-1]; \r\nbreak;\r\ncase 2: return $[$0-1]; \r\nbreak;\r\ncase 3: return $[$0-1]; \r\nbreak;\r\ncase 4: return $[$0-1]; \r\nbreak;\r\ncase 5: return $[$0-1]; \r\nbreak;\r\ncase 6: return $[$0-1]; \r\nbreak;\r\ncase 7: this.$ = new PointArray([ Number($[$0-1]), Number($[$0]) ]); \r\nbreak;\r\ncase 8: this.$ = new PointArray([ Number($[$0-2]), Number($[$0-1]), Number($[$0]) ]); \r\nbreak;\r\ncase 9: this.$ = new PointArray([ Number($[$0-3]), Number($[$0-2]), Number($[$0-1]), Number($[$0]) ]); \r\nbreak;\r\ncase 10: this.$ = $[$0-2].addPoint($[$0]); \r\nbreak;\r\ncase 11: this.$ = $[$0]; \r\nbreak;\r\ncase 12: this.$ = $[$0-2].addRing($[$0]); \r\nbreak;\r\ncase 13: this.$ = new RingList($[$0]); \r\nbreak;\r\ncase 14: this.$ = new Ring($[$0-1]); \r\nbreak;\r\ncase 15: this.$ = { \"type\": \"Point\", \"coordinates\": $[$0-1].data[0] }; \r\nbreak;\r\ncase 16: this.$ = { \"type\": \"Point\", \"coordinates\": $[$0-1].data[0], \"properties\": { z: true } }; \r\nbreak;\r\ncase 17: this.$ = { \"type\": \"Point\", \"coordinates\": $[$0-1].data[0], \"properties\": { z: true, m: true } }; \r\nbreak;\r\ncase 18: this.$ = { \"type\": \"Point\", \"coordinates\": $[$0-1].data[0], \"properties\": { m: true } }; \r\nbreak;\r\ncase 19: this.$ = { \"type\": \"Point\", \"coordinates\": [ ] }; \r\nbreak;\r\ncase 20: this.$ = $[$0]; \r\nbreak;\r\ncase 21: this.$ = $[$0-1]; \r\nbreak;\r\ncase 22: this.$ = $[$0-2].addPolygon($[$0]); \r\nbreak;\r\ncase 23: this.$ = new PolygonList($[$0]); \r\nbreak;\r\ncase 24: this.$ = $[$0-1]; \r\nbreak;\r\ncase 25: this.$ = $[$0-2].addPoint($[$0]); \r\nbreak;\r\ncase 26: this.$ = $[$0]; \r\nbreak;\r\ncase 27: this.$ = { \"type\": \"LineString\", \"coordinates\": $[$0-1].data }; \r\nbreak;\r\ncase 28: this.$ = { \"type\": \"LineString\", \"coordinates\": $[$0-1].data, \"properties\": { z: true } }; \r\nbreak;\r\ncase 29: this.$ = { \"type\": \"LineString\", \"coordinates\": $[$0-1].data, \"properties\": { m: true } }; \r\nbreak;\r\ncase 30: this.$ = { \"type\": \"LineString\", \"coordinates\": $[$0-1].data, \"properties\": { z: true, m: true } }; \r\nbreak;\r\ncase 31: this.$ = { \"type\": \"LineString\", \"coordinates\": [ ] }; \r\nbreak;\r\ncase 32: this.$ = { \"type\": \"Polygon\", \"coordinates\": $[$0-1].toJSON() }; \r\nbreak;\r\ncase 33: this.$ = { \"type\": \"Polygon\", \"coordinates\": $[$0-1].toJSON(), \"properties\": { z: true } }; \r\nbreak;\r\ncase 34: this.$ = { \"type\": \"Polygon\", \"coordinates\": $[$0-1].toJSON(), \"properties\": { m: true } }; \r\nbreak;\r\ncase 35: this.$ = { \"type\": \"Polygon\", \"coordinates\": $[$0-1].toJSON(), \"properties\": { z: true, m: true } }; \r\nbreak;\r\ncase 36: this.$ = { \"type\": \"Polygon\", \"coordinates\": [ ] }; \r\nbreak;\r\ncase 37: this.$ = { \"type\": \"MultiPoint\", \"coordinates\": $[$0-1].data }; \r\nbreak;\r\ncase 38: this.$ = { \"type\": \"MultiPoint\", \"coordinates\": $[$0-1].data, \"properties\": { z: true } }; \r\nbreak;\r\ncase 39: this.$ = { \"type\": \"MultiPoint\", \"coordinates\": $[$0-1].data, \"properties\": { m: true } }; \r\nbreak;\r\ncase 40: this.$ = { \"type\": \"MultiPoint\", \"coordinates\": $[$0-1].data, \"properties\": { z: true, m: true } }; \r\nbreak;\r\ncase 41: this.$ = { \"type\": \"MultiPoint\", \"coordinates\": [ ] } \r\nbreak;\r\ncase 42: this.$ = { \"type\": \"MultiLineString\", \"coordinates\": $[$0-1].toJSON() }; \r\nbreak;\r\ncase 43: this.$ = { \"type\": \"MultiLineString\", \"coordinates\": $[$0-1].toJSON(), \"properties\": { z: true } }; \r\nbreak;\r\ncase 44: this.$ = { \"type\": \"MultiLineString\", \"coordinates\": $[$0-1].toJSON(), \"properties\": { m: true } }; \r\nbreak;\r\ncase 45: this.$ = { \"type\": \"MultiLineString\", \"coordinates\": $[$0-1].toJSON(), \"properties\": { z: true, m: true } }; \r\nbreak;\r\ncase 46: this.$ = { \"type\": \"MultiLineString\", \"coordinates\": [ ] }; \r\nbreak;\r\ncase 47: this.$ = { \"type\": \"MultiPolygon\", \"coordinates\": $[$0-1].toJSON() }; \r\nbreak;\r\ncase 48: this.$ = { \"type\": \"MultiPolygon\", \"coordinates\": $[$0-1].toJSON(), \"properties\": { z: true } }; \r\nbreak;\r\ncase 49: this.$ = { \"type\": \"MultiPolygon\", \"coordinates\": $[$0-1].toJSON(), \"properties\": { m: true } }; \r\nbreak;\r\ncase 50: this.$ = { \"type\": \"MultiPolygon\", \"coordinates\": $[$0-1].toJSON(), \"properties\": { z: true, m: true } }; \r\nbreak;\r\ncase 51: this.$ = { \"type\": \"MultiPolygon\", \"coordinates\": [ ] }; \r\nbreak;\r\n}\r\n},\r\ntable: [{3:1,4:2,6:3,7:4,8:5,9:6,10:7,19:[1,8],28:[1,9],29:[1,10],30:[1,11],31:[1,12],32:[1,13]},{1:[3]},{5:[1,14]},{5:[1,15]},{5:[1,16]},{5:[1,17]},{5:[1,18]},{5:[1,19]},{17:[1,20],20:[1,21],21:[1,22],22:[1,23],23:[1,24]},{17:[1,25],20:[1,26],21:[1,28],22:[1,27],23:[1,29]},{17:[1,30],20:[1,31],21:[1,33],22:[1,32],23:[1,34]},{17:[1,35],20:[1,36],21:[1,38],22:[1,37],23:[1,39]},{17:[1,40],20:[1,41],21:[1,43],22:[1,42],23:[1,44]},{17:[1,45],20:[1,46],21:[1,48],22:[1,47],23:[1,49]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{11:51,12:[1,52],13:50},{17:[1,53]},{17:[1,54]},{17:[1,55]},{5:[2,19]},{11:58,12:[1,52],17:[1,59],24:57,27:56},{17:[1,60]},{17:[1,61]},{17:[1,62]},{5:[2,31]},{15:63,16:64,17:[1,65]},{17:[1,66]},{17:[1,67]},{17:[1,68]},{5:[2,36]},{11:58,12:[1,52],17:[1,59],24:57,27:69},{17:[1,70]},{17:[1,71]},{17:[1,72]},{5:[2,41]},{15:73,16:64,17:[1,65]},{17:[1,74]},{17:[1,75]},{17:[1,76]},{5:[2,46]},{17:[1,79],25:77,26:78},{17:[1,80]},{17:[1,81]},{17:[1,82]},{5:[2,51]},{14:[1,84],18:[1,83]},{14:[2,11],18:[2,11]},{12:[1,85]},{11:51,12:[1,52],13:86},{11:51,12:[1,52],13:87},{11:51,12:[1,52],13:88},{14:[1,90],18:[1,89]},{14:[2,26],18:[2,26]},{14:[2,20],18:[2,20]},{11:91,12:[1,52]},{11:58,12:[1,52],17:[1,59],24:57,27:92},{11:58,12:[1,52],17:[1,59],24:57,27:93},{11:58,12:[1,52],17:[1,59],24:57,27:94},{14:[1,96],18:[1,95]},{14:[2,13],18:[2,13]},{11:51,12:[1,52],13:97},{15:98,16:64,17:[1,65]},{15:99,16:64,17:[1,65]},{15:100,16:64,17:[1,65]},{14:[1,90],18:[1,101]},{11:58,12:[1,52],17:[1,59],24:57,27:102},{11:58,12:[1,52],17:[1,59],24:57,27:103},{11:58,12:[1,52],17:[1,59],24:57,27:104},{14:[1,96],18:[1,105]},{15:106,16:64,17:[1,65]},{15:107,16:64,17:[1,65]},{15:108,16:64,17:[1,65]},{14:[1,110],18:[1,109]},{14:[2,23],18:[2,23]},{15:111,16:64,17:[1,65]},{17:[1,79],25:112,26:78},{17:[1,79],25:113,26:78},{17:[1,79],25:114,26:78},{5:[2,15]},{11:115,12:[1,52]},{12:[1,116],14:[2,7],18:[2,7]},{14:[1,84],18:[1,117]},{14:[1,84],18:[1,118]},{14:[1,84],18:[1,119]},{5:[2,27]},{11:58,12:[1,52],17:[1,59],24:120},{18:[1,121]},{14:[1,90],18:[1,122]},{14:[1,90],18:[1,123]},{14:[1,90],18:[1,124]},{5:[2,32]},{16:125,17:[1,65]},{14:[1,84],18:[1,126]},{14:[1,96],18:[1,127]},{14:[1,96],18:[1,128]},{14:[1,96],18:[1,129]},{5:[2,37]},{14:[1,90],18:[1,130]},{14:[1,90],18:[1,131]},{14:[1,90],18:[1,132]},{5:[2,42]},{14:[1,96],18:[1,133]},{14:[1,96],18:[1,134]},{14:[1,96],18:[1,135]},{5:[2,47]},{17:[1,79],26:136},{14:[1,96],18:[1,137]},{14:[1,110],18:[1,138]},{14:[1,110],18:[1,139]},{14:[1,110],18:[1,140]},{14:[2,10],18:[2,10]},{12:[1,141],14:[2,8],18:[2,8]},{5:[2,16]},{5:[2,17]},{5:[2,18]},{14:[2,25],18:[2,25]},{14:[2,21],18:[2,21]},{5:[2,28]},{5:[2,29]},{5:[2,30]},{14:[2,12],18:[2,12]},{14:[2,14],18:[2,14]},{5:[2,33]},{5:[2,34]},{5:[2,35]},{5:[2,38]},{5:[2,39]},{5:[2,40]},{5:[2,43]},{5:[2,44]},{5:[2,45]},{14:[2,22],18:[2,22]},{14:[2,24],18:[2,24]},{5:[2,48]},{5:[2,49]},{5:[2,50]},{14:[2,9],18:[2,9]}],\r\ndefaultActions: {14:[2,1],15:[2,2],16:[2,3],17:[2,4],18:[2,5],19:[2,6],24:[2,19],29:[2,31],34:[2,36],39:[2,41],44:[2,46],49:[2,51],83:[2,15],89:[2,27],95:[2,32],101:[2,37],105:[2,42],109:[2,47],117:[2,16],118:[2,17],119:[2,18],122:[2,28],123:[2,29],124:[2,30],127:[2,33],128:[2,34],129:[2,35],130:[2,38],131:[2,39],132:[2,40],133:[2,43],134:[2,44],135:[2,45],138:[2,48],139:[2,49],140:[2,50]},\r\nparseError: function parseError (str, hash) {\r\n throw new Error(str);\r\n},\r\nparse: function parse(input) {\r\n var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\r\n this.lexer.setInput(input);\r\n this.lexer.yy = this.yy;\r\n this.yy.lexer = this.lexer;\r\n this.yy.parser = this;\r\n if (typeof this.lexer.yylloc == \"undefined\")\r\n this.lexer.yylloc = {};\r\n var yyloc = this.lexer.yylloc;\r\n lstack.push(yyloc);\r\n var ranges = this.lexer.options && this.lexer.options.ranges;\r\n if (typeof this.yy.parseError === \"function\")\r\n this.parseError = this.yy.parseError;\r\n function popStack(n) {\r\n stack.length = stack.length - 2 * n;\r\n vstack.length = vstack.length - n;\r\n lstack.length = lstack.length - n;\r\n }\r\n function lex() {\r\n var token;\r\n token = self.lexer.lex() || 1;\r\n if (typeof token !== \"number\") {\r\n token = self.symbols_[token] || token;\r\n }\r\n return token;\r\n }\r\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\r\n while (true) {\r\n state = stack[stack.length - 1];\r\n if (this.defaultActions[state]) {\r\n action = this.defaultActions[state];\r\n } else {\r\n if (symbol === null || typeof symbol == \"undefined\") {\r\n symbol = lex();\r\n }\r\n action = table[state] && table[state][symbol];\r\n }\r\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\r\n var errStr = \"\";\r\n if (!recovering) {\r\n expected = [];\r\n for (p in table[state])\r\n if (this.terminals_[p] && p > 2) {\r\n expected.push(\"'\" + this.terminals_[p] + \"'\");\r\n }\r\n if (this.lexer.showPosition) {\r\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + this.lexer.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\r\n } else {\r\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == 1?\"end of input\":\"'\" + (this.terminals_[symbol] || symbol) + \"'\");\r\n }\r\n this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});\r\n }\r\n }\r\n if (action[0] instanceof Array && action.length > 1) {\r\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\r\n }\r\n switch (action[0]) {\r\n case 1:\r\n stack.push(symbol);\r\n vstack.push(this.lexer.yytext);\r\n lstack.push(this.lexer.yylloc);\r\n stack.push(action[1]);\r\n symbol = null;\r\n if (!preErrorSymbol) {\r\n yyleng = this.lexer.yyleng;\r\n yytext = this.lexer.yytext;\r\n yylineno = this.lexer.yylineno;\r\n yyloc = this.lexer.yylloc;\r\n if (recovering > 0)\r\n recovering--;\r\n } else {\r\n symbol = preErrorSymbol;\r\n preErrorSymbol = null;\r\n }\r\n break;\r\n case 2:\r\n len = this.productions_[action[1]][1];\r\n yyval.$ = vstack[vstack.length - len];\r\n yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column};\r\n if (ranges) {\r\n yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];\r\n }\r\n r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);\r\n if (typeof r !== \"undefined\") {\r\n return r;\r\n }\r\n if (len) {\r\n stack = stack.slice(0, -1 * len * 2);\r\n vstack = vstack.slice(0, -1 * len);\r\n lstack = lstack.slice(0, -1 * len);\r\n }\r\n stack.push(this.productions_[action[1]][0]);\r\n vstack.push(yyval.$);\r\n lstack.push(yyval._$);\r\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\r\n stack.push(newState);\r\n break;\r\n case 3:\r\n return true;\r\n }\r\n }\r\n return true;\r\n}\r\n};\r\nundefined/* Jison generated lexer */\r\nvar lexer = (function(){\r\nvar lexer = ({EOF:1,\r\nparseError:function parseError(str, hash) {\r\n if (this.yy.parser) {\r\n this.yy.parser.parseError(str, hash);\r\n } else {\r\n throw new Error(str);\r\n }\r\n },\r\nsetInput:function (input) {\r\n this._input = input;\r\n this._more = this._less = this.done = false;\r\n this.yylineno = this.yyleng = 0;\r\n this.yytext = this.matched = this.match = '';\r\n this.conditionStack = ['INITIAL'];\r\n this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};\r\n if (this.options.ranges) this.yylloc.range = [0,0];\r\n this.offset = 0;\r\n return this;\r\n },\r\ninput:function () {\r\n var ch = this._input[0];\r\n this.yytext += ch;\r\n this.yyleng++;\r\n this.offset++;\r\n this.match += ch;\r\n this.matched += ch;\r\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\r\n if (lines) {\r\n this.yylineno++;\r\n this.yylloc.last_line++;\r\n } else {\r\n this.yylloc.last_column++;\r\n }\r\n if (this.options.ranges) this.yylloc.range[1]++;\r\n\r\n this._input = this._input.slice(1);\r\n return ch;\r\n },\r\nunput:function (ch) {\r\n var len = ch.length;\r\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\r\n\r\n this._input = ch + this._input;\r\n this.yytext = this.yytext.substr(0, this.yytext.length-len-1);\r\n //this.yyleng -= len;\r\n this.offset -= len;\r\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\r\n this.match = this.match.substr(0, this.match.length-1);\r\n this.matched = this.matched.substr(0, this.matched.length-1);\r\n\r\n if (lines.length-1) this.yylineno -= lines.length-1;\r\n var r = this.yylloc.range;\r\n\r\n this.yylloc = {first_line: this.yylloc.first_line,\r\n last_line: this.yylineno+1,\r\n first_column: this.yylloc.first_column,\r\n last_column: lines ?\r\n (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length:\r\n this.yylloc.first_column - len\r\n };\r\n\r\n if (this.options.ranges) {\r\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\r\n }\r\n return this;\r\n },\r\nmore:function () {\r\n this._more = true;\r\n return this;\r\n },\r\nless:function (n) {\r\n this.unput(this.match.slice(n));\r\n },\r\npastInput:function () {\r\n var past = this.matched.substr(0, this.matched.length - this.match.length);\r\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\r\n },\r\nupcomingInput:function () {\r\n var next = this.match;\r\n if (next.length < 20) {\r\n next += this._input.substr(0, 20-next.length);\r\n }\r\n return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\\n/g, \"\");\r\n },\r\nshowPosition:function () {\r\n var pre = this.pastInput();\r\n var c = new Array(pre.length + 1).join(\"-\");\r\n return pre + this.upcomingInput() + \"\\n\" + c+\"^\";\r\n },\r\nnext:function () {\r\n if (this.done) {\r\n return this.EOF;\r\n }\r\n if (!this._input) this.done = true;\r\n\r\n var token,\r\n match,\r\n tempMatch,\r\n index,\r\n col,\r\n lines;\r\n if (!this._more) {\r\n this.yytext = '';\r\n this.match = '';\r\n }\r\n var rules = this._currentRules();\r\n for (var i=0;i < rules.length; i++) {\r\n tempMatch = this._input.match(this.rules[rules[i]]);\r\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\r\n match = tempMatch;\r\n index = i;\r\n if (!this.options.flex) break;\r\n }\r\n }\r\n if (match) {\r\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\r\n if (lines) this.yylineno += lines.length;\r\n this.yylloc = {first_line: this.yylloc.last_line,\r\n last_line: this.yylineno+1,\r\n first_column: this.yylloc.last_column,\r\n last_column: lines ? lines[lines.length-1].length-lines[lines.length-1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length};\r\n this.yytext += match[0];\r\n this.match += match[0];\r\n this.matches = match;\r\n this.yyleng = this.yytext.length;\r\n if (this.options.ranges) {\r\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\r\n }\r\n this._more = false;\r\n this._input = this._input.slice(match[0].length);\r\n this.matched += match[0];\r\n token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]);\r\n if (this.done && this._input) this.done = false;\r\n if (token) return token;\r\n else return;\r\n }\r\n if (this._input === \"\") {\r\n return this.EOF;\r\n } else {\r\n return this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\\n'+this.showPosition(),\r\n {text: \"\", token: null, line: this.yylineno});\r\n }\r\n },\r\nlex:function lex () {\r\n var r = this.next();\r\n if (typeof r !== 'undefined') {\r\n return r;\r\n } else {\r\n return this.lex();\r\n }\r\n },\r\nbegin:function begin (condition) {\r\n this.conditionStack.push(condition);\r\n },\r\npopState:function popState () {\r\n return this.conditionStack.pop();\r\n },\r\n_currentRules:function _currentRules () {\r\n return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;\r\n },\r\ntopState:function () {\r\n return this.conditionStack[this.conditionStack.length-2];\r\n },\r\npushState:function begin (condition) {\r\n this.begin(condition);\r\n }});\r\nlexer.options = {};\r\nlexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START\r\n) {\r\n\r\nvar YYSTATE=YY_START\r\nswitch($avoiding_name_collisions) {\r\ncase 0:// ignore\r\nbreak;\r\ncase 1:return 17\r\nbreak;\r\ncase 2:return 18\r\nbreak;\r\ncase 3:return 12\r\nbreak;\r\ncase 4:return 19\r\nbreak;\r\ncase 5:return 28\r\nbreak;\r\ncase 6:return 29\r\nbreak;\r\ncase 7:return 30\r\nbreak;\r\ncase 8:return 31\r\nbreak;\r\ncase 9:return 32\r\nbreak;\r\ncase 10:return 14\r\nbreak;\r\ncase 11:return 23\r\nbreak;\r\ncase 12:return 22\r\nbreak;\r\ncase 13:return 20\r\nbreak;\r\ncase 14:return 21\r\nbreak;\r\ncase 15:return 5\r\nbreak;\r\ncase 16:return \"INVALID\"\r\nbreak;\r\n}\r\n};\r\nlexer.rules = [/^(?:\\s+)/,/^(?:\\()/,/^(?:\\))/,/^(?:-?[0-9]+(\\.[0-9]+)?([eE][\\-\\+]?[0-9]+)?)/,/^(?:POINT\\b)/,/^(?:LINESTRING\\b)/,/^(?:POLYGON\\b)/,/^(?:MULTIPOINT\\b)/,/^(?:MULTILINESTRING\\b)/,/^(?:MULTIPOLYGON\\b)/,/^(?:,)/,/^(?:EMPTY\\b)/,/^(?:M\\b)/,/^(?:Z\\b)/,/^(?:ZM\\b)/,/^(?:$)/,/^(?:.)/];\r\nlexer.conditions = {\"INITIAL\":{\"rules\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],\"inclusive\":true}};\r\nreturn lexer;})()\r\nparser.lexer = lexer;\r\nfunction Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser;\r\nreturn new Parser;\r\n})();\r\n\r\n function PointArray (point) {\r\n this.data = [ point ];\r\n this.type = 'PointArray';\r\n }\r\n\r\n PointArray.prototype.addPoint = function (point) {\r\n if (point.type === 'PointArray') {\r\n this.data = this.data.concat(point.data);\r\n } else {\r\n this.data.push(point);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n PointArray.prototype.toJSON = function () {\r\n return this.data;\r\n };\r\n\r\n function Ring (point) {\r\n this.data = point;\r\n this.type = 'Ring';\r\n }\r\n\r\n Ring.prototype.toJSON = function () {\r\n var data = [ ];\r\n\r\n for (var i = 0; i < this.data.data.length; i++) {\r\n data.push(this.data.data[i]);\r\n }\r\n\r\n return data;\r\n };\r\n\r\n function RingList (ring) {\r\n this.data = [ ring ];\r\n this.type = 'RingList';\r\n }\r\n\r\n RingList.prototype.addRing = function (ring) {\r\n this.data.push(ring);\r\n\r\n return this;\r\n };\r\n\r\n RingList.prototype.toJSON = function () {\r\n var data = [ ];\r\n\r\n for (var i = 0; i < this.data.length; i++) {\r\n data.push(this.data[i].toJSON());\r\n }\r\n\r\n if (data.length === 1) {\r\n return data;\r\n } else {\r\n return data;\r\n }\r\n };\r\n\r\n function PolygonList (polygon) {\r\n this.data = [ polygon ];\r\n this.type = 'PolygonList';\r\n }\r\n\r\n PolygonList.prototype.addPolygon = function (polygon) {\r\n this.data.push(polygon);\r\n\r\n return this;\r\n };\r\n\r\n PolygonList.prototype.toJSON = function () {\r\n var data = [ ];\r\n\r\n for (var i = 0; i < this.data.length; i++) {\r\n data = data.concat( [ this.data[i].toJSON() ] );\r\n }\r\n\r\n return data;\r\n };\r\n\r\n function _parse () {\r\n return parser.parse.apply(parser, arguments);\r\n }\r\n\r\n function parse (element) {\r\n var res, primitive;\r\n\r\n try {\r\n res = parser.parse(element);\r\n } catch (err) {\r\n throw Error(\"Unable to parse: \" + err);\r\n }\r\n\r\n return Terraformer.Primitive(res);\r\n }\r\n\r\n function arrayToRing (arr) {\r\n var parts = [ ], ret = '';\r\n\r\n for (var i = 0; i < arr.length; i++) {\r\n parts.push(arr[i].join(' '));\r\n }\r\n\r\n ret += '(' + parts.join(', ') + ')';\r\n\r\n return ret;\r\n\r\n }\r\n\r\n function pointToWKTPoint (primitive) {\r\n var ret = 'POINT ';\r\n\r\n if (primitive.coordinates === undefined || primitive.coordinates.length === 0) {\r\n ret += 'EMPTY';\r\n\r\n return ret;\r\n } else if (primitive.coordinates.length === 3) {\r\n // 3d or time? default to 3d\r\n if (primitive.properties && primitive.properties.m === true) {\r\n ret += 'M ';\r\n } else {\r\n ret += 'Z ';\r\n }\r\n } else if (primitive.coordinates.length === 4) {\r\n // 3d and time\r\n ret += 'ZM ';\r\n }\r\n\r\n // include coordinates\r\n ret += '(' + primitive.coordinates.join(' ') + ')';\r\n\r\n return ret;\r\n }\r\n\r\n function lineStringToWKTLineString (primitive) {\r\n var ret = 'LINESTRING ';\r\n\r\n if (primitive.coordinates === undefined || primitive.coordinates.length === 0 || primitive.coordinates[0].length === 0) {\r\n ret += 'EMPTY';\r\n\r\n return ret;\r\n } else if (primitive.coordinates[0].length === 3) {\r\n if (primitive.properties && primitive.properties.m === true) {\r\n ret += 'M ';\r\n } else {\r\n ret += 'Z ';\r\n }\r\n } else if (primitive.coordinates[0].length === 4) {\r\n ret += 'ZM ';\r\n }\r\n\r\n ret += arrayToRing(primitive.coordinates);\r\n\r\n return ret;\r\n }\r\n\r\n function polygonToWKTPolygon (primitive) {\r\n var ret = 'POLYGON ';\r\n\r\n if (primitive.coordinates === undefined || primitive.coordinates.length === 0 || primitive.coordinates[0].length === 0) {\r\n ret += 'EMPTY';\r\n\r\n return ret;\r\n } else if (primitive.coordinates[0][0].length === 3) {\r\n if (primitive.properties && primitive.properties.m === true) {\r\n ret += 'M ';\r\n } else {\r\n ret += 'Z ';\r\n }\r\n } else if (primitive.coordinates[0][0].length === 4) {\r\n ret += 'ZM ';\r\n }\r\n\r\n ret += '(';\r\n var parts = [ ];\r\n for (var i = 0; i < primitive.coordinates.length; i++) {\r\n parts.push(arrayToRing(primitive.coordinates[i]));\r\n }\r\n\r\n ret += parts.join(', ');\r\n ret += ')';\r\n\r\n return ret;\r\n }\r\n\r\n function multiPointToWKTMultiPoint (primitive) {\r\n var ret = 'MULTIPOINT ';\r\n\r\n if (primitive.coordinates === undefined || primitive.coordinates.length === 0 || primitive.coordinates[0].length === 0) {\r\n ret += 'EMPTY';\r\n\r\n return ret;\r\n } else if (primitive.coordinates[0].length === 3) {\r\n if (primitive.properties && primitive.properties.m === true) {\r\n ret += 'M ';\r\n } else {\r\n ret += 'Z ';\r\n }\r\n } else if (primitive.coordinates[0].length === 4) {\r\n ret += 'ZM ';\r\n }\r\n\r\n ret += arrayToRing(primitive.coordinates);\r\n\r\n return ret;\r\n }\r\n\r\n function multiLineStringToWKTMultiLineString (primitive) {\r\n var ret = 'MULTILINESTRING ';\r\n\r\n if (primitive.coordinates === undefined || primitive.coordinates.length === 0 || primitive.coordinates[0].length === 0) {\r\n ret += 'EMPTY';\r\n\r\n return ret;\r\n } else if (primitive.coordinates[0][0].length === 3) {\r\n if (primitive.properties && primitive.properties.m === true) {\r\n ret += 'M ';\r\n } else {\r\n ret += 'Z ';\r\n }\r\n } else if (primitive.coordinates[0][0].length === 4) {\r\n ret += 'ZM ';\r\n }\r\n\r\n ret += '(';\r\n var parts = [ ];\r\n for (var i = 0; i < primitive.coordinates.length; i++) {\r\n parts.push(arrayToRing(primitive.coordinates[i]));\r\n }\r\n\r\n ret += parts.join(', ');\r\n ret += ')';\r\n\r\n return ret;\r\n }\r\n\r\n function multiPolygonToWKTMultiPolygon (primitive) {\r\n var ret = 'MULTIPOLYGON ';\r\n\r\n if (primitive.coordinates === undefined || primitive.coordinates.length === 0 || primitive.coordinates[0].length === 0 || primitive.coordinates[0][0].length === 0) {\r\n ret += 'EMPTY';\r\n\r\n return ret;\r\n } else if (primitive.coordinates[0][0][0].length === 3) {\r\n if (primitive.properties && primitive.properties.m === true) {\r\n ret += 'M ';\r\n } else {\r\n ret += 'Z ';\r\n }\r\n } else if (primitive.coordinates[0][0][0].length === 4) {\r\n ret += 'ZM ';\r\n }\r\n\r\n ret += '(';\r\n var inner = [ ];\r\n for (var c = 0; c < primitive.coordinates.length; c++) {\r\n var it = '(';\r\n var parts = [ ];\r\n for (var i = 0; i < primitive.coordinates[c].length; i++) {\r\n parts.push(arrayToRing(primitive.coordinates[c][i]));\r\n }\r\n\r\n it += parts.join(', ');\r\n it += ')';\r\n\r\n inner.push(it);\r\n }\r\n\r\n ret += inner.join(', ');\r\n ret += ')';\r\n\r\n return ret;\r\n }\r\n\r\n function convert (primitive) {\r\n switch (primitive.type) {\r\n case 'Point':\r\n return pointToWKTPoint(primitive);\r\n case 'LineString':\r\n return lineStringToWKTLineString(primitive);\r\n case 'Polygon':\r\n return polygonToWKTPolygon(primitive);\r\n case 'MultiPoint':\r\n return multiPointToWKTMultiPoint(primitive);\r\n case 'MultiLineString':\r\n return multiLineStringToWKTMultiLineString(primitive);\r\n case 'MultiPolygon':\r\n return multiPolygonToWKTMultiPolygon(primitive);\r\n case 'GeometryCollection':\r\n var ret = 'GEOMETRYCOLLECTION';\r\n var parts = [ ];\r\n for (i = 0; i < primitive.geometries.length; i++){\r\n parts.push(convert(primitive.geometries[i]));\r\n }\r\n return ret + '(' + parts.join(', ') + ')';\r\n default:\r\n throw Error (\"Unknown Type: \" + primitive.type);\r\n }\r\n }\r\n\r\n exports.parser = parser;\r\n exports.Parser = parser.Parser;\r\n exports.parse = parse;\r\n exports.convert = convert;\r\n\r\n return exports;\r\n}));\r\n" |
|
] |
|
} |