use of org.eclipse.xtext.example.arithmetics.arithmetics.Module in project xtext-eclipse by eclipse.
the class ArithmeticsScopeProvider method getScope.
@Override
public IScope getScope(EObject context, EReference reference) {
if (reference == ArithmeticsPackage.Literals.IMPORT__MODULE) {
return super.getGlobalScope(context.eResource(), reference);
}
Module module = EcoreUtil2.getContainerOfType(context, Module.class);
IScope result = IScope.NULLSCOPE;
for (Import i : module.getImports()) {
if (!i.getModule().eIsProxy()) {
result = getModuleScope(context, reference, i.getModule(), result);
}
}
result = getModuleScope(context, reference, module, result);
return getDefinitionScope(context, reference, result);
}
use of org.eclipse.xtext.example.arithmetics.arithmetics.Module in project xtext-eclipse by eclipse.
the class CalculatorTest method evaluatesTo.
private void evaluatesTo(CharSequence content, double expected) throws Exception {
Module module = parseHelper.parse("module test " + content);
Statement firstStatement = module.getStatements().get(0);
Iterable<Expression> expressions = Iterables.filter(firstStatement.eContents(), Expression.class);
Expression expression = Iterables.getFirst(expressions, null);
BigDecimal result = calculator.evaluate(expression);
Assert.assertEquals(expected, result.doubleValue(), 0.0001);
}
Aggregations