@Test
public void test03() {

    List<String> expectedResult = new ArrayList<String>();
    expectedResult.add("a");
    expectedResult.add("b");
    expectedResult.add("cd");
    expectedResult.add("ef");
    final List<String> result = new ArrayList<>();
    new RangeExpressionParser("['a',\"b\",\"cd\",'ef']").visit(new RangeExpressionItemVisitor() {
        @Override
        public void visit(Object val) {
            result.add((String) val);
        }
    });
    Assert.equals(result, expectedResult);
    //
    expectedResult = new ArrayList<String>();
    for (int i = 'a'; i <= 'z'; i++) {
        expectedResult.add(String.valueOf((char) i));
    }
    final List<String> result0 = new ArrayList<>();
    new RangeExpressionParser("['a'..'z']").visit(new RangeExpressionItemVisitor() {
        @Override
        public void visit(Object val) {
            result0.add((String) val);
        }
    });
    Assert.equals(result0, expectedResult);
    //
    expectedResult = new ArrayList<String>();
    for (int i = 'z'; i >= 'a'; i--) {
        expectedResult.add(String.valueOf((char) i));
    }
    final List<String> result1 = new ArrayList<>();
    new RangeExpressionParser("[\"z\"..'a']").visit(new RangeExpressionItemVisitor() {
        @Override
        public void visit(Object val) {
            result1.add((String) val);
        }
    });
    Assert.equals(result1, expectedResult);
    //
    expectedResult = new ArrayList<String>();
    for (int i = 'A'; i <= 'Z'; i++) {
        expectedResult.add(String.valueOf((char) i));
    }
    final List<String> result2 = new ArrayList<>();
    new RangeExpressionParser("['A'..\"Z\"]").visit(new RangeExpressionItemVisitor() {
        @Override
        public void visit(Object val) {
            result2.add((String) val);
        }
    });
    Assert.equals(result2, expectedResult);
    expectedResult = new ArrayList<String>();
    for (int i = 'Z'; i >= 'A'; i--) {
        expectedResult.add(String.valueOf((char) i));
    }
    final List<String> result3 = new ArrayList<>();
    new RangeExpressionParser("[\"Z\"..\"A\"]").visit(new RangeExpressionItemVisitor() {
        @Override
        public void visit(Object val) {
            result3.add((String) val);
        }
    });
    Assert.equals(result3, expectedResult);
}