use of org.eclipse.xtext.example.arithmetics.arithmetics.Definition in project xtext-eclipse by eclipse.
the class ArithmeticsSemanticSequencer method sequence.
@Override
public void sequence(ISerializationContext context, EObject semanticObject) {
EPackage epackage = semanticObject.eClass().getEPackage();
ParserRule rule = context.getParserRule();
Action action = context.getAssignedAction();
Set<Parameter> parameters = context.getEnabledBooleanParameters();
if (epackage == ArithmeticsPackage.eINSTANCE)
switch(semanticObject.eClass().getClassifierID()) {
case ArithmeticsPackage.DECLARED_PARAMETER:
sequence_DeclaredParameter(context, (DeclaredParameter) semanticObject);
return;
case ArithmeticsPackage.DEFINITION:
sequence_Definition(context, (Definition) semanticObject);
return;
case ArithmeticsPackage.DIV:
sequence_Multiplication(context, (Div) semanticObject);
return;
case ArithmeticsPackage.EVALUATION:
sequence_Evaluation(context, (Evaluation) semanticObject);
return;
case ArithmeticsPackage.FUNCTION_CALL:
sequence_PrimaryExpression(context, (FunctionCall) semanticObject);
return;
case ArithmeticsPackage.IMPORT:
sequence_Import(context, (Import) semanticObject);
return;
case ArithmeticsPackage.MINUS:
sequence_Addition(context, (Minus) semanticObject);
return;
case ArithmeticsPackage.MODULE:
sequence_Module(context, (org.eclipse.xtext.example.arithmetics.arithmetics.Module) semanticObject);
return;
case ArithmeticsPackage.MULTI:
sequence_Multiplication(context, (Multi) semanticObject);
return;
case ArithmeticsPackage.NUMBER_LITERAL:
sequence_PrimaryExpression(context, (NumberLiteral) semanticObject);
return;
case ArithmeticsPackage.PLUS:
sequence_Addition(context, (Plus) semanticObject);
return;
}
if (errorAcceptor != null)
errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
}
use of org.eclipse.xtext.example.arithmetics.arithmetics.Definition in project xtext-eclipse by eclipse.
the class Calculator method _internalEvaluate.
/**
* @param values the currently known values by name
*/
protected BigDecimal _internalEvaluate(final FunctionCall e, final ImmutableMap<String, BigDecimal> values) {
AbstractDefinition _func = e.getFunc();
if ((_func instanceof DeclaredParameter)) {
return values.get(e.getFunc().getName());
}
AbstractDefinition _func_1 = e.getFunc();
final AbstractDefinition d = _func_1;
boolean _matched = false;
if (d instanceof Definition) {
_matched = true;
HashMap<String, BigDecimal> params = Maps.<String, BigDecimal>newHashMap();
for (int i = 0; (i < e.getArgs().size()); i++) {
{
DeclaredParameter declaredParameter = ((Definition) d).getArgs().get(i);
BigDecimal evaluate = this.evaluate(e.getArgs().get(i), values);
params.put(declaredParameter.getName(), evaluate);
}
}
return this.evaluate(((Definition) d).getExpr(), ImmutableMap.<String, BigDecimal>copyOf(params));
}
return null;
}
Aggregations