@Test
public void t00_singleTagExpression() throws Exception {

    String e1 = "tagA";
    assertEquals("tagA", parser.parse(e1));
    assertEquals("[tagA]", getTokens(parser.parse(e1)).toString());
    String e2 = "not tagA";
    assertEquals("not tagA", parser.parse(e2));
    assertEquals("[not, tagA]", getTokens(parser.parse(e2)).toString());
    String e3 = "tagA  =      'abc'";
    assertEquals("tagA = 'abc'", parser.parse(e3));
    assertEquals("[tagA, =, 'abc']", getTokens(parser.parse(e3)).toString());
    String e4 = " tagA !=   'abc'";
    assertEquals("tagA != 'abc'", parser.parse(e4));
    assertEquals("[tagA, !=, 'abc']", getTokens(parser.parse(e4)).toString());
    String e5 = "tagA IN ['abc', 'def', 'ghi']";
    assertEquals("tagA in ['abc','def','ghi']", parser.parse(e5));
    assertEquals("[tagA, in, ['abc','def','ghi']]", getTokens(parser.parse(e5)).toString());
    String e5s1 = "tagA IN ['abc','def','ghi']";
    assertEquals("tagA in ['abc','def','ghi']", parser.parse(e5s1));
    assertEquals("[tagA, in, ['abc','def','ghi']]", getTokens(parser.parse(e5s1)).toString());
    String e6 = "tagA NOT IN ['abc', 'def', 'ghi']";
    assertEquals("tagA not in ['abc','def','ghi']", parser.parse(e6));
    assertEquals("[tagA, not, in, ['abc','def','ghi']]", getTokens(parser.parse(e6)).toString());
    String e7 = "tagA  =      '*'";
    assertEquals("tagA = '*'", parser.parse(e7));
    assertEquals("[tagA, =, '*']", getTokens(parser.parse(e7)).toString());
    String e8 = "tagA  =      abc";
    assertEquals("tagA = abc", parser.parse(e8));
    assertEquals("[tagA, =, abc]", getTokens(parser.parse(e8)).toString());
    String e9 = " tagA !=   abc";
    assertEquals("tagA != abc", parser.parse(e9));
    assertEquals("[tagA, !=, abc]", getTokens(parser.parse(e9)).toString());
    String e10 = "tagA IN [abc, def, ghi]";
    assertEquals("tagA in [abc,def,ghi]", parser.parse(e10));
    assertEquals("[tagA, in, [abc,def,ghi]]", getTokens(parser.parse(e10)).toString());
    String e11 = "tagA NOT IN [abc, def, ghi]";
    assertEquals("tagA not in [abc,def,ghi]", parser.parse(e11));
    assertEquals("[tagA, not, in, [abc,def,ghi]]", getTokens(parser.parse(e11)).toString());
    String e12 = "tagA  =      *";
    try {
        parser.parse(e12);
        fail("* should be used with single quotes");
    } catch (Exception e) {
        // Expected
    }
    String e13 = "tagA-01";
    assertEquals("tagA-01", parser.parse(e13));
    assertEquals("[tagA-01]", getTokens(parser.parse(e13)).toString());
}