private static String[] parseArgumentOptions(String variant)
	{
		//Will be converted to an array and returned at the end
		List<String> options = new ArrayList<String>();
		
		//This is one of the options that is added to the options list when it is completed.
		StringBuilder wordInTheMaking = new StringBuilder();
		
		char[] chars = variant.toCharArray();
		int layer = 0;
		for(int ii = 0; ii < chars.length; ii++)
		{
			char c = chars[ii];
			switch(c)
			{
			case '{':
				if(layer != 0)
				{
					wordInTheMaking.append(c);
				}
				layer++;
				break;
			case '}':
				layer--;
				if(layer == 0)
				{
					ii = chars.length;
					options.add(wordInTheMaking.toString());
				}
				else
				{
					wordInTheMaking.append(c);
				}
				break;
			case '|':
				if(layer == 1)
				{
					//Let's not add an empty string
					if(wordInTheMaking.length() > 0)
					{
						options.add(wordInTheMaking.toString());
					}
					//clear the buffer
					wordInTheMaking.setLength(0);
				}
				else
				{
					wordInTheMaking.append(c);
				}
				break;
			default:
				wordInTheMaking.append(c);
			}
		}
		
		return options.toArray(new String[options.size()]);
	}