use of org.elasticsearch.painless.node.SBlock in project elasticsearch by elastic.
the class Walker method visitIneach.
@Override
public ANode visitIneach(IneachContext ctx) {
reserved.peek().setMaxLoopCounter(settings.getMaxLoopCounter());
String name = ctx.ID().getText();
AExpression expression = (AExpression) visit(ctx.expression());
SBlock block = (SBlock) visit(ctx.trailer());
return new SEach(location(ctx), "def", name, expression, block);
}
use of org.elasticsearch.painless.node.SBlock 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."));
}
}
use of org.elasticsearch.painless.node.SBlock in project elasticsearch by elastic.
the class Walker method visitDo.
@Override
public ANode visitDo(DoContext ctx) {
reserved.peek().setMaxLoopCounter(settings.getMaxLoopCounter());
AExpression expression = (AExpression) visit(ctx.expression());
SBlock block = (SBlock) visit(ctx.block());
return new SDo(location(ctx), block, expression);
}
Aggregations