@Override public void exitScript(ScriptContext ctx) { StatementList stmts = getAsType(ctx.body(), StatementList.class); GlobalVars globals = initBlockContext == null ? new GlobalVars() : getAsType(initBlockContext, GlobalVars.class); GlobalScope globalScope = (GlobalScope) scopes.get(ctx); Set<String> sourceImages = globalScope.getByType(Symbol.Type.SOURCE_IMAGE); Set<String> destImages = globalScope.getByType(Symbol.Type.DEST_IMAGE); this.script = new Script(options, sourceImages, destImages, globals, stmts); set(ctx, this.script); }
globals.writeFields(w); w.newLine(); w.inc(); w.indent().append("super(new String[] {"); globals.listNames(w); w.append("});").newLine(); w.dec(); globals.write(w); w.line("_imageScopeVarsInitialized = true;"); w.dec();
globals.writeFields(w); w.newLine(); w.inc(); w.indent().append("super(new String[] {"); globals.listNames(w); w.append("});").newLine(); w.dec(); globals.write(w); w.line("_imageScopeVarsInitialized = true;"); w.dec();
@Override public void exitScript(ScriptContext ctx) { StatementList stmts = getAsType(ctx.body(), StatementList.class); GlobalVars globals = initBlockContext == null ? new GlobalVars() : getAsType(initBlockContext, GlobalVars.class); GlobalScope globalScope = (GlobalScope) scopes.get(ctx); Set<String> sourceImages = globalScope.getByType(Symbol.Type.SOURCE_IMAGE); Set<String> destImages = globalScope.getByType(Symbol.Type.DEST_IMAGE); this.script = new Script(options, sourceImages, destImages, globals, stmts); set(ctx, this.script); }
@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; }