@Override public Object visitFpackageswitch(SmaliParser.FpackageswitchContext ctx) { int start = parseInt(ctx.start.getText()); List<TerminalNode> ts = ctx.LABEL(); DexLabel labels[] = new DexLabel[ts.size()]; for (int i = 0; i < ts.size(); i++) { labels[i] = getLabel(ts.get(i).getSymbol().getText()); } scv.dPackedSwitch(start, labels); return null; }
@Override public Object visitFspareswitch(SmaliParser.FspareswitchContext ctx) { List<TerminalNode> ints = ctx.INT(); List<TerminalNode> ts = ctx.LABEL(); int cases[] = new int[ts.size()]; DexLabel labels[] = new DexLabel[ts.size()]; for (int i = 0; i < ts.size(); i++) { cases[i] = parseInt(ints.get(i).getSymbol().getText()); labels[i] = getLabel(ts.get(i).getSymbol().getText()); } scv.dSparseSwitch(cases, labels); return null; }
@Override public Object visitF2t(SmaliParser.F2tContext ctx) { scv.visitJumpStmt(getOp(ctx.op), m.pareReg(ctx.r1.getText()), m.pareReg(ctx.r2.getText()), getLabel(ctx.label.getText())); return null; }
@Override public Object visitSLabel(SmaliParser.SLabelContext ctx) { scv.visitLabel(getLabel(ctx.label.getText())); return null; }
@Override public Object visitF1t(SmaliParser.F1tContext ctx) { scv.visitJumpStmt(getOp(ctx.op), m.pareReg(ctx.r1.getText()), 0, getLabel(ctx.label.getText())); return null; }
@Override public Object visitF31t(SmaliParser.F31tContext ctx) { scv.visitF31tStmt(getOp(ctx.op), m.pareReg(ctx.r1.getText()), getLabel(ctx.label.getText())); return null; }
@Override public Object visitF0t(SmaliParser.F0tContext ctx) { scv.visitJumpStmt(getOp(ctx.op), 0, 0, getLabel(ctx.target.getText())); return null; }