private static String Condition(Environment e) throws Exception {
        e.Check("{", "Invalid beginning of a 'Condition' construct");

        e.SkipEmpty();
        String condA = ExpressionList(e);

        e.SkipEmpty();
        String condB = null;
        if (e.Peek() == '=') {
            e.Advance();
            e.SkipEmpty();
            condB = ExpressionList(e);
        }

        e.SkipEmpty();
        e.Check("?", "Missing condition delimiter '?'");

        e.SkipEmpty();
        String trueVal = ExpressionList(e);

        e.SkipEmpty();
        e.Check(":", "Missing true/false delimiter ':'");

        e.SkipEmpty();
        String falseVal = ExpressionList(e);

        e.Check("}", "Condition is missing closure character }");

        //System.out.println("Condition A='" + condA + "' B='" + condB + "' TrueVal='" + trueVal + "' FalseVal='" + falseVal + "'" );


        if ((!condA.isEmpty() && condB == null) || condA.equals(condB)) {
            return trueVal;
        } else {
            return falseVal;
        }
    }