javascript parser for curly braces
//parse out one layer of parenthesis
//counts and balances amounts of parenthesis
function carveParen(string)
{
//state of parser
var mode = 0;
var newStr = [];
//parenthesis counters
var left = 0;
var right = 0;
for(var i=0;i<string.length;i++)
{
switch(mode)
{
case 0:
if(string[i] == '{')
{
mode = 1;
}
break;
case 1:
if(left == right)
{
if(string[i] == '}')
{
//finds the end of parenthis and joins inner string
return newStr.join("");
}
else if(string[i] == '{')
{
newStr.push(string[i]);
left++;
}
else newStr.push(string[i]);
}
else
{
if(left != right && i == string.length-1) { console.log("Error: unclosed parenthesis"); return null; }
if(string[i] == '{') left++;
if(string[i] == '}') right++;
newStr.push(string[i]);
}
break;
}
}
}