anchor.diff:  		super(tokens, new RecognizerSharedState());
   		
   		clz = clsName.replace('.', '/');
  -		cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
  -		cw.visit(Opcodes.V1_6, Opcodes.ACC_PUBLIC, clz, null, "java/lang/Object", new String[] {"com/mebigfatguy/pixelle/PixelleExpr"}); 
  +		cw = new ClassWriter(ClassWriter.COMPUTE_MAXS|ClassWriter.COMPUTE_FRAMES);
  +		cw.visit(Opcodes.V1_7, Opcodes.ACC_PUBLIC, clz, null, "java/lang/Object", new String[] {"com/mebigfatguy/pixelle/PixelleExpr"}); 
   
   		cw.visitField(Opcodes.ACC_PRIVATE, "width", "I", null, Integer.valueOf(0));
   		cw.visitField(Opcodes.ACC_PRIVATE, "height", "I", null, Integer.valueOf(0));
  
positive.code:         mv.visitMethodInsn(Opcodes.INVOKESTATIC, "java/lang/Math", "round", "(D)J", false);
          mv.visitInsn(Opcodes.L2I);
          mv.visitVarInsn(Opcodes.ISTORE, 11);	
          mv.visitFrame(Opcodes.F_APPEND, 3, new Object[] { Opcodes.INTEGER, Opcodes.INTEGER, Opcodes.INTEGER }, 0, null);	
  		mv.visitInsn(Opcodes.DCONST_0);
  		mv.visitVarInsn(Opcodes.DSTORE, 12);
  		mv.visitFrame(Opcodes.F_APPEND, 1, new Object[] { Opcodes.DOUBLE }, 0, null);	
  		mv.visitVarInsn(Opcodes.ILOAD, 10);
  		mv.visitVarInsn(Opcodes.ILOAD, 11);
  		mv.visitInsn(Opcodes.IADD);
  
negative.code:         mv.visitJumpInsn(Opcodes.IF_ICMPLE, xBranchTop); 
          mv.visitIincInsn(16, 1);
          mv.visitLabel(yBranchBottom);
          mv.visitVarInsn(Opcodes.ILOAD, 16);
          mv.visitVarInsn(Opcodes.ILOAD, 14);
          mv.visitJumpInsn(Opcodes.IF_ICMPLE, yBranchTop);
  