private BlankExpression evalExpression(String rawExpression) throws Exception
	{
		BlankVar var; // variavel auxiliar para guardar uma BlankVar
		String[] analysis = rawExpression.split(operationIdentifier.toString());

		// Identifica a operação realizada
		Matcher operationMatcher = operationIdentifier.matcher(rawExpression);
		operationMatcher.find();
		String op   = operationMatcher.toMatchResult().group().trim();
		String val1 = analysis[0].trim();
		String val2 = analysis[1].trim();

		// Pega o primeiro valor
		Matcher paramMatcher = paramIdentifier.matcher(val1);
		if (paramMatcher.find()) {
			String opValue1 = paramMatcher.toMatchResult().group();

			if (mainScope.hasVariable(opValue1) >= 0) { // verifica se é uma variavel
				var = mainScope.getVariable(opValue1);
				val1 = var.getValue();
			} else {
				val1 = opValue1;
			}
		}

		// Encontra o segundo valor
		paramMatcher = paramIdentifier.matcher(val2);
		if (paramMatcher.find()) {
			String opValue2 = paramMatcher.toMatchResult().group();

			if (mainScope.hasVariable(opValue2) >= 0) { // verifica se é uma variavel
				var = mainScope.getVariable(opValue2);
				val2 = var.getValue();
			} else {
				val2 = opValue2;
			}
		}

		// Cria um novo calculo de expressão
		return (new BlankExpression(val1, val2, op));
	}