@Override public void exitInitBlock(InitBlockContext ctx) { List<BinaryExpression> inits = new ArrayList<>(); List<VarDeclarationContext> decls = ctx.varDeclaration(); if (decls != null) { try { for (VarDeclarationContext dc : decls) { String name = dc.ID().getText(); ExpressionContext exprCtx = dc.expression(); final Expression value; if (exprCtx == null) { value = new DefaultScalarValue(); } else { value = getAsType(exprCtx, Expression.class); } inits.add(new BinaryExpression(ASSIGN, new Variable(name, JiffleType.D), value)); } } catch (NodeException ex) { messages.error(ctx.getStart(), ex.getError()); } } set(ctx, new GlobalVars(inits)); initBlockContext = ctx; }
@Override public void exitInitBlock(InitBlockContext ctx) { List<BinaryExpression> inits = new ArrayList<>(); List<VarDeclarationContext> decls = ctx.varDeclaration(); if (decls != null) { try { for (VarDeclarationContext dc : decls) { String name = dc.ID().getText(); ExpressionContext exprCtx = dc.expression(); final Expression value; if (exprCtx == null) { value = new DefaultScalarValue(); } else { value = getAsType(exprCtx, Expression.class); } inits.add(new BinaryExpression(ASSIGN, new Variable(name, JiffleType.D), value)); } } catch (NodeException ex) { messages.error(ctx.getStart(), ex.getError()); } } set(ctx, new GlobalVars(inits)); initBlockContext = ctx; }