use of org.whole.lang.grammars.model.Production in project whole by wholeplatform.
the class PathExpressionsQueriesTest method testVariableJoinTest5.
@Test
public void testVariableJoinTest5() {
ITemplateManager tm = PathExpressionsQueriesTemplateManager.instance();
Grammar g = new QueriesGrammar().create();
PathExpression pe1 = (PathExpression) tm.create("recursiveProduction5");
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.grammars.model.Production in project whole by wholeplatform.
the class PathExpressionsQueriesTest method testProduct1.
@Test
public void testProduct1() {
ITemplateManager tm = PathExpressionsQueriesTemplateManager.instance();
Grammar g = new TestXmlGrammar().create();
PathExpression pe1 = (PathExpression) tm.create("testProduct1");
IBindingManager bm = BindingManagerFactory.instance.createArguments();
int count = 0;
for (IEntity tuple : BehaviorUtils.compileAndLazyEvaluate(pe1, g, bm)) {
String vname = ((Production) bm.wGet("pp")).getName().getValue() + "x" + ((Production) bm.wGet("lp")).getName().getValue();
String tname = ((Production) tuple.wGet(0)).getName().getValue() + "x" + ((Production) tuple.wGet(1)).getName().getValue();
Assert.assertEquals(vname, tname);
count++;
}
Assert.assertEquals(g.getPhraseStructure().wSize() * g.getLexicalStructure().wSize(), count);
}
use of org.whole.lang.grammars.model.Production in project whole by wholeplatform.
the class PathExpressionsQueriesTest method testRebindVariable.
@Test
public void testRebindVariable() {
ITemplateManager tm = PathExpressionsQueriesTemplateManager.instance();
Grammar g = new TestXmlGrammar().create();
IBindingManager bm = BindingManagerFactory.instance.createArguments();
bm.wDef("pname", GrammarsEntityFactory.instance.createNonTerminal("Element"));
int count = 0;
for (Production p : BehaviorUtils.<Production>compileAndLazyEvaluate((PathExpression) tm.create("findProduction"), g, bm)) count++;
Assert.assertEquals(1, count);
count = 0;
for (Production p : BehaviorUtils.<Production>compileAndLazyEvaluate((PathExpression) tm.create("findProduction"), g)) count++;
Assert.assertEquals(6, count);
}
use of org.whole.lang.grammars.model.Production in project whole by wholeplatform.
the class PathExpressionsQueriesTest method testEveryPredicate.
@Test
public void testEveryPredicate() {
ITemplateManager tm = PathExpressionsQueriesTemplateManager.instance();
Grammar g = new QueriesGrammar().create();
PathExpression pe1 = (PathExpression) tm.create("unusedProduction");
IEntityIterator<Production> iterator = BehaviorUtils.<Production>compileAndLazyEvaluate(pe1, g);
Assert.assertTrue(iterator.hasNext());
Production p = iterator.next();
Assert.assertEquals("Statement", p.getName().getValue());
Assert.assertTrue(iterator.hasNext());
p = iterator.next();
Assert.assertEquals("Declaration", p.getName().getValue());
Assert.assertTrue(iterator.hasNext());
p = iterator.next();
Assert.assertEquals("Index", p.getName().getValue());
Assert.assertFalse(iterator.hasNext());
}
use of org.whole.lang.grammars.model.Production in project whole by wholeplatform.
the class PathExpressionsQueriesTest method testBindingOfSelfIndex.
@Category(KnownFailingTests.class)
@Test
public void testBindingOfSelfIndex() {
ITemplateManager tm = PathExpressionsQueriesTemplateManager.instance();
Grammar g = new TestXmlGrammar().create();
int count = 0;
for (Production p : BehaviorUtils.<Production>compileAndLazyEvaluate((PathExpression) tm.create("path6"), g)) {
Assert.assertTrue(g.getPhraseStructure().wIndexOf(p) >= 2);
count++;
}
Assert.assertEquals(2, count);
}
Aggregations