private boolean evaluateExpression(StringBuilder line, Environment env) {
		String args = getArgs(line);
		if (args.charAt(0) == '$') {
	
			Variable v = getVariableAt(env, args, 0);
			
			if (args.length() > v.key.length()) {
				// check for boolean stuff
				int keyEnd = v.key.length();
				if (args.charAt(keyEnd+1) == '=') {
					if (args.charAt(keyEnd+2) == '$') {
						Variable v2 = getVariableAt(env, args, keyEnd+2);
						return args.charAt(keyEnd) == '=' ? v.valueEquals(v2) : !v.valueEquals(v2);
					} else {
						// string literal comparison
						return args.charAt(keyEnd) == '=' ? 
								v.value.equals(args.substring(keyEnd+2)) : 
									!v.value.equals(args.substring(keyEnd+2));
					}
				}
			} 
			
			// just checking if the value is available
			return v.value != null && !v.value.equals("false");
		} else if (args.equals("else"))
			return true;
		
		return false;
	}