Search in sources :

Example 1 with EComp

use of org.elasticsearch.painless.node.EComp in project elasticsearch by elastic.

the class Walker method visitComp.

@Override
public ANode visitComp(CompContext ctx) {
    AExpression left = (AExpression) visit(ctx.expression(0));
    AExpression right = (AExpression) visit(ctx.expression(1));
    final Operation operation;
    if (ctx.LT() != null) {
        operation = Operation.LT;
    } else if (ctx.LTE() != null) {
        operation = Operation.LTE;
    } else if (ctx.GT() != null) {
        operation = Operation.GT;
    } else if (ctx.GTE() != null) {
        operation = Operation.GTE;
    } else if (ctx.EQ() != null) {
        operation = Operation.EQ;
    } else if (ctx.EQR() != null) {
        operation = Operation.EQR;
    } else if (ctx.NE() != null) {
        operation = Operation.NE;
    } else if (ctx.NER() != null) {
        operation = Operation.NER;
    } else {
        throw location(ctx).createError(new IllegalStateException("Illegal tree structure."));
    }
    return new EComp(location(ctx), operation, left, right);
}
Also used : AExpression(org.elasticsearch.painless.node.AExpression) EComp(org.elasticsearch.painless.node.EComp) Operation(org.elasticsearch.painless.Operation)

Aggregations

Operation (org.elasticsearch.painless.Operation)1 AExpression (org.elasticsearch.painless.node.AExpression)1 EComp (org.elasticsearch.painless.node.EComp)1