From 422a1895cad4dcee2a82eba1aad86513268ed0ce Mon Sep 17 00:00:00 2001 From: slomo Date: Fri, 28 Jan 2011 17:21:42 +0100 Subject: url parsing --- src/nodejs/main.js | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) (limited to 'src/nodejs/main.js') diff --git a/src/nodejs/main.js b/src/nodejs/main.js index 4411081..1c01b78 100644 --- a/src/nodejs/main.js +++ b/src/nodejs/main.js @@ -80,6 +80,70 @@ function rowToWay(row){ // #################### MAY be put to different module later + +// #################### my little clutch replacments + + +var urlToXpathObj = function urlToXpathObj(url){ + + // FIXME: more validaiton + // filter stars in keys + // filter no enough arguments + + var parseKeyList = function(string){ + result = /(.+)(:?\|(.+))/.exec(string); + result.shift(); + return result; + } + + var parseBboxList = function(string){ + + result = /(.+)(:?,(.+)){3}/.exec(string): + + if(result.length != 4){ + throw "error"; + } + + result.shift(); + + return { + 'left' : result[0]; + 'bottom' : result[1]; + 'right' : result[2]; + 'top' : result[3]; + } + + var xp = {}; + + result = /\/(*|node|way|relation)(:?\[(.*)=(.*)\])*/.exec(url); + + xp.object=result[1]; + + for(i=2;i<=result.length();i++){ + if(result[i]==="bbox"){ + xp.bbox = parseBboxValues(result[i+1]); + } else { + xp.tag ={}; + xp.tag.keys = parseKeyList(result[i]); + xp.tag.values = parseKeyList(result[i+1]); + } + i++; + } +} + + + + + + + +// ################## end my little clutch replacments + + + + + + var options = [ { short : 'c', long : 'config', -- cgit v1.2.3