use of org.whole.lang.grammars.util.TestXmlGrammar in project whole by wholeplatform.
the class ControlQueriesTest method testCall2.
@Test
public void testCall2() {
Grammar grammar = new TestXmlGrammar().create();
IBindingManager bm = BindingManagerFactory.instance.createArguments();
ITemplateManager tm = ControlQueriesTemplateManager.instance();
PathExpression query = (PathExpression) tm.create("call2");
int count = 0;
for (IEntity p : BehaviorUtils.compileAndLazyEvaluate(query, grammar, bm)) {
assertTrue(Matcher.match(GrammarsEntityDescriptorEnum.NonTerminal, p));
count++;
}
assertEquals(16, count);
}
use of org.whole.lang.grammars.util.TestXmlGrammar in project whole by wholeplatform.
the class ControlQueriesTest method testCall5.
@Test
public void testCall5() {
Grammar grammar = new TestXmlGrammar().create();
IBindingManager bm = BindingManagerFactory.instance.createArguments();
ITemplateManager tm = ControlQueriesTemplateManager.instance();
PathExpression query = (PathExpression) tm.create("call5");
int count = 0;
for (IEntity p : BehaviorUtils.compileAndLazyEvaluate(query, grammar, bm)) {
assertTrue(Matcher.match(GrammarsEntityDescriptorEnum.Production, p));
count++;
}
assertEquals(4, count);
}
use of org.whole.lang.grammars.util.TestXmlGrammar in project whole by wholeplatform.
the class PathExpressionsQueriesTest method testOnePredicate.
@Test
public void testOnePredicate() {
ITemplateManager tm = PathExpressionsQueriesTemplateManager.instance();
Grammar g = new TestXmlGrammar().create();
PathExpression pe1 = (PathExpression) tm.create("exactlyOneDefUse");
IBindingManager bm = BindingManagerFactory.instance.createArguments();
IEntityIterator<Production> iterator = BehaviorUtils.<Production>compileAndLazyEvaluate(pe1, g, bm);
Assert.assertTrue(iterator.hasNext());
Production p = iterator.next();
Assert.assertEquals("IName", p.getName().getValue());
Assert.assertFalse(iterator.hasNext());
}
use of org.whole.lang.grammars.util.TestXmlGrammar in project whole by wholeplatform.
the class PathExpressionsQueriesTest method testIndexTest.
@Test
public void testIndexTest() {
ITemplateManager tm = PathExpressionsQueriesTemplateManager.instance();
Grammar g = new TestXmlGrammar().create();
IEntityIterator<Production> pi = BehaviorUtils.compileAndLazyEvaluate((PathExpression) tm.create("path1a"), g);
Assert.assertTrue(pi.hasNext());
Assert.assertSame(g.getPhraseStructure().wGet(2), pi.next());
Assert.assertFalse(pi.hasNext());
pi = BehaviorUtils.compileAndLazyEvaluate((PathExpression) tm.create("path1b"), g);
Assert.assertTrue(pi.hasNext());
Assert.assertSame(g.getPhraseStructure().wGet(2), pi.next());
Assert.assertFalse(pi.hasNext());
pi = BehaviorUtils.compileAndLazyEvaluate((PathExpression) tm.create("path1c"), g);
Assert.assertTrue(pi.hasNext());
Assert.assertSame(g.getPhraseStructure().wGet(3), pi.next());
Assert.assertFalse(pi.hasNext());
pi = BehaviorUtils.compileAndLazyEvaluate((PathExpression) tm.create("path1d"), g);
Assert.assertTrue(pi.hasNext());
Assert.assertSame(g.getPhraseStructure().wGet(3), pi.next());
Assert.assertFalse(pi.hasNext());
}
use of org.whole.lang.grammars.util.TestXmlGrammar in project whole by wholeplatform.
the class PathExpressionsQueriesTest method testPathByNameAndByIndexSteps.
@Test
public void testPathByNameAndByIndexSteps() {
ITemplateManager tm = PathExpressionsQueriesTemplateManager.instance();
Grammar g = new TestXmlGrammar().create();
NonTerminal prologNt = ((Production) ((Production) g.getPhraseStructure().wGet(0)).getRule().wGet(0)).getName();
IEntityIterator<NonTerminal> nti = BehaviorUtils.compileAndLazyEvaluate((PathExpression) tm.create("path1"), g);
Assert.assertTrue(nti.hasNext());
Assert.assertSame(prologNt, nti.next());
nti.reset(g.getPhraseStructure());
Assert.assertFalse(nti.hasNext());
nti.reset(g);
Assert.assertTrue(nti.hasNext());
Assert.assertSame(prologNt, nti.next());
}
Aggregations