@Override public void exitConCall(ConCallContext ctx) { List<ExpressionContext> es = ctx.argumentList().expressionList().expression(); Expression[] args = new Expression[es.size()]; for (int i = 0; i < args.length; i++) { args[i] = getAsType(es.get(i), Expression.class); } try { set(ctx, new ConFunction(args)); } catch (NodeException ex) { messages.error(ctx.getStart(), ex.getError()); } }
@Override public void exitConCall(ConCallContext ctx) { List<ExpressionContext> es = ctx.argumentList().expressionList().expression(); Expression[] args = new Expression[es.size()]; for (int i = 0; i < args.length; i++) { args[i] = getAsType(es.get(i), Expression.class); } try { set(ctx, new ConFunction(args)); } catch (NodeException ex) { messages.error(ctx.getStart(), ex.getError()); } }
@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; }
@Override public void exitTernaryExpr(TernaryExprContext ctx) { Expression[] args = { getAsType(ctx.expression(0), Expression.class), getAsType(ctx.expression(1), Expression.class), getAsType(ctx.expression(2), Expression.class) }; try { set(ctx, new ConFunction(args)); } catch (NodeException ex) { messages.error(ctx.getStart(), ex.getError()); } }
@Override public void exitTernaryExpr(TernaryExprContext ctx) { Expression[] args = { getAsType(ctx.expression(0), Expression.class), getAsType(ctx.expression(1), Expression.class), getAsType(ctx.expression(2), Expression.class) }; try { set(ctx, new ConFunction(args)); } catch (NodeException ex) { messages.error(ctx.getStart(), ex.getError()); } }
throw new InternalCompilerException(ex.getError().toString());
throw new InternalCompilerException(ex.getError().toString());
messages.error(ctx.getStart(), ex.getError());
messages.error(ctx.getStart(), ex.getError());