public void visitForLoop(JCForLoop tree) { int limit = code.nextreg; genStats(tree.init, env); genLoop(tree, tree.body, tree.cond, tree.step, true); code.endScopes(limit); } //where
public void visitForLoop(JCForLoop tree) { int limit = code.nextreg; genStats(tree.init, env); genLoop(tree, tree.body, tree.cond, tree.step, true); code.endScopes(limit); } //where
public void visitForLoop(JCForLoop tree) { int limit = code.nextreg; genStats(tree.init, env); genLoop(tree, tree.body, tree.cond, tree.step, true); code.endScopes(limit); } //where
public void visitForLoop(JCForLoop tree) { int limit = code.nextreg; genStats(tree.init, env); genLoop(tree, tree.body, tree.cond, tree.step, true); code.endScopes(limit); } //where
public void visitLetExpr(LetExpr tree) { int limit = code.nextreg; genStats(tree.defs, env); result = genExpr(tree.expr, tree.expr.type).load(); code.endScopes(limit); }
public void visitLetExpr(LetExpr tree) { int limit = code.nextreg; genStats(tree.defs, env); result = genExpr(tree.expr, tree.expr.type).load(); code.endScopes(limit); }
public void visitLetExpr(LetExpr tree) { int limit = code.nextreg; genStats(tree.defs, env); result = genExpr(tree.expr, tree.expr.type).load(); code.endScopes(limit); }
public void visitLetExpr(LetExpr tree) { int limit = code.nextreg; genStats(tree.defs, env); result = genExpr(tree.expr, tree.expr.type).load(); code.endScopes(limit); }
/** Derived visitor method: check whether CharacterRangeTable * should be emitted, if so, put a new entry into CRTable * and call method to generate bytecode. * If not, just call method to generate bytecode. * @see #genStats(List, Env) * * @param trees The list of trees to be visited. * @param env The environment to use. * @param crtFlags The CharacterRangeTable flags * indicating type of the entry. */ public void genStats(List<JCStatement> trees, Env<GenContext> env, int crtFlags) { if (!genCrt) { genStats(trees, env); return; } if (trees.length() == 1) { // mark one statement with the flags genStat(trees.head, env, crtFlags | CRT_STATEMENT); } else { int startpc = code.curPc(); genStats(trees, env); code.crt.put(trees, crtFlags, startpc, code.curPc()); } }
/** Derived visitor method: check whether CharacterRangeTable * should be emitted, if so, put a new entry into CRTable * and call method to generate bytecode. * If not, just call method to generate bytecode. * @see #genStats(List, Env) * * @param trees The list of trees to be visited. * @param env The environment to use. * @param crtFlags The CharacterRangeTable flags * indicating type of the entry. */ public void genStats(List<JCStatement> trees, Env<GenContext> env, int crtFlags) { if (!genCrt) { genStats(trees, env); return; } if (trees.length() == 1) { // mark one statement with the flags genStat(trees.head, env, crtFlags | CRT_STATEMENT); } else { int startpc = code.curPc(); genStats(trees, env); code.crt.put(trees, crtFlags, startpc, code.curPc()); } }
/** Derived visitor method: check whether CharacterRangeTable * should be emitted, if so, put a new entry into CRTable * and call method to generate bytecode. * If not, just call method to generate bytecode. * @see #genStats(List, Env) * * @param trees The list of trees to be visited. * @param env The environment to use. * @param crtFlags The CharacterRangeTable flags * indicating type of the entry. */ public void genStats(List<JCStatement> trees, Env<GenContext> env, int crtFlags) { if (!genCrt) { genStats(trees, env); return; } if (trees.length() == 1) { // mark one statement with the flags genStat(trees.head, env, crtFlags | CRT_STATEMENT); } else { int startpc = code.curCP(); genStats(trees, env); code.crt.put(trees, crtFlags, startpc, code.curCP()); } }
/** Derived visitor method: check whether CharacterRangeTable * should be emitted, if so, put a new entry into CRTable * and call method to generate bytecode. * If not, just call method to generate bytecode. * @see #genStats(List, Env) * * @param trees The list of trees to be visited. * @param env The environment to use. * @param crtFlags The CharacterRangeTable flags * indicating type of the entry. */ public void genStats(List<JCStatement> trees, Env<GenContext> env, int crtFlags) { if (!genCrt) { genStats(trees, env); return; } if (trees.length() == 1) { // mark one statement with the flags genStat(trees.head, env, crtFlags | CRT_STATEMENT); } else { int startpc = code.curCP(); genStats(trees, env); code.crt.put(trees, crtFlags, startpc, code.curCP()); } }
public void visitBlock(JCBlock tree) { int limit = code.nextreg; Env<GenContext> localEnv = env.dup(tree, new GenContext()); genStats(tree.stats, localEnv); // End the scope of all block-local variables in variable info. if (env.tree.tag != JCTree.METHODDEF) { code.statBegin(tree.endpos); code.endScopes(limit); code.pendingStatPos = Position.NOPOS; } }
public void visitBlock(JCBlock tree) { int limit = code.nextreg; Env<GenContext> localEnv = env.dup(tree, new GenContext()); genStats(tree.stats, localEnv); // End the scope of all block-local variables in variable info. if (!env.tree.hasTag(METHODDEF)) { code.statBegin(tree.endpos); code.endScopes(limit); code.pendingStatPos = Position.NOPOS; } }
public void visitBlock(JCBlock tree) { int limit = code.nextreg; Env<GenContext> localEnv = env.dup(tree, new GenContext()); genStats(tree.stats, localEnv); // End the scope of all block-local variables in variable info. if (!env.tree.hasTag(METHODDEF)) { code.statBegin(tree.endpos); code.endScopes(limit); code.pendingStatPos = Position.NOPOS; } }
public void visitBlock(JCBlock tree) { int limit = code.nextreg; Env<GenContext> localEnv = env.dup(tree, new GenContext()); genStats(tree.stats, localEnv); // End the scope of all block-local variables in variable info. if (env.tree.getTag() != JCTree.METHODDEF) { code.statBegin(tree.endpos); code.endScopes(limit); code.pendingStatPos = Position.NOPOS; } }
genStat(body, loopEnv, CRT_STATEMENT | CRT_FLOW_TARGET); code.resolve(loopEnv.info.cont); genStats(step, loopEnv); code.resolve(code.branch(goto_), startpc); code.resolve(loopDone); genStat(body, loopEnv, CRT_STATEMENT | CRT_FLOW_TARGET); code.resolve(loopEnv.info.cont); genStats(step, loopEnv); CondItem c; if (cond != null) {
genStat(body, loopEnv, CRT_STATEMENT | CRT_FLOW_TARGET); code.resolve(loopEnv.info.cont); genStats(step, loopEnv); code.resolve(code.branch(goto_), startpc); code.resolve(loopDone); genStat(body, loopEnv, CRT_STATEMENT | CRT_FLOW_TARGET); code.resolve(loopEnv.info.cont); genStats(step, loopEnv); CondItem c; if (cond != null) {
genStat(body, loopEnv, CRT_STATEMENT | CRT_FLOW_TARGET); code.resolve(loopEnv.info.cont); genStats(step, loopEnv); code.resolve(code.branch(goto_), startpc); code.resolve(loopDone); genStat(body, loopEnv, CRT_STATEMENT | CRT_FLOW_TARGET); code.resolve(loopEnv.info.cont); genStats(step, loopEnv); CondItem c; if (cond != null) {