var dsl = createObject("component", "reporting_dsl.querydsl").init("beb");
var result = dsl.parse("cat");
assertEquals("beb", result.field);
var result = dsl.parse("cat");
assertTrue(isInstanceOf(result, "reporting_dsl.simplecriterion"));
assertEquals("keyword", result.field);
assertEquals("cat", result.value);
assertFalse(result.negated);
result = dsl.parse("'my keyword'");
assertTrue(isInstanceOf(result, "reporting_dsl.simplecriterion"));
assertEquals("keyword", result.field);
assertEquals("my keyword", result.value);
assertFalse(result.negated);
result = dsl.parse('"my keyword"');
assertTrue(isInstanceOf(result, "reporting_dsl.simplecriterion"));
assertEquals("keyword", result.field);
assertEquals("my keyword", result.value);
assertFalse(result.negated);
var result = dsl.parse("'cat:dog'");
assertTrue(isInstanceOf(result, "reporting_dsl.simplecriterion"));
assertEquals("keyword", result.field);
assertEquals("cat:dog", result.value);
assertFalse(result.negated);
result = dsl.parse("tag:'cat:dog'");
assertTrue(isInstanceOf(result, "reporting_dsl.simplecriterion"));
assertEquals("tag", result.field);
assertEquals("cat:dog", result.value);
assertFalse(result.negated);
var result = dsl.parse("tag:cat");
assertTrue(isInstanceOf(result, "reporting_dsl.simplecriterion"));
assertEquals("tag", result.field);
assertEquals("cat", result.value);
assertFalse(result.negated);
result = dsl.parse("tag:'my tag'");
assertTrue(isInstanceOf(result, "reporting_dsl.simplecriterion"));
assertEquals("tag", result.field);
assertEquals("my tag", result.value);
assertFalse(result.negated);
result = dsl.parse('tag:"my tag"');
assertTrue(isInstanceOf(result, "reporting_dsl.simplecriterion"));
assertEquals("tag", result.field);
assertEquals("my tag", result.value);
assertFalse(result.negated);
var result = dsl.parse("-cat");
assertTrue(isInstanceOf(result, "reporting_dsl.simplecriterion"));
assertEquals("keyword", result.field);
assertEquals("cat", result.value);
assertTrue(result.negated);
result = dsl.parse("-'my keyword'");
assertTrue(isInstanceOf(result, "reporting_dsl.simplecriterion"));
assertEquals("keyword", result.field);
assertEquals("my keyword", result.value);
assertTrue(result.negated);
result = dsl.parse('-"my keyword"');
assertTrue(isInstanceOf(result, "reporting_dsl.simplecriterion"));
assertEquals("keyword", result.field);
assertEquals("my keyword", result.value);
assertTrue(result.negated);
var result = dsl.parse("!tag:cat");
assertTrue(isInstanceOf(result, "reporting_dsl.simplecriterion"));
assertEquals("tag", result.field);
assertEquals("cat", result.value);
assertTrue(result.negated);
result = dsl.parse("!tag:'my tag'");
assertTrue(isInstanceOf(result, "reporting_dsl.simplecriterion"));
assertEquals("tag", result.field);
assertEquals("my tag", result.value);
assertTrue(result.negated);
result = dsl.parse('!tag:"my tag"');
assertTrue(isInstanceOf(result, "reporting_dsl.simplecriterion"));
assertEquals("tag", result.field);
assertEquals("my tag", result.value);
assertTrue(result.negated);
var result = dsl.parse("cat dog");
assertTrue(isInstanceOf(result, "reporting_dsl.andcriterion"));
assertTrue(isInstanceOf(result.left, "reporting_dsl.simplecriterion"));
assertTrue(isInstanceOf(result.right, "reporting_dsl.simplecriterion"));
assertEquals("cat", result.left.value);
assertEquals("dog", result.right.value);
var result = dsl.parse("cat dog bird");
assertTrue(isInstanceOf(result, "reporting_dsl.andcriterion"));
assertTrue(isInstanceOf(result.left, "reporting_dsl.simplecriterion"));
assertTrue(isInstanceOf(result.right, "reporting_dsl.andcriterion"));
assertTrue(isInstanceOf(result.right.left, "reporting_dsl.simplecriterion"));
assertTrue(isInstanceOf(result.right.right, "reporting_dsl.simplecriterion"));
assertEquals("cat", result.left.value);
assertEquals("dog", result.right.left.value);
assertEquals("bird", result.right.right.value);
var result = dsl.parse("cat OR dog");
assertTrue(isInstanceOf(result, "reporting_dsl.orcriterion"));
assertTrue(isInstanceOf(result.left, "reporting_dsl.simplecriterion"));
assertTrue(isInstanceOf(result.right, "reporting_dsl.simplecriterion"));
assertEquals("cat", result.left.value);
assertEquals("dog", result.right.value);
var result = dsl.parse("cat dog OR bird");
assertTrue(isInstanceOf(result, "reporting_dsl.andcriterion"));
assertTrue(isInstanceOf(result.left, "reporting_dsl.simplecriterion"));
assertTrue(isInstanceOf(result.right, "reporting_dsl.orcriterion"));
assertTrue(isInstanceOf(result.right.left, "reporting_dsl.simplecriterion"));
assertTrue(isInstanceOf(result.right.right, "reporting_dsl.simplecriterion"));
assertEquals("cat", result.left.value);
assertEquals("dog", result.right.left.value);
assertEquals("bird", result.right.right.value);
var result = dsl.parse("cat OR dog bird");
assertTrue(isInstanceOf(result, "reporting_dsl.andcriterion"));
assertTrue(isInstanceOf(result.left, "reporting_dsl.orcriterion"));
assertTrue(isInstanceOf(result.left.left, "reporting_dsl.simplecriterion"));
assertTrue(isInstanceOf(result.left.right, "reporting_dsl.simplecriterion"));
assertTrue(isInstanceOf(result.right, "reporting_dsl.simplecriterion"));
assertEquals("cat", result.left.left.value);
assertEquals("dog", result.left.right.value);
assertEquals("bird", result.right.value);
var result = dsl.parse("(cat dog) OR bird");
assertTrue(isInstanceOf(result, "reporting_dsl.orcriterion"));
assertTrue(isInstanceOf(result.left, "reporting_dsl.andcriterion"));
assertTrue(isInstanceOf(result.left.left, "reporting_dsl.simplecriterion"));
assertTrue(isInstanceOf(result.left.right, "reporting_dsl.simplecriterion"));
assertTrue(isInstanceOf(result.right, "reporting_dsl.simplecriterion"));
assertEquals("cat", result.left.left.value);
assertEquals("dog", result.left.right.value);
assertEquals("bird", result.right.value);