Basic: fix step6 arg test. Gensym. Misc cleanup.
[jackhill/mal.git] / basic / step0_repl.in.bas
1 GOTO MAIN
2
3 REM $INCLUDE: 'readline.in.bas'
4
5 REM READ(A$) -> R$
6 MAL_READ:
7 R$=A$
8 RETURN
9
10 REM EVAL(A$, E) -> R$
11 SUB EVAL
12 R$=A$
13 END SUB
14
15 REM PRINT(A$) -> R$
16 MAL_PRINT:
17 R$=A$
18 RETURN
19
20 REM REP(A$) -> R$
21 SUB REP
22 GOSUB MAL_READ
23 A=R:CALL EVAL
24 A=R:GOSUB MAL_PRINT
25 END SUB
26
27 REM MAIN program
28 MAIN:
29 REPL_LOOP:
30 A$="user> ":GOSUB READLINE: REM call input parser
31 IF EOF=1 THEN GOTO QUIT
32
33 A$=R$:CALL REP: REM call REP
34
35 PRINT R$
36 GOTO REPL_LOOP
37
38 QUIT:
39 REM PRINT "Free: "+STR$(FRE(0))
40 END
41