use of org.whole.lang.templates.ITemplateManager 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.templates.ITemplateManager 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.templates.ITemplateManager in project whole by wholeplatform.
the class PathExpressionsQueriesTest method testSingleVariableTestInPathLastStep.
@Test
public void testSingleVariableTestInPathLastStep() {
ITemplateManager tm = PathExpressionsQueriesTemplateManager.instance();
Grammar g = new TestXmlGrammar().create();
PathExpression pe1 = (PathExpression) tm.create("findNonTerminalOccurrences");
PathExpression pe2 = (PathExpression) tm.create("bindNonTerminalOccurrences");
IBindingManager bm = BindingManagerFactory.instance.createArguments();
IEntityIterator<NonTerminal> i1 = BehaviorUtils.<NonTerminal>compileAndLazyEvaluate(pe1, g);
for (NonTerminal nt : BehaviorUtils.<NonTerminal>compileAndLazyEvaluate(pe2, g, bm)) {
Assert.assertSame(nt, i1.next());
Assert.assertEquals(nt.getValue(), bm.wStringValue("nt"));
}
Assert.assertFalse(i1.hasNext());
}
use of org.whole.lang.templates.ITemplateManager 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);
}
use of org.whole.lang.templates.ITemplateManager in project whole by wholeplatform.
the class RewriteQueriesTest method testInsert1.
@Test
public void testInsert1() {
Model model = new ModelsModel().create();
ModelDeclarations declarations = model.getDeclarations();
ITemplateManager tm = RewriteQueriesTemplateManager.instance();
PathExpression query = (PathExpression) tm.create("insert1");
for (IEntity entity : BehaviorUtils.compileAndLazyEvaluate(query, model)) assertTrue(Matcher.match(ModelsEntityDescriptorEnum.Feature, entity));
for (int i = 0; i < declarations.wSize(); i++) {
IEntity decl = declarations.wGet(i);
if (Matcher.match(ModelsEntityDescriptorEnum.SimpleEntity, decl)) {
Features features = ((SimpleEntity) decl).getFeatures();
int size = features.wSize();
assertTrue(size >= 2);
String name1 = ((Feature) features.wGet(size - 2)).getName().getValue();
assertEquals("n1", name1);
String name2 = ((Feature) features.wGet(size - 1)).getName().getValue();
assertEquals("n2", name2);
}
}
}
Aggregations