use of org.whole.lang.templates.ITemplateManager 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.templates.ITemplateManager in project whole by wholeplatform.
the class PathExpressionsQueriesTest method testVariableJoinTest2.
@Test
public void testVariableJoinTest2() {
ITemplateManager tm = PathExpressionsQueriesTemplateManager.instance();
Grammar g = new QueriesGrammar().create();
PathExpression pe1 = (PathExpression) tm.create("recursiveProduction2");
StringBuilder names = new StringBuilder();
for (Production p : BehaviorUtils.<Production>compileAndLazyEvaluate(pe1, g)) names.append(p.getName().getValue());
Assert.assertEquals("ExpressionPathExpressionStepExpressionPredicate", names.toString());
}
use of org.whole.lang.templates.ITemplateManager 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.templates.ITemplateManager in project whole by wholeplatform.
the class PathExpressionsQueriesTest method testPathWithTuple.
@Category(KnownFailingTests.class)
@Test
public void testPathWithTuple() {
ITemplateManager tm = PathExpressionsQueriesTemplateManager.instance();
IEntityIterator<IEntity> i = DynamicCompilerOperation.compile(tm.create("pathWithTuple"), BindingManagerFactory.instance.createArguments()).getResultIterator();
Assert.assertTrue(i.hasNext());
IEntity e0 = i.next();
Assert.assertFalse(i.hasNext());
}
use of org.whole.lang.templates.ITemplateManager 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