//string builder that re-concats strings with spaces,
//despite the language being space significant
var StringBuilder = (function(){
function StringBuilder(){
this.smode = false;
}
StringBuilder.prototype.parse = function(arr) {
try {
for(var i=arr.length-1;i>0;i-=1) {
if(this.smode) {
if(arr[i][arr[i].length-1] !== '"' && arr[i][0] !== '"') {
arr[i-1] = arr[i] + " " + arr[i-1];
arr.splice(i, 1);
}
else if(arr[i][arr[i].length-1] !== '"' && arr[i][0] === '"') {
arr[i-1] = arr[i] + " " + arr[i-1];
arr.splice(i, 1);
this.smode = false;
}
else if(/^[^"].+\"$/.test(arr[i])) {
throw err;
}
}
else {
if(arr[i][arr[i].length-1] === '"' && arr[i][0] !== '"') {
this.smode = true;
}
}
}
return arr;
}
catch(err) {
console.log("String Error");
}
};
//checks if parsing needs to begin on argument stack
StringBuilder.prototype.check = function(arr, i) {
if(/^.+\"$/.test(arr[i])) this.parse(arr);
};
return StringBuilder;
})();