《Vfp编译软件(Vfp Compiler)》源代码预处理技术之三:

3、/VCMOVE=ON 移动语句

原代码:

x1=1
x2=2
x3=3
x4=4
x5=5
x6=6
x7=7
x8=8
x9=9
x10=10
x11=11
x12=12
x13=13
x14=14
x15=15
x16=16
x17=17
x18=18
x19=19
x20=20
x21=21
x22=22
x23=23
x24=24


“移动语句”后代码:

x1=1
=[GOTO FOXRUN_GOTO_LABEL_A_A_START]
=[FOXRUN_GOTO_LABEL_A_A_END:]
=[GOTO FOXRUN_GOTO_LABEL_A_B_START]
=[FOXRUN_GOTO_LABEL_A_B_END:]
=[GOTO FOXRUN_GOTO_LABEL_A_A_SKIP]
DO CASE
CASE .F.
=[GOTO FOXRUN_GOTO_LABEL_A_H_SKIP]
DO CASE
CASE .F.#.F.
=[FOXRUN_GOTO_LABEL_A_K_START:]
x13=13
=[GOTO FOXRUN_GOTO_LABEL_A_K_END]
ENDCASE
=[FOXRUN_GOTO_LABEL_A_H_START:]
DO CASE
CASE .T.
x10=10
ENDCASE
=[GOTO FOXRUN_GOTO_LABEL_A_H_END]
=[FOXRUN_GOTO_LABEL_A_H_SKIP:]
=[FOXRUN_GOTO_LABEL_A_G_START:]
x9=9
=[GOTO FOXRUN_GOTO_LABEL_A_G_END]
ENDCASE
=[FOXRUN_GOTO_LABEL_A_D_START:]
IF .F.=.F.
x6=6
ENDIF
=[GOTO FOXRUN_GOTO_LABEL_A_D_END]
IF .T.#.T.
=[FOXRUN_GOTO_LABEL_A_A_START:]
x2=2
=[GOTO FOXRUN_GOTO_LABEL_A_A_END]
ENDIF
=[FOXRUN_GOTO_LABEL_A_A_SKIP:]
x4=4
=[GOTO FOXRUN_GOTO_LABEL_A_C_START]
=[FOXRUN_GOTO_LABEL_A_F_START:]
IF .T.#.F.
x8=8
ENDIF
=[GOTO FOXRUN_GOTO_LABEL_A_F_END]
DO CASE
CASE .T.=.F.
=[FOXRUN_GOTO_LABEL_A_M_START:]
x16=16
=[GOTO FOXRUN_GOTO_LABEL_A_M_END]
ENDCASE
=[FOXRUN_GOTO_LABEL_A_L_START:]
DO CASE
CASE .F.=.F.
x15=15
ENDCASE
=[GOTO FOXRUN_GOTO_LABEL_A_L_END]
=[FOXRUN_GOTO_LABEL_A_J_START:]
DO CASE
CASE .T.=.T.
x12=12
ENDCASE
=[GOTO FOXRUN_GOTO_LABEL_A_J_END]
=[FOXRUN_GOTO_LABEL_A_C_END:]
=[GOTO FOXRUN_GOTO_LABEL_A_D_START]
DO WHILE .F.
=[FOXRUN_GOTO_LABEL_A_O_START:]
x18=18
=[GOTO FOXRUN_GOTO_LABEL_A_O_END]
ENDDO
=[FOXRUN_GOTO_LABEL_A_D_END:]
=[GOTO FOXRUN_GOTO_LABEL_A_E_START]
=[FOXRUN_GOTO_LABEL_A_E_END:]
=[GOTO FOXRUN_GOTO_LABEL_A_F_START]
=[FOXRUN_GOTO_LABEL_A_F_END:]
=[GOTO FOXRUN_GOTO_LABEL_A_G_START]
=[FOXRUN_GOTO_LABEL_A_G_END:]
=[GOTO FOXRUN_GOTO_LABEL_A_H_START]
=[FOXRUN_GOTO_LABEL_A_H_END:]
=[GOTO FOXRUN_GOTO_LABEL_A_I_START]
=[FOXRUN_GOTO_LABEL_A_I_END:]
=[GOTO FOXRUN_GOTO_LABEL_A_J_START]
=[FOXRUN_GOTO_LABEL_A_J_END:]
=[GOTO FOXRUN_GOTO_LABEL_A_K_START]
=[FOXRUN_GOTO_LABEL_A_N_START:]
DO CASE
CASE .T.#.F.
x17=17
ENDCASE
=[GOTO FOXRUN_GOTO_LABEL_A_N_END]
=[FOXRUN_GOTO_LABEL_A_K_END:]
=[GOTO FOXRUN_GOTO_LABEL_A_C_SKIP]
IF .F.#.F.
=[GOTO FOXRUN_GOTO_LABEL_A_P_SKIP]
=[FOXRUN_GOTO_LABEL_A_T_START:]
DO WHILE .F.=.F.
x24=24
EXIT
ENDDO
=[GOTO FOXRUN_GOTO_LABEL_A_T_END]
=[FOXRUN_GOTO_LABEL_A_P_START:]
DO WHILE .T.
x19=19
EXIT
ENDDO
=[GOTO FOXRUN_GOTO_LABEL_A_P_END]
=[FOXRUN_GOTO_LABEL_A_P_SKIP:]
=[FOXRUN_GOTO_LABEL_A_C_START:]
x5=5
=[GOTO FOXRUN_GOTO_LABEL_A_C_END]
DO CASE
CASE .T.#.T.
=[FOXRUN_GOTO_LABEL_A_I_START:]
x11=11
=[GOTO FOXRUN_GOTO_LABEL_A_I_END]
ENDCASE
ENDIF
=[FOXRUN_GOTO_LABEL_A_C_SKIP:]
x14=14
=[GOTO FOXRUN_GOTO_LABEL_A_L_START]
DO WHILE .F.#.F.
=[FOXRUN_GOTO_LABEL_A_S_START:]
x23=23
=[GOTO FOXRUN_GOTO_LABEL_A_S_END]
ENDDO
=[FOXRUN_GOTO_LABEL_A_L_END:]
=[GOTO FOXRUN_GOTO_LABEL_A_M_START]
DO WHILE .T.#.T.
=[FOXRUN_GOTO_LABEL_A_Q_START:]
x20=20
=[GOTO FOXRUN_GOTO_LABEL_A_Q_END]
ENDDO
=[GOTO FOXRUN_GOTO_LABEL_A_R_SKIP]
=[FOXRUN_GOTO_LABEL_A_R_START:]
DO WHILE .T.=.T.
x21=21
EXIT
ENDDO
=[GOTO FOXRUN_GOTO_LABEL_A_R_END]
=[FOXRUN_GOTO_LABEL_A_R_SKIP:]
=[FOXRUN_GOTO_LABEL_A_M_END:]
=[GOTO FOXRUN_GOTO_LABEL_A_N_START]
=[FOXRUN_GOTO_LABEL_A_N_END:]
=[GOTO FOXRUN_GOTO_LABEL_A_O_START]
=[FOXRUN_GOTO_LABEL_A_O_END:]
=[GOTO FOXRUN_GOTO_LABEL_A_P_START]
=[FOXRUN_GOTO_LABEL_A_P_END:]
=[GOTO FOXRUN_GOTO_LABEL_A_Q_START]
=[FOXRUN_GOTO_LABEL_A_Q_END:]
=[GOTO FOXRUN_GOTO_LABEL_A_R_START]
=[FOXRUN_GOTO_LABEL_A_R_END:]
=[GOTO FOXRUN_GOTO_LABEL_A_B_SKIP]
=[FOXRUN_GOTO_LABEL_A_B_START:]
IF .T.=.T.
x3=3
ENDIF
=[GOTO FOXRUN_GOTO_LABEL_A_B_END]
IF .T.=.F.
=[FOXRUN_GOTO_LABEL_A_E_START:]
x7=7
=[GOTO FOXRUN_GOTO_LABEL_A_E_END]
ENDIF
=[FOXRUN_GOTO_LABEL_A_B_SKIP:]
x22=22
=[GOTO FOXRUN_GOTO_LABEL_A_S_START]
=[FOXRUN_GOTO_LABEL_A_S_END:]
=[GOTO FOXRUN_GOTO_LABEL_A_T_START]
=[FOXRUN_GOTO_LABEL_A_T_END:]

可以验证“移动语句”后代码与原代码的功能是相同的。