use of org.eclipse.xtext.example.arithmetics.arithmetics.FunctionCall 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.FunctionCall in project xtext-eclipse by eclipse.
the class ArithmeticsValidator method checkNormalizable.
@Check
public void checkNormalizable(Expression expr) {
if (expr instanceof NumberLiteral || expr instanceof FunctionCall) {
return;
}
Evaluation eval = EcoreUtil2.getContainerOfType(expr, Evaluation.class);
if (eval != null) {
return;
}
TreeIterator<EObject> contents = expr.eAllContents();
while (contents.hasNext()) {
EObject next = contents.next();
if ((next instanceof FunctionCall)) {
return;
}
}
BigDecimal decimal = calculator.evaluate(expr);
if (decimal.toString().length() <= 8) {
warning("Expression could be normalized to constant \'" + decimal + "\'", null, ValidationMessageAcceptor.INSIGNIFICANT_INDEX, ArithmeticsValidator.NORMALIZABLE, decimal.toString());
}
}
Aggregations