Пример #1
0
 /**
  * 将函数对象放入语句栈中,提供给LineFunction与BlockFunction使用。
  *
  * @see com.ruixus.smarty4j.statement.LineFunction
  * @see com.ruixus.smarty4j.statement.BlockFunction
  * @param mv ASM方法操作者
  * @param local ASM语句栈的局部变量起始位置
  * @param index 函数在Template中保存的位置
  */
 protected String parseNode(MethodVisitorProxy mv, int local, int index) {
   String name = this.getClass().getName().replace('.', '/');
   mv.visitVarInsn(ALOAD, TEMPLATE);
   mv.visitLdcInsn(index);
   mv.visitMethodInsn(INVOKEVIRTUAL, Template.NAME, "getNode", "(I)Ljava/lang/Object;");
   mv.visitTypeInsn(CHECKCAST, name);
   return name;
 }