diff --git a/impls/basic/step2_eval.in.bas b/impls/basic/step2_eval.in.bas index 38dec57333..f3501d1bfa 100755 --- a/impls/basic/step2_eval.in.bas +++ b/impls/basic/step2_eval.in.bas @@ -19,21 +19,8 @@ SUB EVAL_AST IF ER<>-2 THEN GOTO EVAL_AST_RETURN GOSUB TYPE_A - IF T=5 THEN GOTO EVAL_AST_SYMBOL - IF T>5 AND T<9 THEN GOTO EVAL_AST_SEQ + IF T<6 OR 8-2 THEN GOTO EVAL_AST_RETURN GOSUB TYPE_A - IF T=5 THEN GOTO EVAL_AST_SYMBOL - IF T>5 AND T<9 THEN GOTO EVAL_AST_SEQ + IF T<6 OR 8-2 THEN GOTO EVAL_AST_RETURN GOSUB TYPE_A - IF T=5 THEN GOTO EVAL_AST_SYMBOL - IF T>5 AND T<9 THEN GOTO EVAL_AST_SEQ + IF T<6 OR 8-2 THEN GOTO EVAL_AST_RETURN GOSUB TYPE_A - IF T=5 THEN GOTO EVAL_AST_SYMBOL - IF T>5 AND T<9 THEN GOTO EVAL_AST_SEQ + IF T<6 OR 8-2 THEN GOTO EVAL_AST_RETURN GOSUB TYPE_A - IF T=5 THEN GOTO EVAL_AST_SYMBOL - IF T>5 AND T<9 THEN GOTO EVAL_AST_SEQ + IF T<6 OR 8-2 THEN GOTO EVAL_AST_RETURN GOSUB TYPE_A - IF T=5 THEN GOTO EVAL_AST_SYMBOL - IF T>5 AND T<9 THEN GOTO EVAL_AST_SEQ + IF T<6 OR 8-2 THEN GOTO EVAL_AST_RETURN GOSUB TYPE_A - IF T=5 THEN GOTO EVAL_AST_SYMBOL - IF T>5 AND T<9 THEN GOTO EVAL_AST_SEQ + IF T<6 OR 8-2 THEN GOTO EVAL_RETURN + EVAL_NOT_LIST: + B$="DEBUG-EVAL":CALL ENV_GET IF R3=0 OR R=0 OR R=2 THEN GOTO DEBUG_EVAL_DONE AZ=A:B=1:GOSUB PR_STR PRINT "EVAL: "+R$+" [A:"+STR$(A)+", LV:"+STR$(LV)+"]" DEBUG_EVAL_DONE: - GOSUB LIST_Q - IF R THEN GOTO APPLY_LIST - EVAL_NOT_LIST: + GOSUB TYPE_A + T=T-4 + IF 0-2 THEN GOTO EVAL_AST_RETURN GOSUB TYPE_A - IF T=5 THEN GOTO EVAL_AST_SYMBOL - IF T>5 AND T<9 THEN GOTO EVAL_AST_SEQ + IF T<6 OR 8-2 THEN GOTO EVAL_RETURN + EVAL_NOT_LIST: + B$="DEBUG-EVAL":CALL ENV_GET IF R3=0 OR R=0 OR R=2 THEN GOTO DEBUG_EVAL_DONE AZ=A:B=1:GOSUB PR_STR PRINT "EVAL: "+R$+" [A:"+STR$(A)+", LV:"+STR$(LV)+"]" DEBUG_EVAL_DONE: - GOSUB LIST_Q - IF R THEN GOTO APPLY_LIST - EVAL_NOT_LIST: + GOSUB TYPE_A + T=T-4 + IF 0-2 THEN GOTO EVAL_AST_RETURN GOSUB TYPE_A - IF T=5 THEN GOTO EVAL_AST_SYMBOL - IF T>5 AND T<9 THEN GOTO EVAL_AST_SEQ + IF T<6 OR 8-2 THEN GOTO EVAL_RETURN + EVAL_NOT_LIST: + B$="DEBUG-EVAL":CALL ENV_GET IF R3=0 OR R=0 OR R=2 THEN GOTO DEBUG_EVAL_DONE AZ=A:B=1:GOSUB PR_STR PRINT "EVAL: "+R$+" [A:"+STR$(A)+", LV:"+STR$(LV)+"]" DEBUG_EVAL_DONE: - GOSUB LIST_Q - IF R THEN GOTO APPLY_LIST - EVAL_NOT_LIST: + GOSUB TYPE_A + T=T-4 + IF 0