Search in sources :

Example 1 with SWhile

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

the class Walker method visitWhile.

@Override
public ANode visitWhile(WhileContext ctx) {
    reserved.peek().setMaxLoopCounter(settings.getMaxLoopCounter());
    AExpression expression = (AExpression) visit(ctx.expression());
    if (ctx.trailer() != null) {
        SBlock block = (SBlock) visit(ctx.trailer());
        return new SWhile(location(ctx), expression, block);
    } else if (ctx.empty() != null) {
        return new SWhile(location(ctx), expression, null);
    } else {
        throw location(ctx).createError(new IllegalStateException("Illegal tree structure."));
    }
}
Also used : SWhile(org.elasticsearch.painless.node.SWhile) AExpression(org.elasticsearch.painless.node.AExpression) SBlock(org.elasticsearch.painless.node.SBlock)

Aggregations

AExpression (org.elasticsearch.painless.node.AExpression)1 SBlock (org.elasticsearch.painless.node.SBlock)1 SWhile (org.elasticsearch.painless.node.SWhile)1